You are on page 1of 28

Fundamentos de Programacin

Desarrollo de Programas Estructurados

Estructuras de control
La ejecucin de instrucciones de un programa sigue un

patrn de Ejecucin secuencial.


Utilizando la Transferencia de Control podemos cambiar la
ejecucin secuencial de un programa.
Inadecuada utilizacin caus problemas en equipos de desarrollo
Sentencia goto utilizada para realizar saltos incondicionales

Los saltos incondicionales hacan complejo el seguimiento de

la ejecucin de un programa as como si este funcionaba o no


de manera correcta.

Estructuras de control (cont.)


Nace la idea de la Programacin Estructurada
Sinnimo de eliminar la sentencia goto

La programacin estructurada naci con la publicacin del

teorema de Bohm-Jacopini (Corrado Bhm y Giuseppe Jacopini)


Todo algoritmo propio puede ser expresado en
trminos de slo tres tipos de estructuras de control:
secuencial, condicional seleccin y repetitiva.

Beneficios de la programacin estructurada


Reduccin de tiempo de desarrollo y Sistemas entregados

oportunamente
Programas ms claros, fciles de mantener y depurar
Disminuy la cantidad de errores
Cumplimiento de presupuestos de desarrollo de software

Estructuras de control (cont.)


La ejecucin de sentencias en C es secuencial
Indicador de accin
u operacin E/S

Suma calificacin a total

Total = Total + calificacion;

Suma 1 al contador

Contador = Contador+ 1;
Lneas de
flujo

Smbolos
conectores

Sentencias Condicionales
C presenta tres tipos de estructuras de seleccin en forma de

instrucciones:
Sentencia if
Sentencia ifelse
Sentencia switch

Instruccin de seleccin if
Permite elegir entre diversos cursos de accin

if calificacin del estudiante es mayor o igual que 60


Imprime Aprobado

Si la condicin es verdadera se imprime Aprobado y


continua con la ejecucin
Si la condicin es falsa se salta la sentencia de imprimir
Aprobado y se contina con la ejecucin.

calificacion
>=60

Imprime Aprobado

Instruccin de seleccin ifelse


Permite especificar que se realizarn acciones diferentes

cuando la condicin sea verdadera y cuando esta sea falsa.


if calificacin del estudiante es mayor o igual que 60
Imprime Aprobado

else
Imprime Reprobado
F
Imprime Aprobado

calificacion
>=60

Imprime Aprobado

Instruccin de seleccin ifelse


Operador condicional ( ?: )
Es el nico operador ternario en C
Ejemplos:
printf(%s\n, calificacion >= 60? Aprobado:Reprobado);

calificacion >= 60? printf(Aprobado\n): printf(Reprobado\n);

Las instrucciones ifelse anidades pueden evaluar multiples

caso al colocar instrucciones ifelse dentro de otras


instrucciones ifelse

Instruccin de seleccin ifelse


Ejemplo Pseudocdigo:

if calificacion del estudiante es mayor o igual que 90


Imprime A
else
if calificacion del estudiante es mayor o igual que 80
Imprime B
else
if calificacion del estudiante es mayor o igual que 70
Imprime C
else
if calificacion del estudiante es mayor o igual que 60
Imprime D
else
Imprime F

Instruccin de seleccin ifelse


Solucin en C

Instruccin de seleccin switch


Instruccin de seleccin mltiple para la toma de decisiones
Consiste de una serie de etiquetas case y un caso opcional

default.
Switch(expresion_de_control)
{
case switch_label1:
switch_statement1;
case case_labeln:
switch_statementn;
default:
default_statement;
}

case a

Accin(es) case a

break

Accin(es) case b

break

Accin(es) case c

break

F
case b

F
case c

F
default

Instruccin de seleccin switch


Si dos etiquetas se encuentran juntas, estas indican que se

ejecutarn el mismo conjunto de acciones por cualquiera de


las opciones. Ej.:
case D: case d:

Sentencias de Repeticin
C presenta tres tipos de estructuras de repeticin en forma

de instrucciones:
Sentencia for
Sentencia while
Sentencia dowhile

Fundamentos de la repeticin
Ciclo: grupo de instrucciones que se ejecutan mientras la

condicin de continuacin del ciclo sea verdadera.


Existen dos medios para llevar a cabo una repeticin:
Repeticin controlada por contador (repeticin definida)
Repeticin controlada por centinela (repeticin indefinida)

Repeticin controlada por contador


Conocida como repeticin definida
Requerimientos:
Declara la variable de control contador del ciclo
Inicializar la variable o establecer su valor inicial
Definir el incremento o decremento del valor de la variable
Condicin de evaluacin del valor final de la variable de control

Instruccin de repeticin for


Tiene todos los elementos de la repeticin controlada por

contador.
El formato general de la instruccin es:

for ( expresin1 ; expresin2; expresin3)


Instruccin

Expresin1: Inicializa la variable de control del ciclo


Expresin2: Define la condicin de continuacin del ciclo
Expresin3: Incrementa la variable de control
Las expresiones 1 y 3 pueden ser listas de valores separados
por coma.

Instruccin de repeticin for(cont)


Ejemplo:
Crear un programa que imprima por consola los 10 primeros

nmeros enteros

Instruccin de repeticin for(cont)


La inicializacin, la condicin de continuacin del ciclo y el

incremento pueden contener expresiones sencillas.


El incremento puede ser negativo
Si la condicin del continuidad es falsa, no se ejecuta el ciclo
La variable de control solo se debe utilizar con la finalidad de
controlar las repeticiones del ciclo
Establece el valor
inicial de la variable
de control

Determina si se ha
alcanzado el valor
final de la variable
de control

cont = 1

cont
<=10
F

cont++
Incrementa la
variable de control

Instruccin de repeticin for(cont)


Ejercicios:
Crear un programa que imprima los nmeros del 1 al 100
Modifique el programa que realiz cambiando la variable de

control de 100 a 1
Modifique la variable de control de 7 a 77 en pasos de 7
Modifique la variable de 20 a 2 en pasos de -2
Modifique la variable de control para que imprima la secuencia:
2,5,8,11,14,17,20
Modifique la variable de control para que imprima la secuencia:
99,88,77,66,55,44,33,22,11,0

Instruccin de repeticin for(cont)


Una persona invierte $1000 en una cuenta de ahorros con un

5% de inters. Se asume que todo el inters se deja en


depsito dentro de la cuenta; calcule y despliegue el monto
acumulado de la cuenta al final de cada ao, durante 10 aos.
Utilice la siguiente frmula para determinar estos montos:
a= p(1+r)n
donde
p es el monto de la inversin original
r es la tasa de inters anual
n es el nmero de aos
a es el monto del depsito al final del ao n

Repeticin controlada por centinela


Conocida tambin como repeticin indefinida
Se utilizan cuando:
Se desconoce el nmero de repeticiones
El ciclo incluye instrucciones que contienen datos, cada vez que

el ciclo se ejecuta.
El valor del centinela indica fin de los datos.
El centinela se introduce luego de que al programa se le

proporcionan todos los datos regulares


Los centinelas deber ser diferentes de los elementos de datos
regulares.

Instruccin de repeticin while


Esta instruccin permite repetir una instruccin o un

conjunto de instrucciones mientras una condicin sea


verdadera.
While existan ms elementos en mi lista de compras
Compra el siguiente elemento y mrcalo en mi lista.

Determina si se cumple
la condicin o no

producto
<=1000
F

Producto = 2 * producto

Ejercicios
Un grupo de 10 estudiantes realiz un examen. Usted tiene a

su disposicin las calificaciones (enteros en el rango del 1 al


100) de este examen. Determine el promedio de las
calificaciones del grupo de este examen.
Desarrolle un programa de promedios de un grupo que
procese un nmero arbitrario de calificaciones cada vez que
se ejecute el programa.

Ejercicios
Un colegio ofrece un curso que prepara a los estudiantes para el examen estatal

con l que se obtiene la certificacin como corredor de bienes races. El ao


pasado, muchos de los estudiantes que completaron el curso tomaron el examen
de certificacin. De manera natural, el colegio desea saber qu tan bien se
desenvuelven los estudiantes en el examen. A usted se le pide que escriba un
programa para sumar los resultados. Para comenzar, se le proporciona una lista
de estos diez estudiantes. Junto a cada nombre se escribe un 1 si el estudiante
pas el examen y un 2 si el estudiante lo reprob.
Su programa debe analizar los resultados del examen de la siguiente manera:
Introduzca los resultados del examen (es decir, 1 o 2). En la pantalla, despliegue

el mensaje Introduzca resultado, cada vez que el programa solicite otro


resultado de examen.
Cuente el numero de resultados de cada tipo
Despliegue un resumen de los resultados del examen, indicando el numero de
estudiantes que aprobaron y el numero de estudiantes que reprobaron.
Si aprobaron ms de 8 estudiantes, imprima el mensaje Se logr el objetivo

Instruccin de repeticin dowhile


Similar que le instruccin while
while evala la condicin al principio de la ejecucin del ciclo

dowhile, evala la condicin luego que se ejecutaron las

sentencias del ciclo.


No es necesario que las instrucciones de repeticin lleven
llaves si el bloque est compuesto de una sola sentencia.

Reglas de la programacin
estructurada
Regla de simplicidad: entradas y salidas simples
Comenzar con el diagrama de flujo mas sencillo.

Regla de aplicado: Cualquier rectngulo (accin) puede ser

reemplazada por dos rectngulos (acciones) en secuencia.


Regla de anidaminto: Cualquier rectngulo (accin) puede
ser reemplazado por cualquier instruccin de control
Secuencia, if, ifelse, switch, while, dowhile, o for

Regla 4: Las reglas 2 y 3 pueden aplicarse con tanta

frecuencia como desee, y en cualquier orden


Se prohbe la utilizacin de la sentencia goto

Reglas de la programacin
estructurada (cont)
Solo tres formas de control son necesarias:
Secuencia
Ejecucin directa
Seleccin
Instruccin if
Instruccin if else
Instruccin switch

Repeticin
Instruccin while
Instruccin do while
Instruccin for

You might also like