Clase 17

Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1: 

Vamos a ver qué pasa si nos olvidamos algún break: #include <stdio.h> int main() { int num; printf( "Introduce un número " ); scanf( "%i", &num ); switch( num ) { case 1: printf( "Es un 1\n" ); /* Nos olvidamos el break que debería haber aquí */ case 2: printf( "Es un 2\n" ); break; default: printf( "No es ni 1, ni 2, ni 3\n" ); } }

Slide 2: 

Si al ejecutar el programa escribimos un dos tenemos el mensaje Es un dos. Todo correcto. Pero si escribimos un uno lo que nos sale en pantalla es: Es un 1 Es un 2

Slide 3: 

Sentencias de salto

Slide 4: 

Goto La sentencia goto (ir a) nos permite hacer un salto a la parte del programa que deseemos. En el programa podemos poner etiquetas, estas etiquetas no se ejecutan. Es como poner un nombre a una parte del programa. Estas etiquetas son las que nos sirven para indicar a la sentencia goto dónde tiene que saltar. #include <stdio.h> int main() { printf( "Línea 1\n" ); goto linea3; /* Le decimos al goto que busque la etiqueta linea3 */ printf( "Línea 2\n" ); linea3: /* Esta es la etiqueta */ printf( "Línea 3\n" ); } Resultado: Línea 1 Línea 3

Slide 5: 

Notas sobre las condiciones

Slide 6: 

Las condiciones de las sentencias se evalúan al ejecutarse. De esta evaluación obtenemos un número. Las condiciones son falsas si este número es igual a cero. Son verdaderas si es distinto de cero (los números negativos son verdaderos). Ahí van unos ejemplos: a = 2; b = 3; if ( a == b ) ... Aquí a==b sería igual a 0, luego falso. if ( 0 ) ... Como la condición es igual a cero, es falsa. if ( 1 ) ... Como la condición es distinta de cero, es verdadera. if ( -100 ) ... Como la condición es distinta de cero, es verdadera.

Slide 7: 

Supongamos que queremos mostrar un mensaje si una variable es distinta de cero: if ( a!=0 ) printf( "Hola\n" ); Esto sería redundante, bastaría con poner: if ( a ) printf( "Hola\n" ); Esto sólo vale si queremos comprobar que es distinto de cero. Si queremos comprobar que es igual a 3: if ( a == 3 ) printf( "Es tres\n" ); Como vemos las condiciones no sólo están limitadas a comparaciones, se puede poner cualquier función que devuelva un valor. Dependiendo de si este valor es cero o no, la condición será falsa o verdadera. También podemos probar varias condiciones en una sola usando && (AND), || (OR).

Slide 8: 

Ejemplos de && (AND): if ( a==3 && b==2 ) printf( "Hola\n" ); /* Se cumple si a es 3 Y b es dos */ if ( a>10 && a<100 ) printf( "Hola\n" ); /* Se cumple si a es mayor que 10 Y menor que 100 */ if ( a==10 && b<300 ) printf( "Hola\n" ); /* Se cumple si a es igual a 10 Y b es menor que 300 */ Ejemplos de || (OR): if ( a<100 || b>200 ) printf( "Hola\n" ); /* Se cumple si a menor que 100 O b mayor que 200 */ if ( a<10 || a>100 ) printf( "Hola\n" ); /* Se cumple si a menor que 10 O a mayor que 100 */

Slide 9: 

Se pueden poner más de dos condiciones: if ( a>10 && a<100 && b>200 && b<500 ) /* Se deben cumplir las cuatro condiciones */ Esto se cumple si a está entre 10 y 100 y b está entre 200 y 500. También se pueden agrupar mediante paréntesis varias condiciones: if ( ( a>10 && a<100 ) || ( b>200 && b<500 ) ) Esta condición se leería como sigue: si a es mayor que 10 y menor que 100 o si b es mayor que 200 y menor que 500 Es decir que si se cumple el primer paréntesis o si se cumple el segundo la condición es cierta.

Slide 10: 

Ejercicios

Slide 11: 

Ejercicio 1: ¿Cuántas veces nos pide el siguiente programa un número y por qué? #include <stdio.h> int main() { int i; int numero, suma = 0; for ( i=0; i<4; i++ ); { printf( "\nIntroduce un número: " ); scanf( "%d", &numero ); suma += numero; } printf ( "\nTotal: %d\n", suma ); system( "PAUSE" ); }

Slide 12: 

Solución: El programa se ejecutará una única vez puesto que al final de la sentencia for hay un punto y coma. Como sabemos, el bucle for hace que se ejecuten las veces necesarias la sentencia siguiente (o el siguiente bloque entre { } ). Para que el programa funcione correctamente habría que eliminar el punto y coma.

Slide 13: 

Ejercicio 2: Una vez eliminado el punto y coma ¿cuántas veces nos pide el programa anterior un número? Solución: Se ejecuta cuatro veces. Desde i=0 mientras la segunda condición sea verdadera, es decir, desde i=0 hasta i=3. Ejercicio 3: Escribe un programa que muestre en pantalla lo siguiente: * ** *** **** *****

Slide 14: 

Solución: #include <stdio.h> int main() { int i, j; for( i=0; i<6; i++ ) { for( j=0; j<i; j++ ) printf( "*" ); printf( "\n" ); } return 0; }

authorStream Live Help