Sei sulla pagina 1di 13

APRENDIENDO FUNDAMENTOS DE PROGRAMACIN DE COMPUTADORAS

1. Programacin de computadoras
La programacin informtica o programacin algortmica, acortada como programacin, es el proceso de
disear, codificar, depurar y mantener el cdigo fuente de programas de computadora. El cdigo fuente es
escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un
comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en varias
reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal.
Programar no involucra necesariamente otras tareas tales como el anlisis y diseo de la aplicacin (pero s
el diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones.

2. Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso.

Tipos de Lenguajes Algortmicos


Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo).
No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo
(pseudocdigo).

Tipos de Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.

Ejemplo: Disear un algoritmo para cambiar una llanta a un carro.

Inicio.
Traer gato.
Levantar el coche con el gato.
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
Bajar el gato.
Fin

Cuantitativos: Son aquellos en los que se utilizan clculos


numricos para definir los pasos del proceso.
3. Definicin de Algoritmo
La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un
matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el
siglo IX.

Un algoritmo es un mtodo para resolver un problema. Un algoritmo es una serie de pasos organizados que
describe el proceso que se debe seguir, para dar solucin a un problema especfico.

Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Debe ser preciso e indicar el orden de realizacin de cada paso.


Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento; o sea, debe tener un
nmero finito de pasos.

La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En el algoritmo
de receta de cocina citado anteriormente se tendr:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, cordero).

Ejemplo 1
Se desea disear un algoritmo para saber si un nmero es primo o no.

Un nmero es primo si slo puede dividirse por s mismo y por la unidad (es decir, no tiene ms divisores
que l mismo y la unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc., no son primos, ya que son divisibles por
nmeros distintos a ellos mismos y a la unidad. As, 9 es divisible por 3, 8 lo es por 2, etc.

El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2, 3, 4, etc.
1. Inicio.
2. Poner X igual a 2 (x = 2, x variable que representa a los divisores
del nmero que se busca N).
3. Dividir N por X (N/X).
4. Si el resultado de N/X es entero, entonces N es un nmero primo y bifurcar al punto 7; en caso
contrario, continuar el proceso.
5. Suma 1 a X (X X + 1).
6. Si X es igual a N, entonces N es un nmero primo; en caso contrario,
bifurcar al punto 3.
7. Fin.
Por ejemplo, si N es 131, los pasos anteriores seran:
1. Inicio.
2. X = 2.
3 y 4. 131/X. Como el resultado no es entero, se contina el proceso.
5. X 2 + 1, luego X = 3.
6. Como X no es 131, se bifurca al punto 3.
3 y 4. 131/X resultado no es entero.
5. X 3 + 1, X = 4.
6. Como X no es 131 bifurca al punto 3.
3 y 4.131/X..., etc.
7. Fin.

Ejemplo 2
Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha del cliente; si el
cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido.

Redactar el algoritmo correspondiente.

Los pasos del algoritmo son:


1. Inicio.
2. Leer el pedido.
3. Examinar la ficha del cliente.
4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar
pedido.
5. Fin.

Ejemplo 1.3
Realizar la suma de todos los nmeros pares entre 2 y 1.000.
El problema consiste en sumar 2 + 4 + 6 + 8 ... + 1.000. Utilizaremos las palabras SUMA y NUMERO
(variables, sern denominadas ms tarde) para representar las sumas sucesivas (2+4), (2+4+6), (2+4+6+8),
etctera. La solucin se puede escribir con el siguiente algoritmo:

1. Inicio.
2. establecer SUMA a 0.
3. establecer NUMERO a 2.
4. Sumar NUMERO a SUMA. El resultado ser el nuevo valor de la suma
(SUMA).
5. Incrementar NUMERO en 2 unidades.
6. Si NUMERO =< 1.000 bifurcar al paso 4;
7. en caso contrario, escribir el ltimo valor de SUMA y terminar el proceso.
8. Fin.

4. Defina y explique: A) Pseudocdigo, B) Diagrama de


flujo, C) Diagrama de Nassi-Schneiderman
A) Pseudocodigo
El pseudocdigo es una herramienta de programacin en la que las instrucciones se escriben en palabras
similar al ingls o espaol, que facilitan tanto la escritura como la lectura de programas. En esencia, el
pseudocdigo se debe definir como un lenguaje de especificaciones de algoritmos.

Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema
determinado. El pseudocodigo utiliza palabras que indican el proceso a realizar.
Clase sumar_numeros
Metodo Ppal()
real N1,N2,SUMA
IMPRIMA DIGITE PRIMER NUMERO
LEA N1
IMPRIMA DIGITE SEGUNDO NUMERO
LEA N2
SUMA= N1+ N2
IMPRIMA LA SUMA ES, SUMA
Fin Metodo
Fin Clase

B) Diagrama de flujo
Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama
diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia
de la operacin.

C) Diagramas estructurados (Nassi-Schneiderman)


El diagrama estructurado N-S tambin conocido como diagrama de chapin es como un diagrama de flujo en
el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se pueden escribir en
cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
Los diagramas estructurados, son una tcnica que permite formular algoritmos mediante una
representacin geomtrica y de asignacin de espacios de un bloque especfico.
5. Qu es lenguaje de programacin?
El Software (los programas)
El software de una computadora es un conjunto de instrucciones de programa detalladas que controlan y
coordinan los componentes hardware de una computadora y controlan las operaciones de un sistema
informtico. El auge de las computadoras en el siglo pasado y en el actual siglo XXI, se debe esencialmente,
al desarrollo de sucesivas generaciones de software potentes y cada vez ms amistosas (fciles de utilizar).

Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones, llamadas
programas, o software. Un programa de software es un conjunto de sentencias o instrucciones al
computador. El proceso de escritura o codificacin de un programa se denomina programacin y las personas
que se especializan en esta actividad se denominan programadores. Existen dos tipos importantes de
software: software del sistema y software de aplicaciones. Cada tipo realiza una funcin diferente.

Lenguaje de programacin
Un lenguaje de programacin es aquella estructura que, con una cierta base sintctica y semntica, imparte
distintas instrucciones a un programa de computadora.

Hoy en da, la mayora de los programadores emplean lenguajes de programacin como C++, C, C#, Java,
Visual Basic (Visual Studio .NET), XML, HTML, Perl, PHP, JavaScript..., aunque todava se utilizan, sobre todo
profesionalmente, los clsicos COBOL, FORTRAN, Pascal o el mtico BASIC. Estos lenguajes se denominan
lenguajes de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus algoritmos en
programas escritos en alguno de estos lenguajes de programacin
6. DEFINICIONES
Lenguaje mquina
El lenguaje mquina es el nico lenguaje que puede ejecutar una computadora, es especfico en cada
arquitectura, es un cdigo que es interpretado directamente por el microprocesador, est compuesto por un
conjunto de instrucciones ejecutadas en secuencia que representan acciones que la mquina podr tomar.

El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto binario que
consta de los dos nicos smbolos 0 y 1, denominados bits; fsicamente, se materializan con tensiones
comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, 12 voltios respectivamente. Para representar datos
que contengan una informacin se utilizan una serie de unos y ceros cuyo conjunto indica dicha informacin.

Todo cdigo fuente en ltima instancia debe llevarse a un lenguaje mquina mediante el proceso de
compilacin o interpretacin para que la computadora pueda ejecutarlo.

Lenguaje de bajo nivel, ensambladores


El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos
y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de
computadoras legible por un programador. Se le asigna un cdigo mnemotcnico cada comando del lenguaje
mquina, por lo general est formado por tres o cuatro letras para designar a cada una.

Lenguaje de alto nivel


Un lenguaje de programacin de alto nivel se caracteriza por expresar los algoritmos de una manera
adecuada a la capacidad cognitiva humana, en lugar de la capacidad que se la ejecuta de las mquinas.

Intrpretes
Un intrprete es un traductor que toma un programa fuente, lo traduce y, a continuacin, lo ejecuta. Los
programas intrpretes clsicos como BASIC, prcticamente ya no se utilizan, ms que en circunstancias
especiales. Sin embargo, est muy extendida la versin interpretada del lenguaje Smalltalk, un lenguaje
orientado a objetos puro. El sistema de traduccin consiste en: traducir la primera sentencia del programa a
lenguaje mquina, se detiene la traduccin, se ejecuta la sentencia; a continuacin, se traduce la siguiente
sentencia, se detiene la traduccin, se ejecuta la sentencia y as sucesivamente hasta terminar el programa.
Intrprete

La compilacin de programas

Compiladores
Un compilador es un programa que traduce los programas fuente escritos en lenguaje de alto nivel a lenguaje
mquina. La traduccin del programa completo se realiza en una sola operacin denominada compilacin
del programa; es decir, se traducen todas las instrucciones del programa en un solo bloque. El programa
compilado y depurado (eliminados los errores del cdigo fuente) se denomina programa ejecutable porque
ya se puede ejecutar directamente y cuantas veces se desee; slo deber volver a compilarse de nuevo en el
caso de que se modifique alguna instruccin del programa. De este modo el programa ejecutable no necesita
del compilador para su ejecucin. Los lenguajes compiladores tpicos ms utilizados son: C, C++, Java, C#,
Pascal, FORTRAN y COBOL.

7. FASES PARA LA RESOLUCIN DE PROBLEMAS


La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto.

Las fases o etapas constituyen el ciclo de vida del software, ayudarn en el proceso de resolucin de un
problema, estas consisten en:

1. Anlisis del problema.


2. Diseo del algoritmo.
3. Codificacin (Implementacin).
4. Compilacin y ejecucin.
5. Verificacin
6. Depuracin.
7. Mantenimiento.
8. Documentacin.

Las caractersticas ms sobresalientes de la resolucin de problemas son:


Anlisis. El problema se analiza teniendo presente la especificacin de los requisitos dados por el cliente
de la empresa o por la persona que encarga el programa.
Diseo. Una vez analizado el problema, se disea una solucin que conducir a un algoritmo que resuelva
el problema.
Codificacin (implementacin). La solucin se escribe en la sintaxis del lenguaje de alto nivel (por
ejemplo, Pascal) y se obtiene un programa fuente que se compila a continuacin.
Ejecucin, verificacin y depuracin. El programa se ejecuta, se comprueba rigurosamente y se eliminan
todos los errores (denominados bugs, en ingls) que puedan aparecer.
Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se
cumplan todas las necesidades de cambio de sus usuarios.
Documentacin. Escritura de las diferentes fases del ciclo de vida del software, esencialmente el anlisis,
diseo y codificacin, unidos a manuales de usuario y de referencia, as como normas para el
mantenimiento.

Las dos primeras etapas conducen a un diseo detallado escrito de forma de algoritmo1. Durante la tercera
etapa (Codificacin) se implementa el algoritmo en un cdigo escrito en un lenguaje de programacin
reflejando las ideas desarrolladas en las fases de anlisis y diseo [Joyanes, 2003].

Las dos primeras fases conducen a un diseo detallado escrito en forma de algoritmo. Durante la tercera fase
(codificacin) se implementar el algoritmo en un cdigo escrito en un lenguaje de programacin, reflejando
las ideas desarrolladas en las fases de anlisis y diseo.

Las fases de compilacin y ejecucin traducen y ejecutan el programa. En las fases de verificacin y
depuracin el programador busca errores de las etapas anteriores y los elimina. Comprobar que mientras
ms tiempo se gaste en la fase de anlisis y diseo, menos se gastar en la depuracin del programa. Por
ltimo, se debe realizar la documentacin del programa.
Antes de conocer las tareas a realizar en cada fase, se considera el concepto y significado de la palabra
algoritmo.

La palabra algoritmo se deriva de la traduccin al latn de la palabra Alkh-warzmi, nombre de un


matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el
siglo IX. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos,
definidos y finitos

Caractersticas de un algoritmo
preciso (indica el orden de realizacin en cada paso),
definido (si se sigue dos veces, obtiene el mismo resultado cada vez),
finito (tiene fin; un nmero determinado de pasos).

Anlisis del Problema


La primera fase de la resolucin de un problema con computadora es el anlisis del problema. Esta fase
requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado
o solucin deseada.
Dado que se busca una solucin por computadora, se precisan especificaciones detalladas de entrada y
salida.

Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:
Qu entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).
Cul es la salida deseada? (tipo de datos de los resultados y cantidad).
Qu mtodo produce la salida deseada?
Requisitos o requerimientos adicionales y restricciones a la solucin.
Anlisis del problema

Diseo del algoritmo


En la etapa de anlisis del proceso de programacin se determina qu hace el programa. En la etapa de
diseo se determina cmo hace el programa la tarea solicitada. Los mtodos ms eficaces para el proceso de
diseo se basan en el conocido divide y vencers. Es decir, la resolucin de un problema complejo se realiza
dividiendo el problema en subproblemas y a continuacin dividiendo estos subproblemas en otros de nivel
ms bajo, hasta que pueda ser implementada una solucin en la computadora. Este mtodo se conoce
tcnicamente como diseo descendente (top-down) o modular. El proceso de romper el problema en cada
etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo.

Cada subprograma es resuelto mediante un mdulo (subprograma) que tiene un solo punto de entrada y
un solo punto de salida.

Cualquier programa bien diseado consta de un programa principal (el mdulo de nivel ms alto) que llama
a subprogramas (mdulos de nivel ms bajo) que a su vez pueden llamar a otros subprogramas. Los
programas estructurados de esta forma se dice que tienen un diseo modular y el mtodo de romper el
programa en mdulos ms pequeos se llama programacin modular. Los mdulos pueden ser planeados,
codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a
continuacin combinarlos entre s. El proceso implica la ejecucin de los siguientes pasos hasta que el
programa se termina:

1. Programar un mdulo.
2. Comprobar el mdulo.
3. Si es necesario, depurar el mdulo.
4. Combinar el mdulo con los mdulos anteriores.

El proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamientos
sucesivos que permitan una posterior traduccin a un lenguaje se denomina diseo del algoritmo.

El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar
posteriormente.

Ejemplo 1
Es un algoritmo la siguiente instruccin?
Problema: Escribir una lista de todos los enteros positivos Solucin: Es imposible ejecutar la instruccin
anterior dado que hay infinitos enteros positivos.

Ejemplo 2
Problema: Calcular la paga neta de un trabajador conociendo el nmero de horas trabajadas, la tarifa
horaria y la tasa de impuestos.
Solucin: Debemos definir el problema.

1. Qu datos de entrada se requieren?


Nmero de horas trabajadas
Tarifa
Impuestos
2. Cul es la salida deseada?
Paga Neta
3. Cul es el mtodo a usar? (Algoritmo)
Inicio
Leer Nmero de horas trabajadas
Leer Tarifa
Leer Impuestos
Calcular Paga Bruta = Nmero de horas trabajadas * Tarifa
Calcular Impuestos = Paga Bruta * Tasa
Calcular Pago Neta = Paga Bruta Impuestos
Visualizar Paga Bruta
Visualizar Impuestos
Visualizar Pago Neta
Fin

Diseo del Algoritmo

En esta fase, como se ha mencionado anteriormente, se determina cmo hace el programa la tarea solicitada.
Los mtodos ms eficaces para el proceso de diseo se basan en el conocido divide y vencers, esto es
dividiendo el problema en subproblemas y a continuacin dividir estos subproblemas en otros de nivel ms
bajo hasta que pueda ser implementada la solucin.

Existen diferentes herramientas de programacin, las ms utilizadas para disear algoritmos son:

1. Diagramas de flujo: Es una representacin grfica de un algoritmo. Los smbolos normalizados por el
Instituto Norteamericano de Normalizacin (ANSI) y los ms frecuentes empleados se muestran a
continuacin.

2. Pseudocdigo: Es una herramienta de programacin en la que las instrucciones se escriben en palabras


similares en ingls o espaol, que facilitan tanto la escritura como la lectura de programas.

Desde el punto de vista del lenguaje algortmico, los pasos para la resolucin de un problema son:

1. Diseo del algoritmo, que describe la secuencia ordenada de pasos sin ambigedades que conducen
a la solucin de un problema dado. (Anlisis del problema y desarrollo del algoritmo.)
2. Expresar el algoritmo como un programa en un lenguaje de programacin adecuado. (Fase de
codificacin.)
3. Ejecucin y validacin del programa por la computadora.

Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin
algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la
computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de
programacin y ejecutarse en una computadora distinta; sin embargo, el algoritmo ser siempre el mismo.
As, por ejemplo, en una analoga con la vida diaria, una receta de un plato de cocina se puede expresar en
espaol, ingls o francs, pero cualquiera que sea el lenguaje, los pasos para la elaboracin del plato se
realizarn sin importar el idioma del cocinero.
En la ciencia de la computacin y en la programacin, los algoritmos son ms importantes que los lenguajes
de programacin o las computadoras. Un lenguaje de programacin es tan slo un medio para expresar un
algoritmo y una computadora es slo un procesador para ejecutarlo. Tanto el lenguaje de programacin
como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efecte
el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy importante ser el diseo
de algoritmos. A la enseanza y prctica de esta tarea denominada algoritmia se dedica gran parte de este
libro.
El diseo de la mayora de los algoritmos requiere creatividad y conocimientos profundos de la tcnica de la
programacin. En esencia, la solucin de un problema se puede expresar mediante un algoritmo.

Codificacin de un programa

La codificacin es la escritura en un lenguaje de programacin de la representacin del algoritmo


desarrollada en las etapas precedentes. Dado que el diseo de un algoritmo es independiente del lenguaje
de programacin utilizado para su implementacin, el cdigo puede ser escrito con igual facilidad en un
lenguaje o en otro.

Para realizar la conversin del algoritmo en programa se deben sustituir las palabras reservadas en espaol
por sus homnimos en ingls, y las operaciones/instrucciones indicadas en lenguaje natural por el lenguaje
de programacin correspondiente.

EJEMPLO DE CDIGO EN LENGUAJE C++:

/ Determina si un ao es bisiesto

#include<iostream>

using namespace std;

int main() {
int anio;
// define variables
// lee datos
cout << "DETERMINA SI ES AO BISIESTO:" << endl ;
cout << "Ingrese numero entero (Ao): ";
cin >> anio;
// determina si el ao es bisiesto
if (((anio%4==0) && ((anio%100!=0) || (anio%400==0)))) {
cout << "Es ao bisiesto" << endl;
} else {
cout << "No es ao bisiesto" << endl << endl;
}
// pausa antes de finalizar el programa
system("PAUSE");
return 0;
}

Documentacin interna

Como se ver ms tarde, la documentacin de un programa se clasifica en interna y externa. La


documentacin interna es la que se incluye dentro del cdigo del programa fuente mediante comentarios
que ayudan a la comprensin del cdigo. Todas las lneas de programas que comiencen con un smbolo / *
son comentarios. El programa no los necesita y la computadora los ignora. Estas lneas de comentarios slo
sirven para hacer los programas ms fciles de comprender. El objetivo del programador debe ser escribir
cdigos sencillos y limpios.

Debido a que las mquinas actuales soportan grandes memorias (512 Mb o 1.024 Mb de memoria central
mnima en computadoras personales) no es necesario recurrir a tcnicas de ahorro de memoria, por lo que
es recomendable que se incluya el mayor nmero de comentarios posibles, pero eso s, que sean
significativos.

Compilacin y ejecucin de un programa


Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria
mediante el teclado y almacenarlo posteriormente en un disco. Esta operacin se realiza con un programa
editor. Posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en
disco.
El programa fuente debe ser traducido a lenguaje mquina, este proceso se realiza con el compilador y el
sistema operativo que se encarga prcticamente de la compilacin.

Si tras la compilacin se presentan errores (errores de compilacin) en el programa fuente, es preciso volver
a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se
producen errores, obtenindose el programa objeto que todava no es ejecutable directamente. Suponiendo
que no existen errores en el programa fuente, se debe instruir al sistema operativo para que realice la fase
de montaje o enlace (link), carga, del programa objeto con las bibliotecas del programa del compilador. El
proceso de montaje produce un programa ejecutable. La Figura 2.5 describe el proceso completo de
compilacin/ejecucin de un programa.

Una vez que el programa ejecutable se ha creado, ya se puede ejecutar (correr o rodar) desde el sistema
operativo con slo teclear su nombre (en el caso de DOS). Suponiendo que no existen errores durante la
ejecucin (llamados errores en tiempo de ejecucin), se obtendr la salida de resultados del programa.

Las instrucciones u rdenes para compilar y ejecutar un programa en C, C++,... o cualquier otro lenguaje
depender de su entorno de programacin y del sistema operativo en que se ejecute Windows, Linux, Unix,
etc.
Verificacin y depuracin de un programa
La verificacin o compilacin de un programa es el proceso de ejecucin del programa con una amplia
variedad de datos de entrada, llamados datos de test o prueba, que determinarn si el programa tiene o no
errores (bugs). Para realizar la verificacin se debe desarrollar una amplia gama de datos de test: valores
normales de entrada, valores extremos de entrada que comprueben los lmites del programa y valores de
entrada que comprueben aspectos especiales del programa.

La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1. Errores de compilacin. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de
programacin y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora no puede
comprender la instruccin, no se obtendr el programa objeto y el compilador imprimir una lista de todos
los errores encontrados durante la compilacin.
2. Errores de ejecucin. Estos errores se producen por instrucciones que la computadora puede comprender
pero no ejecutar. Ejemplos tpicos son: divisin por cero y races cuadradas de nmeros negativos. En estos
casos se detiene la ejecucin del programa y se imprime un mensaje de error.
3. Errores lgicos. Se producen en la lgica del programa y la fuente del error suele ser el diseo del
algoritmo.

Estos errores son los ms difciles de detectar, ya que el programa puede funcionar y no producir errores de
compilacin ni de ejecucin, y slo puede advertirse el error por la obtencin de resultados incorrectos. En
este caso se debe volver a la fase de diseo del algoritmo, modificar el algoritmo, cambiar el programa fuente
y compilar y ejecutar una vez ms.

Potrebbero piacerti anche