Professional Documents
Culture Documents
Programas Estructurados
Lenguaje de Programacin
EE.GG.CC.
Introduccin (1)
Introduccin (2)
En cursos
anteriores se
aprendi:
Funcin
Principal
Funcin
Intermedia1
Funcin
Intermedia2
Funcin
Intermedia2.1
Funcin
Intermedia3
Funcin
Intermedia2.2
3.1 Qu es un programa?
Entradas
Procedimiento
Salidas
3.2 Qu es un Algoritmo?
3.3 Qu es un Pseudocdigo?
Lenguaje artificial y formal que nos ayuda a
desarrollar algoritmos.
Similar al lenguaje cotidiano.
No se ejecuta en la computadora.
Nos ayuda a pensar en un programa antes de
escribirlo.
valo :
Estructuras Lgicas
La secuencia.
La condicin.
La repeticin.
Notacin grfica
Condicin
Secuencia
Repeticin
Estructura de Seleccin if
Estructura de Seleccin if
Si la condicin es falsa:
Estructura de Seleccin if
Si lo traducimos al lenguaje C:
if ( nota_alumno >= 11 )
printf( Aprobado\n" );
Observar que el cdigo en C se parece al pseudocdigo
La sangra permite que los programas sean ms fciles de leer,
pues C ignora los espacio en blanco
Estructura if:
representacin en diagrama de flujo
nota >= 11
verd
En lenguaje C:
print Aprobado
Es cero falso
No es cero verdadero
falso
if
if/else
Traducido a C :
if ( nota >= 11 )
printf( Aprobado\n");
else
printf( Jalado\n");
falso
print
Jalado
nota >= 11
verd
print
Aprobado
Enunciados compuestos:
Uso de llaves
Ejemplo:
if ( nota >= 11 )
printf( Aprobado.\n );
else {
printf( jalado.\n);
printf( Debe repetir el curso.\n );
}
Sin las llaves, el enunciado
printf( Debe repetir el curso.\n );
se ejecutaria siempre
ejemplo
Estructuras de seleccin
mltiple
switch
caso a
Falso
Verdadero
caso b
Falso
Verdadero
caso z
Falso
Formato
switch1.c
switch2.c
Estructuras de repeticin
controlada
while()
do-while()
for()
Instrucciones de control:
break
continue
La estructura while()
while = mientras
Estructura
Ejemplo:
int producto = 2;
while ( producto <= 1000 )
producto = 2 * producto;
falso
verd
producto = 2 * producto
Algoritmo de
Repeticin Controlada por Contador
El bucle se repite hasta que el contador alcanza
cierto valor.
Se usa cuando el nmero de repeticiones es
conocido con anticipacin.
Ejemplo de algoritmo de
Repeticin Controlada por Contador
#include <stdio.h>
5
6
int main()
9
10
/* inicializacin */
11
total = 0;
12
contador = 1;
13
14
/* proceso */
15
16
17
18
19
contador = contador + 1;
20
21
22
/* fin */
23
24
27 }
return 0;
2. Se ejecuta
un Lazo o
bucle
3. Mostrar
resultados
Programa en C promedio1.c
25
26
1. Se
inicializan las
variables
/* fin de programa */
Ingrese nota: 98
Ingrese nota : 76
Ingrese nota : 71
Ingrese nota : 87
Ingrese nota : 83
Ingrese nota : 90
Ingrese nota : 57
Ingrese nota : 79
Ingrese nota : 82
Ingrese nota : 94
El promedio de la clase es: 81
El problema se convierte en :
Desarrolle un programa de promedios de la clase que
pueda procesar un nmero arbitrario de notas, cada
vez que se ejecute el programa.
Inicializar variables
Ingreso, suma y cuenta de las notas del examen
Calcular e imprimir el promedio
Refinar
4 #include <stdio.h>
5
6
int main()
float promedio;
1. Se
inicializan las
variables
10
11
/* initializacion
12
total = 0;
13
contador = 0;
*/
2. Ingreso
de usuario
14
15
/* proceso */
16
17
18
19
while ( nota != -1 ) {
20
21
contador = contador + 1;
22
23
24
2.1 Realizar
bucle
Promedio2.c
25
26
/* terminacion
*/
27
if ( contador != 0 ) {
28
29
30
31
else
32
3. Clculo
de Promedio
33
34
return 0;
35 }
75
94
97
88
70
64
83
89
-1
3.1 Imprime
resultados
Salida del
programa
Problema
en cuenta:
Representacin general
Analice los resultados del examen y decida si debe aumentarse
el nivel
Primer Refinamiento
Inicializar variables
Ingrese las diez notas y cuente los aprobados y jalados
Imprimir un resumen de los resultados del exmenes y decidir
si se debe aumentar el nivel
aprobados y jalados
/*
Analisis de resultados de un examen */
#include <stdio.h>
int main()
{
/* inicializacion de variables */
int pasaron = 0, jalaron = 0, estudiantes = 1, nota;
/* proceso de 10 notas; bucle controlado por contador */
while ( estudiantes <= 10 ) {
printf( "Ingrese nota ( 0 - 20 ): " );
scanf( "%d" , ¬a );
if ( nota >= 11 )
pasaron++;
else
jalaron++;
estudiantes++;
}
printf( "Pasaron %d\n", pasaron );
printf( "Jalaron %d\n", jalaron );
if ( jalaron > 8 )
printf( "Aumentar el nivel de enseanza\n" );
getch();
return 0;
}
Analisis1.c
Ms estructuras de control
La estructura de repeticin
do/while
Similar a while
La condicin para la repeticin se evala
despus que el lazo es ejecutado
Formato:
do {
enunciado;
} while ( condicion );
La estructura de repeticin
do/while
Ejemplo
do {
printf( "%d ", contador );
} while (++contador <= 10);
acciones
Verdadero
condicin
Falso
/* Estructura do while */
2
3
#include <stdio.h>
4
5
int main()
1. Inicializacin
int contador = 1;
2. Bucle
8
9
do {
10
printf( "%d
11
", contador );
3. Impresin
12
13
return 0;
14 }
Salida
3
10
Estructuras de repeticin
break
for
do/while
Usado para salir en forma inmediata y rpida de ciertas
estructuras de control
continue
Lo esencial de la repeticin
Bucle o Lazo
Repeticin indefinida
Se usa cuando la cantidad de repeticioness es
desconocida
El valor de centinela indica fin de los datos"
Ejemplo:
for( int contador = 1; contador<=10; contador++)
printf( "%d\n", contador );
Sin punto y
coma (;) al
final
Inicializacin e incremento
Expresiones Aritmticas
es equivalente a
for ( j = 2; j <= 80; j += 5 )
2
3
#include <stdio.h>
4
5
int main()
8
9
10
11
12
1. Inicializacin
2. Estructura
de repeticin
for
13
14
return 0;
15 }
Suma es 2550
Salida
break
continue
while y do/while
for
2
3
4
5
int main()
int x;
8
9
1. Inicializa
variable
10
11
if ( x == 5 )
12
continue;
13
2. Lazo
if x == 5 */
14
15
16
3. Imprime
17
18
19
return 0;
20 }
Salida
3
10
Programacin Estructurada
Ventaja:
2.
3.
Regla 2
Regla 2
Regla 2
.
.
.
Programacin Estructurada
Regla 3 Reemplazar algunos rectngulos con
estructuras de control
Regla 3
Regla 3
Regla 3
Programacin Estructurada
Estructuras de Control
Ejemplos Resueltos
Problema 1
Problema 2
x
e
n 0 n!
x
Atencin de Preguntas
Fin del Captulo 3