Documente Academic
Documente Profesional
Documente Cultură
Estructuras de Control
Profesora: Pain Pintos. Materia: Prctica Profesional II Instituto Terciario Simn Bolivar
Indice de la presentacin
Sentencia IF. Sentencia IF ELSE. Sentencia IF ELSE IF. Sentencias anidadas. Sentencia SWITCH (ejemplo). Sentencia WHILE
Ejemplo 1 (bucle regulado por contador). Ejemplo 2 (bucle regulado por centinela).
Uso de operadores de incremento y decremento Ejemplo 1 s
Sentencia DOWHILE.
Sentencia FOR.
ESTRUCTURAS DE CONTROL
En general, las instrucciones de un programa se ejecutan una tras otra, en el orden que fueron escritas. A esto se llama EJECUCIN SECUENCIAL. Las INSTRUCCIONES DE CONTROL son aquellas que permiten transferir el control a otras instrucciones sin seguir la ejecucin secuencial.
C proporciona 3 tipos de instrucciones de seleccin: IF, IFELSE y SWITCH. Proporciona adems 3 tipos instrucciones de repeticin: WHILE, DOWHILE y FOR.
s
DIAGRAMA DE FLUJO
Un diagrama de flujo es una representacin grfica de un algoritmo o de una porcin de algoritmo. Se dibuja con smbolos de propsito especiales tales como:
Smbolo de accin: indica cualquier tipo de accin que desarrolla el programa.
Smbolo de decisin: indica el punto de lrpograma en el que se va a tomar una decisin (de ac pueden partir varios cursos de accin diferentes Smbolo conector: cuando se escribe parte del programa, se inicia y se termina el diagrama con este smbolo en vez de con los smbolos de inicio y final
Smbolo de inicio y final: indica el inicio y el final del programa entero. Se agrega adentro la palabra que sea pertienente (inicio, fin)
Supongamos un programa en el que se ingresa dos enteros y se muestra si son iguales o no.
El diagrama sera
Leer valores en Variables A y B verdadero A==B falso verdadero A!=B falso Imprimir A es diferente B Imprimir A es igual B
fin
Esta sentencia de control permite ejecutar o no una sentencia simple o compuesta segn se cumpla o no una determinada condicin
Ejemplo: if (calificacin >=6) printf (aprobado\n); Calificacin es la variable; calificacin >=6 es la condicin; si esta condicin es verdadera, se ejecuta printf (aprobado\n); si es falsa, se sigue con el resto del programa, sin ejecutar el printf. s
Calificacin >=6
verdadero
Imprime Aprobado
falso
If (calificacin >=90) Printf (A\n); Else if (calificacin >=80) Printf (B\n); Else if (calificacin >=70) Printf (C\n); Else if (calificacin >=60) Printf (D\n); Else Printf (F\n);
If calificacion >= 90
verdadero
Imprimir A
falso
If calificacion >= 80
verdadero
V
Imprimir B
falso
If calificacion >= 70
Imprimir C
falso
verdadero
Imprimir F
If calificacion >= 60
Imprimir D
Una sentencia if puede incluir otros if dentro de la parte correspondiente a su sentencia, A estas sentencias se les llama sentencias anidadas
el denominador sea menor o igual al numerador y no sea igual a 0. Supongamos que el numerador se ha cargado en A y el denominador en B
La instruccin switch consiste en una serie de etiquetas case y un caso opcional default.
SWITCH EJEMPLO:
Ejemplo: supongamos que se quiere crear un programa que traduzca notas numricas (1 a 10) a notas cualitativas aproximadas (exc, mb, b, r, mal) Para esto se le pide al alumno que ingrese su nota cuantitativa (almacenada en una variable NOTA) y se ingresa a la sentencia de seleccin:
v
Case 7 Cargar nota
BREAK
case NOTA = 1
v
Case 8
V
Imprimir nota MUY BUENO BREAK
case 2
v
case 3 Imprimir nota MAL BREAK
Case 9
v
Case 10
BREAK
Case 4
v v
DEFAULT Imprimir nota REGULAR BREAK
case 5
final
INSTRUCCIONES DE REPETICIN
Instrucciones que permiten repetir una serie de veces la ejecucin de unas lneas de cdigo. Esta repeticin se realiza o bien un nmero determinado de veces o bien hasta que se cumpla una determinada condicin de tipo lgico o aritmtico. De modo genrico, a estas sentencias se les denomina bucles. Hay 3 tipos de instruc. de repeticin: WHILE, DOWHILE y FOR.
s
INSTRUCCIN WHILE
Permite ejecutar repetidamente, mientras se cumpla una determinada condicin, una sentencia o bloque de sentencias
Ej: encontrar la primera potencia de 2 que sea mayor que 1000. La variable producto se inicializa en 2. Producto = 2;
While (producto <=1000) Producto = 2 * producto;
Programa que permite sacar el promedio de un grupo de 10 alumnos a partir de notas individuales ingresadas por teclado.
falso
Sumar 1 a contador;
Imprimir promedio;
FIN
Para sacar promedio necesitamos: sumar todas las notas (esto se har en TOTAL); permitir el ingreso de cada nota individual (esto se har en la CALIFICACION); habilitar una variable para almacenar el promedio una vez que se hayan ingresado TODAS las notas (esto se har en PROMEDIO).
La variable CONTADOR es la que permite regular el bucle: ir aumentando en 1 a medida que se vayan ingresando las notas.
TOTAL es un acumulador: va a ir acumulando los valores de las diferentes calificaciones. La operacin de acumulacin tiene la forma TOTAL =TOTAL+CALIFICACION. Si no inicializamos TOTAL en 0, en la primera asignacin se estar sumando un valor espurio.
CONTADOR debe inicializarse en 1 para ir contando los ciclos que deben repetirse.
La condicin que regula el ciclo es que CONTADOR sea menor o igual a 10. Si esta condicin es VERDADERA, se ejecutan las instrucciones del bucle; si esta condicin es FALSA, se sigue de largo y se contina con la siguiente instruccin. Dentro del bucle se pide al usuario que cargue la nota y con esta nota cargada se ACUMULA en TOTAL y se ACTUALIZA el contador (se le suma 1).
Ya fuera del bucle, se realiza el clculo de PROMEDIO. En TOTAL se encuentra la suma total de las 10 notas ingresadas por el usuario. Se imprime el resultado de la variable PROMEDIO.
Ingresar calificacion
verdadero
falso
Sumar 1 a contador;
Imprimir No se ingresaron n;
falso
verdadero
if contador !=0
Imprimir promedio;
FIN
Para sacar promedio necesitamos: sumar todas las notas (esto se har en TOTAL); permitir el ingreso de cada nota individual (esto se har en la CALIFICACION); habilitar una variable para almacenar el promedio una vez que se hayan ingresado TODAS las notas (esto se har en PROMEDIO). El tipo de datos de PROMEDIO ser ahora FLOAT. Se contemplar los lugares decimales del promedio. CONTADOR contar la cantidad de notas que ingresa el usuario.
TOTAL es un acumulador: va a ir acumulando los valores de las diferentes calificaciones. CONTADOR debe inicializarse en 0 para ir contando la cantidad de notas que ingresa el usuario. Ya no regula el bucle (como en el ejemplo 1). Por esta razn debe comenzar en 0. La operacin de asignacin ser contador = contador +1.
A diferencia del ejemplo 1, antes de entrar al bucle se hace una carga de la variable calificacion. Esto es as porque es calificacion la que ahora regula el bucle.
La condicin que regula el bucle es que CALIFICACION no sea igual a -1. Si esto es verdadero, se ejecutarn las instrucciones del bucle; si esto es falso, se pasar de largo al bucle y se ejecutar la siguiente instruccin. Dentro del bucle se pide al usuario que cargue la nota y con esta nota cargada se ACUMULA en TOTAL y se ACTUALIZA el contador (se le suma 1 necesario para luego sacar el promedio. Cuando el usuario ingrese -1, no se cumplir la condicin y se saldr del bucle.
Como el usuario regula ahora la ejecucin del bucle, cabe la posibilidad de que el usuario no haya ingresado calificaciones. En este caso el contador ser igual a 0 y al efectuar la divisin para sacar el promedio, dar un error (divisin por 0).
Se realiza la verificacin dentro de una instruccin IFELSE. Si el contador es distinto de 0, se realiza el clculo del promedio y se muestra en la pantalla. Si el contador es igual a 0, se avisa que no se ha ingresado ningun valor y se sale del programa.
INSTRUCCIN DO WHILE
Funciona parecido a while. La diferencia es que la evaluacin de la expresin de control se realiza al final del bucle, despus de haber ejecutado al menos una vez las sentencias entre llaves del bucle
Ejemplo: se mostrarn los valores de 1 al 10: int contador =1; do { printf (%d , contador); } while (++contador <=10); s
C proporciona operadores unitarios de incremento (++) y de decremento (--). As, la expresin c=c+1 se transforma en c++. Y la expresin c=c-1 se transforma en c--. ++c: incrementa un valor en c y despus de usa en la expresin en que reside. c++: utiliza el valor actual de c en la expresin en que reside y luego incrementa en 1. Tambin pueden utilizarse los operadores de asignacin +=, -=, *=, /=. De esta forma la expresin c=c+1 podra transformarse en c+=1 o la expresin a=a*7 podra transformarse en a*=7.
INSTRUCCIN FOR
Maneja todos los detalles de la repeticin controlada por contador.
I
int contador; for (contador=1; contador <=10; contador++) { printf(%d\n , contador); } diagrama
Hacer un programa que permite sacar el promedio de un grupo de 10 alumnos a partir de notas individuales ingresadas por teclado. s
En C se puede declarar variables y al mismo tiempo inicializarlas. Veas la variable total. Se la declara INTEGER y al mismo tiempo, se la inicializa en 0 La variable contador no se inicializa aqu; se har dentro de la instruccin del FOR.
contador = 1: se inicializa el contador en 1. contador <=10: condicin que de ser verdadera, habilita la ejecucin de las instrucciones dentro del FOR. De ser falso, pasa de largo a la siguiente instruccin. contador++: posincremento. Contador primero ser evaluada en la condicin y luego se incrementar en 1. P.ej: en la primera vuelta, contador es = 1, por lo tanto es menor a 10 (cumple condicin). Slo luego de verificar esto, contador se incrementa en 1 (vale 2) y ser evaluado en el prximo ciclo.
Al incluir el operador de conversin float delante de total, se preserva la parte fraccional de la divisin.
Al almacenar el resultado del clculo en la variable promedio (declarada como del tipo FLOAT), se almacena tanto la parte entera como la fraccional. Al mostrar el resultado, se utiliza el especificador de conversin %.2f. Esto permite que el promedio se muestre con dos valores despus del punto decimal.