3. METODOLOGIA DE PROGRAMACION UN-PROGRAMA |
El desarrollo de un programa que resuelva un problema dado es una tarea compleja, ya que es necesario tener en cuenta de manera simultánea muchos elementos. Por lo tanto, es indispensable usar una metodología de programación.
Una metodología de programación es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un programa que resuelve un problema algorítmico. Estas metodologías generalmente se estructuran como una secuencia de pasos que parten de la definición del problema y culminan con un programa que lo resuelve.
A continuación se presenta de manera general los pasos de una metodología:
El Diálogo | Con la cual se busca comprender totalmente el problema a resolver. |
La Especificación | Con la cual se establece de manera precisa las entradas, salidas y las condiciones que deben cumplir. |
Diseño | En esta etapa se construye un algoritmo que cumpla con la especificación. |
Codificación | Se traduce el algoritmo a un lenguaje de programación. |
Prueba y Verificación | Se realizan pruebas del programa implementado para determinar su validez en la resolución del problema. |
3.1 DIALOGO |
En el primer paso en el proceso de solución a un problema se debe determinar de manera clara y concisa la siguiente información:
1. Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos información total o parcial útil en la búsqueda de los objetos desconocidos.
2. Las condiciones, aquellas relaciones establecidas entre los objetos conocidos y los desconocidos. Para esto se deben encontrar entre otras, la dependencia entre los valores de los objetos desconocidos de los valores de los objetos conocidos y que restricciones le impone el planteamiento del problema a dichos objetos.
3. Los valores posibles que pueden tomar los objetos desconocidos.
Ejemplo. Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pase por el punto medio de los puntos dados.
OBJETOS DESCONOCIDOS | Un segmento de recta. |
OBJETOS CONOCIDOS | Los puntos P y Q. |
CONDICIONES | El segmento de recta debe pasar por el punto medio entre P y Q, y debe ser perpendicular a la recta trazada entre P y Q. |
3.4 CODIFICACIÓN |
Cuando ya se ha diseñado completamente el algoritmo y se tiene escrito en algún esquema de representación (pseudo-código o diagrama de flujo), el siguiente paso es codificarlo en el lenguaje de programación definido para tal fin.
En este momento es cuando el programador interactua con el computador mediante la herramienta de software que disponga para codificar en el lenguaje seleccionado.
EJEMPLO. Tómese como base el pseudo-código desarrollado en la sección anterior, el programa en C++ para este pseudo-código sería:
int pertenece( int A[100], int n, int e)
{
bool bandera;
int i;
/* el codigo siguiente prueba si el elemento esta en el conjunto */
i = 0
while(> i<n && A[i] != e )
{
i = i+1;
};
if( i == n )
{
bandera = falso;
}
else
{
bandera = verdadero;
};
return bandera;
};
{
bool bandera;
int i;
/* el codigo siguiente prueba si el elemento esta en el conjunto */
i = 0
while(> i<n && A[i] != e )
{
i = i+1;
};
if( i == n )
{
bandera = falso;
}
else
{
bandera = verdadero;
};
return bandera;
};
void leer_conjunto( intA[100], int & n, char c )
{
int i;
int elemento;
char continuar;
{
int i;
int elemento;
char continuar;
/* el codigo siguiente lee el conjunto */
n = 0;
cout << “Desea ingresar elementos al conjunto”;
cout << c << “ (S/N)”;
cin >> continuar;
while( continuar == ‘S’ || continuar == ‘s’ )
{
cout << “Ingrese el elemento al conjunto” << A << “ :”;
cin >> elemento;
/* el codigo siguiente prueba si el elemento esta en el conjunto y de no ser así lo adiciona */
if( !pertenece( A, n, elemento ) )
{
A[n] = elemento;
n = n+1;
}
else
{
cout << “Error: el elemento ya esta en el conjunto”;
};
cout << “Desea ingresar mas elementos al conjunto (S/N)” ;
cin>> continuar;
};
};
void main()
{
int n;
int m;
int elemento;
int A[100];
int B[100];
/* el codigo siguiente lee el conjunto A */
leer_conjunto( A, n, ‘A’ );
/* el codigo siguiente lee el conjunto B */
leer_conjunto( B, m, ‘B’ )
/* el codigo siguiente determina si el elemento esta en alguno de los dos conjuntos */
if( pertenece(A, n, elemento) || pertenece(B, m, elemento) )
{
cout << “El dato dado esta en alguno de los dos conjuntos”;
}
else
{
cout<< “El dato dado esta en ninguno de los conjuntos”;
};
};
n = 0;
cout << “Desea ingresar elementos al conjunto”;
cout << c << “ (S/N)”;
cin >> continuar;
while( continuar == ‘S’ || continuar == ‘s’ )
{
cout << “Ingrese el elemento al conjunto” << A << “ :”;
cin >> elemento;
/* el codigo siguiente prueba si el elemento esta en el conjunto y de no ser así lo adiciona */
if( !pertenece( A, n, elemento ) )
{
A[n] = elemento;
n = n+1;
}
else
{
cout << “Error: el elemento ya esta en el conjunto”;
};
cout << “Desea ingresar mas elementos al conjunto (S/N)” ;
cin>> continuar;
};
};
void main()
{
int n;
int m;
int elemento;
int A[100];
int B[100];
/* el codigo siguiente lee el conjunto A */
leer_conjunto( A, n, ‘A’ );
/* el codigo siguiente lee el conjunto B */
leer_conjunto( B, m, ‘B’ )
/* el codigo siguiente determina si el elemento esta en alguno de los dos conjuntos */
if( pertenece(A, n, elemento) || pertenece(B, m, elemento) )
{
cout << “El dato dado esta en alguno de los dos conjuntos”;
}
else
{
cout<< “El dato dado esta en ninguno de los conjuntos”;
};
};
3.5 PRUEBAS DE ESCRITORIO |
La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo.
Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.
A continuación se muestra un ejemplo de prueba de escritorio del siguiente algoritmo:
suma :entero entrada :entero menor :entero leer entrada menor = entrada suma = 0 mientras (entrada != 0) haga si (entrada < menor) entonces menor =entrada fin_si suma = suma + entrada leer entrada fin_mientras escribir “valor Menor:” escribir menor escribir “Suma:” escribir suma |
tr>
INSTRUCCIÓN | entrada | menor | suma | Pantalla |
leer entrada | 10 | | | |
menor = entrada | | 10 | | |
suma :=0 | | | 0 | |
suma :=suma + entrada | | | 10 | |
leer entrada | 7 | | | |
menor = entrada | | 7 | | |
suma :=suma + entrada | | | 17 | |
leer entrada | 9 | | | |
suma :=suma + entrada | | | 26 | |
leer entrada | 0 | | | |
Escribir “valor menor:” | | | | Valor Menor |
Escribir menor | | | | 7 |
Escribir “Suma:” | | | | Suma: |
Escribir suma | | | | 26 |
No hay comentarios:
Publicar un comentario