Está en la página 1de 24

Programacin (L109)

Sesin: 4
Instrucciones de Control
Ing. Jos C. Bentez P.

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

Operadores lgicos
Los operadores lgicos bsicos son tres: && AND || OR ! NOT (El valor contrario) Estos operadores actan sobre expresiones lgicas. Permiten unir expresiones lgicas simples formando otras ms complejas. V = Verdadero F = Falso
Programacin - Prof. Ing. Jose C. Benitez P.

/* Uso de los op. lgicos AND, OR, NOT. */ #include <stdio.h> main() /* Compara un nmero introducido */ { int numero; printf("Introduce un nmero: "); scanf("%d",&numero); if(!(numero>=0)) printf("El nmero es negativo"); else if((numero<=100)&&(numero>=25)) printf("El nmero est entre 25 y 100"); else if((numero<25)||(numero>100)) printf("El nmero no est entre 25 y 100"); }

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

If - else

Sintaxis:
if (condicin) sentencia;

/* Uso de la sentencia condicional IF. */ #include <stdio.h> main() /* Simula una clave de acceso */ { int usuario,clave=18276; printf("Introduce tu clave: "); scanf("%d",&usuario); if(usuario==clave) printf("Acceso permitido"); else printf("Acceso denegado"); }

La sentencia solo se ejecuta si se cumple la condicin. En caso contrario el programa sigue su curso sin ejecutar la sentencia. Otro formato:
if (condicin) sentencia1; else sentencia2;

Si se cumple la condicin ejecutar la sentencia1, sino ejecutar la sentencia2. En cualquier caso, el programa continuar a partir de la sentencia2.
Programacin - Prof. Ing. Jose C. Benitez P.

If - else

Otro formato:
if (condicin1) sentencia1; else if (condicin2) sentencia2; else if (condicin3) sentencia3; else sentencia4;

/* Uso de la sentencia condicional ELSE...IF. */ #include <stdio.h> main() /* Escribe beb, nio o adulto */ { int edad; printf ("Introduce tu edad: "); scanf("%d",&edad); if (edad<1) printf ("Lo siento, te has equivocado."); else if (edad<3) printf("Eres un beb"); else if (edad<13) printf("Eres un nio"); else printf("Eres adulto"); }

Con este formato el flujo del programa nicamente entra en una de las condiciones. Si una de ellas se cumple, se ejecuta la sentencia correspondiente y salta hasta el final de la estructura para continuar con el programa. Existe la posibilidad de utilizar llaves ({ }) para ejecutar ms de una sentencia dentro de la misma condicin.
Programacin - Prof. Ing. Jose C. Benitez P.

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

while
Sintaxis: while (condicin) sentencia; Otra forma: while (condicin) { sentencias; }

/* Uso de la sentencia WHILE. */ #include <stdio.h> main() /* Escribe los nmeros del 1 al 10 */ { int numero=1; while (numero<=10) { printf("%d\n",numero); numero++; } }

Con esta sentencia se controla la condicin antes de entrar en el bucle. Si sta no se cumple, el programa no entrar en el bucle. Naturalmente, si en el interior del bucle hay ms de una sentencia, stas debern ir entre llaves para que se ejecuten como un bloque.
Los bucles son estructuras que permiten ejecutar partes del cdigo de forma repetida mientras se cumpla una condicin. Esta condicin puede ser simple o compuesta de otras condiciones unidas por operadores lgicos.
Programacin - Prof. Ing. Jose C. Benitez P.

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

10

Do while
Sintaxis:
do { sentencia1; sentencia2; } while (condicin);

Con esta sentencia se controla la condicin al final del bucle. Si sta se cumple, el programa vuelve a ejecutar las sentencias del bucle. La nica diferencia entre las sentencias while y do...while es que con do el cuerpo del bucle se ejecutar por lo menos una vez.

/* Uso de la sentencia DO...WHILE. */ #include <stdio.h> main() /* Muestra un men si no se pulsa 4 */ { char seleccion; do { printf("1.- Comenzar\n"); printf("2.- Abrir\n"); printf("3.- Grabar\n"); printf("4.- Salir\n"); printf("Escoge una opcin: "); seleccion=getchar(); switch (seleccion) { case '1':printf("Opcin 1"); break; case '2':printf("Opcin 2"); break; case '3':printf("Opcin 3"); } } while (seleccion!='4'); }

Programacin - Prof. Ing. Jose C. Benitez P.

11

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

12

Switch
switch se utiliza en los mens, de manera que segn la opcin seleccionada se ejecuten una serie de sentencias. Sintaxis:
switch (variable) { case contenido_variable1: sentencias; break; case contenido_variable2: sentencias; break; default: sentencias; }

Ejemplo Archivo: switch.c /* Uso de la sentencia condicional SWITCH. */ #include <stdio.h> main() /* Escribe el da de la semana */ { int dia; printf("Introduce el da: "); scanf("%d",&dia); switch(dia) { case 1: printf("Lunes"); break; case 2: printf("Martes"); break; case 3: printf("Mircoles"); break; case 4: printf("Jueves"); break; case 5: printf("Viernes"); break; case 6: printf("Sbado"); break; case 7: printf("Domingo"); break; } }
13

Cada case puede incluir una o ms sentencias sin necesidad de ir entre llaves, ya que se ejecutan todas hasta que se encuentra la sentencia BREAK. La variable evaluada slo puede ser de tipo entero o caracter. default ejecutar las sentencias que incluya, en caso de que la opcin escogida no exista.

Programacin - Prof. Ing. Jose C. Benitez P.

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

14

For

Sintaxis:
for (inicializacin;condicin;incremento) { sentencia1; sentencia2; }

/* Uso de la sentencia FOR. */ #include <stdio.h> main() /* Escribe la tabla de multiplicar */ { int num,x,result; printf("Introduce un nmero: "); scanf("%d",&num); for (x=0 ; x<=10 ; x++) { result=num*x; printf("\n%d por %d = %d\n",num,x,result); } }

La inicializacin indica una variable (variable de control) que condiciona la repeticin del bucle. Si hay ms, van separadas por comas: for (a=1 , b=100 ; a!=b ; a++ , b- -) { El flujo del bucle FOR transcurre de la siguiente forma:

Programacin - Prof. Ing. Jose C. Benitez P.

15

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

16

Break
La sentencia BREAK se utiliza para terminar la ejecucin de un bucle (WHILE, DO, FOR) o salir de una sentencia SWITCH.

/* Uso de la sentencia condicional SWITCH. */ #include <stdio.h> main() /* Escribe el da de la semana */ { int dia; printf("Introduce el da: "); scanf("%d",&dia); switch(dia) { case 1: printf("Lunes"); break; case 2: printf("Martes"); break; case 3: printf("Mircoles"); break; case 4: printf("Jueves"); break; case 5: printf("Viernes"); break; case 6: printf("Sbado"); break; case 7: printf("Domingo"); break; } }

Programacin - Prof. Ing. Jose C. Benitez P.

17

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

18

continue
Se utiliza continue dentro de un bucle. Cuando el programa llega a una sentencia continue no ejecuta las lneas de cdigo que hay a continuacin y salta a la siguiente iteracin del bucle.
/* Uso de la sentencia CONTINUE. */ #include <stdio.h> main() /* Escribe del 1 al 100 menos el 25 */ { int numero=1; while(numero<=100) { if (numero==25) { numero++; continue; } printf("%d\n",numero); numero++; } }

Programacin - Prof. Ing. Jose C. Benitez P.

19

Sesin 4. Temas

Instrucciones de Control
Operadores lgicos If else While Do while Switch For Break Continue goto
Programacin - Prof. Ing. Jose C. Benitez P.

20

goto
Existe otra sentencia, GOTO, que permite al programa saltar hacia un punto identificado con una etiqueta, pero el buen programador debe prescindir de su utilizacin. Es una sentencia muy mal vista en la programacin en C.

#include <stdio.h> int main() { int n, a=0; do { printf( "Introduzca un numero entero: " ); scanf( "%d", &n ); if ( n == 0 ) { printf( "ERROR: El cero no tiene opuesto.\n" ); goto etiqueta_1; } printf( "El opuesto es: %d\n", -n ); a += n; } while ( n >= -10 && n <= 10 ); etiqueta_1: printf( "Suma: %d", a ); return 0; }

Programacin - Prof. Ing. Jose C. Benitez P.

21

Tarea (T4)
Hacer un programa en C para los siguientes enunciados: 1. Hallar el mnimo comn mltiplo (mcm) y el mximo comn divisor (MCD) de dos numero enteros. 2. Contar el numero de caracteres en una cadena de texto que contiene espacios en blanco. 3. Dados dos nmeros, seleccionar la operacin de un men: a. Suma b. Resta c. Multiplicacin d. Divisin Mostrar los nmeros y el resultado. 4. Hallar los nmeros primos del 1 al 100. 5. Hallar los 5 primeros nmeros amigos. 6. Utilizando sentencias de control hacer un grafico en modo texto. 7. Juego: Numero secreto. Generar un numero aleatorio entero, solicitar que adivinen, ingresar un numero y decir si es menor o mayor hasta encontrar el numero secreto.
Programacin - Prof. Ing. Jose C. Benitez P.

22

Presentacin
Todas las fuentes y tareas deben presentarse en formato digital (USB), dentro de una carpeta que lleve las iniciales del curso, sus Apellidos, guion bajo y luego el numero de la tarea. Ejemplo: PRG_BenitezPalacios_T4 La fuente debe conservar el nombre original y agregar _tema. Las Tareas que no cumplan las indicaciones no sern recepcionados por el profesor.

Programacin - Prof. Ing. Jose C. Benitez P.

23

Sesin 4. Elementos del lenguaje C

Programacin

http://utpprogc.blogspot.com
Programacin - Prof. Ing. Jose C. Benitez P.

24

También podría gustarte