Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado Por:
Dirigido A:
Cartagena de indias
Principios de la programación estructurada
La programación estructurada surge del análisis de las estructuras de control de flujo a
todo programa de computador. El producto de este estudio reveló que es posible
construir cualquier estructura de control de flujo por medio de tres estructuras básicas:
la secuencial, la condicional y la iterativa.
La conjunción de estas propuestas nos proporciona las bases para la construcción de
programas estructurados en los que las estructuras de control de flujo se pueden
realizar mediante un conjunto de instrucciones muy reducido.
También es importante resaltar que la estructura secuencial no necesita ninguna
instrucción adicional, pues los programas se ejecutan normalmente llevando a cabo
las instrucciones en el orden en que aparecen en el código fuente.
La instrucción if, permite una ejecución condicional de bloques de instrucciones. Hay
que tener presente que, para que sea un programa propio, debe existir la posibilidad
de que se ejecuten todos los bloques de instrucciones.
Tenemos que resaltar que, en cuanto a la programación estructurada se refiere, sólo
es necesaria una única estructura de control de flujo iterativa. A partir de ésta se
pueden construir todas las demás.
Recorrido
Para ilustrar varios ejemplos de recorrido, tengamos en cuenta que se desea obtener
la temperatura media en la zona de una estación meteorológica.
Para ello, tenemos que hacer un programa al que se le suministran las temperaturas
registradas a intervalos regulares por el termómetro de la estación y obtenga la media
de los valores introducidos.
/* ... */
acumulado = acumulado + temperatura;
cantidad = cantidad + 1;
scanf( “%f”, &temperatura );
/* ... */
En este bloque iterativo podemos observar que la temperatura debe tener un valor
determinado antes de poderse acumular en la variable acumulado, la cual también
tiene que estar inicializada.
/* ... */
unsigned int cantidad;
float acumulado;
/* ... */
cantidad = 0;
acumulado = 0.00;
scanf( "%f", &temperatura );
/* bucle ... */
Búsqueda
Es posible hacer una búsqueda que detenga el recorrido cuando la media progresiva
se mantenga en un margen de ±1 oC respecto de la temperatura detectada durante
más de 10 registros.
El esquema algorítmico es muy parecido al del recorrido, salvo por el hecho de que se
incorpora la condición de búsqueda y que, a la salida del bucle, es necesario
comprobar si la búsqueda se ha resuelto satisfactoriamente o no:
/* inicialización para el procesamiento de la secuencia */
/* (puede incluir el tratamiento del primer elemento) */
encontrado = FALSO;
while( ! /* final de secuencia */ && !encontrado ) {
/* tratar el elemento */
if( /* condición de encontrado */ ) {
encontrado = CIERTO;
} else {
/* avanzar en secuencia */
} /* if */
} /* while */
/* finalización del procesamiento de la secuencia */
if( encontrado ) {
/* instrucciones */
} else {
/* instrucciones */
} /* if */
En este esquema se supone que se han definido las constantes FALSO y CIERTO del
modo siguiente:
#define FALSO 0
#define CIERTO 1
/* ... */
cantidad = 0;
acumulado = 0.00;
scanf( "%f", &temperatura );
seguidos = 0;
encontrado = FALSO;
while( ! ( temperatura == MIN_TEMP ) && ! encontrado ) {
acumulado = acumulado + temperatura;
cantidad = cantidad + 1;
media = acumulado / (float) cantidad;
if( mediatemperatura+1.0 || temperatura-1.0media ) {
seguidos = seguidos + 1;
} else {
seguidos = 0;
} /* if */
if( seguidos == 10 ) {
encontrado = CIERTO;
} else {
scanf( "%f", &temperatura );
} /* if */
} /* while */
/* ... */
En los casos de búsqueda no suele ser conveniente emplear un for, ya que suele ser
una instrucción iterativa que emplea un contador que toma una serie de valores desde
uno inicial hasta uno final. Es decir, hace un recorrido por la secuencia implícita de
todos los valores que toma la variable de conteo.
Depurado de programas
El depurado de programas se basa en eliminar los errores que éstos contengan. Los
errores pueden ser debidos tanto a la programación como al algoritmo programado.
El depurado de un programa puede implicar un cambio en el algoritmo
correspondiente. Cuando la causa del error se encuentra en el algoritmo o en su
incorrecta programación se habla de error de lógica. Si el error tiene su razón en la
violación de las normas del lenguaje de programación se habla de un error de sintaxis.
Los errores de sintaxis son detectados por el compilador, ya que le impiden generar
código ejecutable. Si el compilador puede generar código a pesar de la posible
existencia de un error, el compilador suele emitir un aviso.
Estructuras de datos
Una estructura homogénea es aquella cuyos datos son todos del mismo tipo y una
heterogénea puede estar formada por datos de tipo distinto.
Matrices
Para hacer referencia, en alguna expresión, a un elemento de una matriz, basta con
indicar su nombre y la posición que ocupa dentro de ella:
matriz[i0][i1]...[in]
Donde ik son expresiones el resultado de las cuales debe de ser un valor entero.
Habitualmente, las expresiones suelen ser muy simples: una variable o una constante.
Ejemplos
#include <stdio.h>
#define LONGITUD 81
#define NULO '\0'
main( )
{
char texto[LONGITUD];
unsigned int longitud, izq, der;
printf( "Comprobación de palíndromos.\n" );
printf( "Introduzca texto: ");
gets( texto );
longitud = 0;
while( texto[longitud] != NULO ) {
longitud = longitud + 1;
} /* while */
izq = 0;
der = longitud;
while( ( texto[izq] == texto[der] ) && ( izq < der ) ) {
izq = izq + 1;
der = der – 1;
} /* while */
if( izq < der ) {
printf( "No es palíndromo.\n" );
} else {
printf( "¡Es palíndromo!\n" );
} /* if */
} /* main */