La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de control

Presentaciones similares


Presentación del tema: "Estructuras de control"— Transcripción de la presentación:

1 Estructuras de control
Profesora: Nelwi Báez

2 TIPOS ESTRUCTURAS DE SELECCIÓN IF IF….ELSE ESTRUCTURAS REPETITIVAS
WHILE DO… WHILE FOR

3 IF La primera construcción que usaremos será "si ... entonces ...".
El formato en C es: if (condición) sentencia; /* */ #include <stdio.h> #include <stdlib.h> int main() { int numero; printf("Escribe un numero: "); scanf("%d", &numero); if (numero>0) printf("El numero es positivo.\n"); system("pause"); } IF Nota: para comprobar si un valor numérico es mayor que otro, usamos el símbolo “>”, como se ve en este ejemplo.Para ver si dos valores son iguales, usaremos dos símbolos de “igual”: if (numero==0). Las demás posibilidades las veremos algo más adelante. En todos los casos, la condición que queremos comprobar deberá indicarse entre paréntesis.

4 Ejercicio: Crear un programa que pida al usuario dos números enteros y diga cual es el mayor de ellos.

5 If y sentencias compuestas
La "sentencia" que se ejecuta si se cumple la condición puede ser una sentencia simple o una compuesta. Las sentencias compuestas se forman agrupando varias sentencias simples entre llaves ( { y } ):

6 Ejemplo #include <stdio.h> #include <stdlib.h> int main()
En este caso, si el número es positivo, se hacen dos cosas: escribir un texto y luego... ¡escribir otro! (Claramente, en este ejemplo, esos dos “printf” podrían ser uno solo; más adelante iremos encontrando casos en lo que necesitemos hacer cosas “más serias” dentro de una sentencia compuesta) #include <stdio.h> #include <stdlib.h> int main() { int numero; printf("Escribe un numero: "); scanf("%d", &numero); if (numero>0) printf("El numero es positivo.\n"); printf("Recuerde que también puede usar negativos.\n"); system("pause"); } /* Aqui acaba el "if" */ } /* Aqui acaba el cuerpo del programa */

7 != No igual a (distinto de)
Recordar: El símbolo de “menor que” también es sencillo, pero los demás son un poco menos evidentes, así que vamos a verlos: Operadores relacionales: <, <=, >, >=, ==, != Hemos visto que el símbolo “>” es el que se usa para comprobar si un número es mayor que otro. < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que == Igual a != No igual a (distinto de)

8 if-else #include <stdio.h> #include <stdlib.h> int main()
Podemos indicar lo que queremos que ocurra en caso de que no se cumpla la condición, usando la orden “else” (en caso contrario), así: #include <stdio.h> #include <stdlib.h> int main() { int numero; printf("Escribe un número: "); scanf("%d", &numero); if (numero>0) printf("El número es positivo.\n"); else printf("El número es cero o negativo.\n"); system("pause"); }

9 Podríamos intentar evitar el uso de “else” si utilizamos un “if” a continuación de otro, así:
#include <stdio.h> #include <stdlib.h> int main() { int numero; printf("Escribe un número: "); scanf("%d", &numero); if (numero>0) printf("El número es positivo.\n"); if (numero<=0) printf("El número es cero o negativo.\n"); system("pause"); }

10 Otra forma: #include <stdio.h> #include <stdlib.h>
int main() { int numero; printf("Escriba un número: "); scanf("%d", &numero); if (numero < 0) printf("El número es negativo.\n"); else if (numero == 0) printf("El número es cero.\n"); printf("El número es positivo.\n"); system("pause"); } Otra forma:

11 Operadores lógicos: &&, ||, !
Estas condiciones se puede encadenar con “y”, “o”, etc., que se indican de la siguiente forma: if ((opcion==1) && (usuario==2)) ... if ((opcion==1) || (opcion==3)) ... if ((!(opcion==opcCorrecta)) || (tecla==ESC)) ... (Suponiendo que ESC fuera una constante ya definida con anterioridad).

12 Ejemplo #include <stdio.h> #include <stdlib.h> int main()
{ int numero; printf("2==3 vale %d\n", 2==3); /* Escribe 0 es decir falso*/ printf("2!=3 vale %d\n", 2!=3); /* Escribe 1 es decir verdadero*/ system("pause"); }

13 Nota: #include <stdio.h> #include <stdlib.h> int main() {
int numero; printf("Escribe un número: "); scanf("%d", &numero); if (numero!=0) /* Comparación normal */ printf("El número no es cero.\n"); if (numero) /* Comparación “con truco” */ printf("Y sigue sin ser cero.\n"); system("pause"); } En este ejemplo, la expresión “if (numero)” se fijará en el valor de la variable “numero”. Si es distinto de cero, se considerará que la condición es correcta, y se ejecutará la sentencia correspondiente (el “printf”). En cambio, si la variable “numero” vale 0, es considera que la condición es falsa, y no se sigue analizando. En general, es preferible evitar este tipo de construcciones. Resulta mucho más legible algo como “if (numero!=0)” que “if(numero)”.

14 Estructuras repetitivas

15 while while (condición) sentencia;
Si queremos hacer que una sección de nuestro programa se repita mientras se cumpla una cierta condición, usaremos la orden “while”. Esta orden tiene dos formatos distintos, según comprobemos la condición al principio o al final. En el primer caso, su sintaxis es : Es decir, la sentencia se repetirá mientras la condición sea cierta. Si la condición es falsa ya desde un principio, la sentencia no se ejecuta nunca. Si queremos que se repita más de una sentencia, basta agruparlas entre { y }. while (condición) sentencia;

16 #include <stdio.h>
#include <stdlib.h> int main() { int numero; printf("Teclea un número (0 para salir): "); scanf("%d", &numero); while (numero!=0) if (numero > 0) printf("Es positivo\n"); else printf("Es negativo\n"); printf("Teclea otro número (0 para salir): "); system("pause"); } Un ejemplo que nos diga si cada número que tecleemos es positivo o negativo, y que pare cuando tecleemos el número 0:

17 do ... while Este es el otro formato que puede tener la orden “while”: la condición se comprueba al final. El punto en que comienza a repetirse se indica con la orden “do”, así: do sentencia; while (condición) Al igual que en el caso anterior, si queremos que se repitan varias órdenes (es lo habitual), deberemos encerrarlas entre llaves.

18 #include <stdio.h>
#include <stdlib.h> int main() { int valida = 711; int clave; do { printf("Introduzca su clave numérica: "); scanf("%d", &clave); if (clave != valida) printf("No válida!\n"); } while (clave != valida); printf("Aceptada.\n"); system("pause"); Como ejemplo, vamos a ver cómo sería el típico programa que nos pide una clave de acceso y nos nos deja entrar hasta que tecleemos la clave correcta. Eso sí, como todavía no sabemos manejar cadenas de texto, la clave será un número:

19 for (valorInicial; CondiciónRepetición; Incremento)
Esta es la orden que usaremos habitualmente para crear partes del programa que se repitan un cierto número de veces. El formato de “for” es : for (valorInicial; CondiciónRepetición; Incremento) Sentencia;

20 #include <stdio.h> #include <stdlib.h> int main() {
int contador; for (contador=1; contador<=10; contador++) printf("%d ", contador); system("pause"); } Nota: Recordemos que “contador++” es una forma abreviada de escribir “contador=contador+1”, de modo que en este ejemplo aumentamos la variable de uno en uno.

21 Los bucles “for” se pueden anidar (incluir uno dentro de otro), de modo que podríamos escribir las tablas de multiplicar del 1 al 5 con: #include <stdio.h> #include <stdlib.h> int main() { int tabla, numero; for (tabla=1; tabla<=5; tabla++) for (numero=1; numero<=10; numero++) printf("%d por %d es %d\n", tabla, numero, tabla*numero); system("pause"); }

22 Otro ejemplo: #include <stdio.h> #include <stdlib.h>
int main() { char letra; for (letra='a'; letra<='z'; letra++) printf("%c", letra); system("pause"); }

23 #include <stdio.h> #include <stdlib.h> int main() { int i;
for (i=0; i<=10; i++) { if (i==5) break; printf("%d ", i); system("pause"); } Sentencia break: termina el bucle Podemos salir de un bucle “for” antes de tiempo con la orden “break”: El resultado de este programa es: (en cuanto se llega al valor 5, se interrumpe el “for”, por lo que no se alcanza el valor 10).

24 y ahora a programar.!!!!¡¡¡¡¡¡
Éxito


Descargar ppt "Estructuras de control"

Presentaciones similares


Anuncios Google