Vous êtes sur la page 1sur 27

Programacin 1

Unidad 03 Semana 06 Estructuras de control


Profesores
Jonathan Abril Vctor Balta William Bravo Edson Mendiolaza Vctor Parasi Juan Ramrez Luis Serna

Unidad 03 Estructuras de control


Objetivos

El alumno estar en la capacidad de crear programas en el lenguaje C utilizando estructuras de control.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Estructuras de control repetitivas


Son aquellas que permiten repetir la ejecucin de un conjunto de instrucciones siempre y cuando una condicin se cumpla, a la entrada o a la salida del LOOP o LAZO
En el C podemos distinguir tres estructuras de control repetitivas:
while dowhile for

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin while

Expresin 0

si

no

Bloque de instrucciones

Mientras la expresin sea diferente de cero (verdadera) se ejecuta el bloque de instrucciones

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin while
Sintaxis:
while (expresin) bloque;
El bloque de instrucciones se ejecutar mientras el valor de la expresin sea verdadero. De lo contrario se continua con la siguiente instruccin.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 1- Instruccin while Escriba un programa que permita imprimir los cinco primeros nmeros positivos.
Datos de entrada: Ninguno Datos de salida: Impresin de los cinco primeros nmeros positivos Restricciones: Ninguna

int main(array<System::String ^> ^args) { int contador; contador = 1; while (contador <= 5) { printf("contador = %d\n", contador); contador = contador +1; } _getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 2 - Instruccin while (Solucin 1) Dado un numero n=7 generar 7,6,5,4,3,2,1 .

Datos de entrada: n Datos de salida: Impresin de la serie de nmeros positivos Restricciones: Ninguna

#include<stdio.h> #include<conio.h> int main () { int n, cont, serie; printf("Cantidad de terminos: "); scanf("%d",&n); cont=1; serie=n; while(cont<=n) { printf("%d,",serie); serie--; cont++; } getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 2 - Instruccin while (Solucin 2) Dado un numero n=7 generar 7,6,5,4,3,2,1 .

Datos de entrada: n Datos de salida: Impresin de la serie de nmeros positivos Restricciones: Ninguna

#include<stdio.h> #include<conio.h> int main () { int n; printf("Cantidad de terminos: "); scanf("%d",&n); while(n>0) { printf("%d,",n); n--; } getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin dowhile

Bloque de instrucciones

si

Expresin 0

no

Se ejecuta el bloque de instrucciones mientras la expresin sea diferente de cero. Siempre se ejecuta el bloque de instrucciones por lo menos una vez.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin do while
Sintaxis:
do bloque de instrucciones;

while (expresin);
El bloque de instrucciones se ejecutar mientras el valor de la expresin sea verdadero. De lo contrario se continua con la siguiente instruccin. El bloque de instrucciones se ejecutar por lo menos una vez.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin do while Escriba un programa que permita imprimir los cinco primeros nmeros positivos.
Datos de entrada: Ninguno Datos de salida: Impresin de los cinco primeros nmeros positivos Restricciones: Ninguna

int main(array<System::String ^> ^args) { int contador; contador = 1; do { printf("contador = %d\n", contador); contador = contador +1; } while (contador <= 5); _getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin while y do while


El bloque de instrucciones puede estar constituido por una o ms instrucciones.
Si el bloque est compuesto por varias instrucciones se encierran entre { }. No olvide que:
En el bloque de instrucciones se debe incluir alguna instruccin que permita modificar el valor de la expresin en algn momento para poder salir del lazo. En la instruccin dowhile el bloque de instrucciones se ejecuta por lo menos la primera vez.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin for
expresin 1 expresin2 0 si Bloque de instrucciones no

Se ejecuta la expresin 1

Mientras la diferente de se ejecuta instrucciones

expresin 2 sea cero (verdadera) el bloque de y la expresin 3

expresin 3

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin for
Sintaxis:
for (expresin 1; expresin 2; expresin 3) bloque;
Primero se ejecuta la expresin 1.

El bloque de instrucciones y la expresin 3 se ejecutarn mientras el valor de la expresin 2 sea verdadero.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin for Escriba un programa que permita imprimir los cinco primeros nmeros positivos.
Datos de entrada: Ninguno Datos de salida: Impresin de los cinco primeros nmeros positivos Restricciones: Ninguna

int main(array<System::String ^> ^args) { int contador; for (contador=1;contador<6;contador++) printf("contador = %d\n", contador); _getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Instruccin for
Si se omite expresin 2 se asumir el valor permanente de 1 y el bloque se ejecutar de forma indefinida (bucle infinito).
Inicialmente se ejecuta expresin 1, esta se realiza para inicializar algn parmetro que controla la repeticin del bloque de instrucciones. La expresin 2 es una condicin que debe ser verdadera para que se ejecute el bloque. La expresin 3 se utiliza para modificar el valor del parmetro que controla el bucle.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 1 - For

Elaborar un programa que muestre comprendidos entre 10 y 20 inclusive.

los nmeros pares

Datos de entrada: Ninguno Datos de salida: Impresin de los pares entre 10 y 20 Restricciones: Ninguna

int main(array<System::String ^> ^args) { int i; printf("Los nmeros pares entre 10 y 20 inclusive son: \n"); for(i=10;i<=20;i=i+2) printf("%d \n",i); _getch(); return 0; }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 2 - For

Elaborar un programa que muestre los nmeros pares comprendidos entre 10 y 20 inclusive (Descendente).
Datos de entrada: Ninguno Datos de salida: Impresin de los pares entre 10 y 20 Restricciones: Ninguna

int main(array<System::String ^> ^args) { printf("Los nmeros pares entre 10 y 20 inclusive son: \n"); for(int i=20;i>=10;i=i-2) printf("%d \n",i); _getch(); return 0; }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejemplo 3 - For Mostrar la tabla de caracteres ASCII a partir del Cdigo 32 (el espacio en blanco) hasta el Cdigo 164 (o sea la ) sin incluir las minsculas (rango del 97 al 122).
Datos de entrada: Ninguno Datos de salida: Impresin de algunos caracteres ASCII Restricciones: Ninguna

int main(array<System::String ^> ^args) { printf("Los Caracteres ASCII son: \n"); for(int i=32;i<=164;i++) if(i<97 || i>122) printf("%c %d \t",i,i); _getch(); return 0; }

Sentencias break , continue, exit.


Objetivos

El alumno estar en la capacidad de crear programas donde utilice las sentencias break , continue y exit segn crea conveniente para un caso en especfico.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

break
La proposicin "break" permite una salida forzada de las siguientes estructuras de control:
dowhile while for switch

Es utilizado para provocar el fin de la ejecucin de una ECR o para salir de la sentencia switch

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Sentencia break

Realizar una aplicacin en C que imprima los 6 primeros nmero pares que hay entre 1 y 20

int main(array<System::String ^> ^args) { int num,cont; cont=0; num=0; while (num<=20) { num=num+1; if (cont==6) break; if (num %2 ==0) { cont=cont+1; printf("%d ",num); } } _getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

continue
La proposicin continue" provoca un salto obligatorio a la siguiente iteracin dentro del ciclo de las siguientes ECR:
dowhile while for

La sentencia dentro de un bucle forzar al programa a finalizar la iteracin actual y a comenzar la evaluacin de la siguiente.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Sentencia continue

Realizar una aplicacin en C que sume los nmero pares comprendidos entre 1 y 10 inclusive

int main(array<System::String ^> ^args) { int i, suma; suma=0; for (i=1; i<=10;i++) { if (i%2!=0) // salta los impares continue; suma=suma+i; // aqu procesa los pares } printf (La suma es : %d, suma); _getch(); }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

exit
Sintaxis:
exit (cdigo)
Si el cdigo es 0, entonces la aplicacin terminar bajo la denominacin de xito Si el cdigo diferente a 0, entonces la aplicacin terminar bajo la denominacin de fallo

Es una funcin que esta definida en la librera <stdlib.h> y es utilizada para terminar la ejecucin programa actual, desde el lugar donde se le invoque.

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Sentencia exit

Realizar una aplicacin en C que pregunte al usuario si desea salir del programa hasta que el usuario ingrese la letra S.

int main(array<System::String ^> ^args) { char caracter; while (1) { flushall(); printf(Pulse el caracter S para salir ); scanf(%c,&caracter); if (caracter==S || caracter==s) exit(0); } }

Programacin 1 - 2013-01 - Unidad 3 - Estructuras de control repetitivas

Ejercicio

Realizar una aplicacin en C que permita ingresar un conjunto de nmeros enteros y nos determine la cantidad de enteros ingresados, si se sabe que se ingresarn nmeros hasta que el usuario digite el valor de cero.
int main(array<System::String ^> ^args) { int contador, numero; contador=0; while (1) { printf(Ingrese el numero 0 para salir ); scanf(%d, &numero); if (numero==0) exit(0); contador=contador +1 } printf(La cantidad de numeros ingresados es: %d,contador); return 0; }

Vous aimerez peut-être aussi