ESTRUCTURAS DE CONTROL REPETITIVAS
ESTRUCTURAS DE CONTROL REPETITIVAS. OBJETIVOS. Conocer el funcionamiento de las estructuras de control repetitivas. Establecer la evaluación de condiciones necesarias para decidir si se debe seguir ejecutando o si se debe tener el proceso repetitivo.
ESTRUCTURAS DE CONTROL REPETITIVAS
E N D
Presentation Transcript
ESTRUCTURAS DE CONTROL REPETITIVAS OBJETIVOS. • Conocer el funcionamiento de las estructuras de control repetitivas. • Establecer la evaluación de condiciones necesarias para decidir si se debe seguir ejecutando o si se debe tener el proceso repetitivo. • Codificar programas en el lenguaje C donde se utilicen las diferentes estructuras de control repetitivas. Prof. Addys de Lam
ESTRUCTURAS DE CONTROL REPETITIVAS Conceptos necesarios CONTADOR 1 2 3 4 5 0+1 1+1 2+1 3+1 4+1 VALOR INICIAL VARIABLE (CONT) CONT= 0; CONT =CONT +1; CONSTANTE Prof. Addys de Lam
ESTRUCTURAS DE CONTROL REPETITIVAS Conceptos necesarios ACUMULADOR SE REQUIERE ACUMULAR DINERO EN UNA ALCANCIA 0.25 0.10 0.05 0.50 0.50 0+0.25 0.25+0.10 0.35+0.05 0.90+0.50 0.40+0.50 1.40 VALOR INICIAL VARIABLE (AHORRO) AHORRO= 0; VARIABLE (CANT) AHORRO = AHORRO +CANT; Prof. Addys de Lam
SENTENCIA DE CONTROL LA SENTENCIA WHILE FORMATO: while (expresión) sentencia EJEMPLO 1: #include <stdio.h> main ( ) /* visualizar los números del 0 al 9 */ { int digito = 0; while ( digito < = 9 ) { printf (“%d\n”, digito); ++digito; } } ó #include <stdio.h> main ( ) /* visualizar los números del 0 al 9 */ { int digito = 0; while ( digito < = 9 ) printf (“%d\n, digito++); } Prof. Addys de Lam
SENTENCIAS DE CONTROL SENTENCIA WHILE EJEMPLO 2: #include <stdio.h> main ( ) /* calculo de la media de n números*/ { int n, cont = 1; float x, media, suma =0; printf (“Entre el total de números a procesar:”); scanf ( “%d”, &n); /* Leer los números */ while ( cont < = n) { printf (“Entre los valores:”); scanf (“%f”, &x); suma += x; ++cont; } /* Calculo e impresión de la media */ media = suma/n; printf (“\nLa media es %f\n”, media); } Prof. Addys de Lam
LA SENTENCIA DO-WHILE FORMATO: do sentencia while ( expresión ) EJEMPLO 1: #include <stdio.h> main ( ) /* visualiza los números del 0 al 9 */ { int digito = 0; do printf (“%d\n”, digito++); while (digito < = 9); } Prof. Addys de Lam
LA SENTENCIA DO-WHILE EJEMPLO 2: #include <stdio.h> main ( ) /* calculo de la media de n números*/ { int n, cont = 1; float x, media, suma =0; printf (“Entre el total de números a procesar:”); scanf ( “%d”, &n); /* Leer los números */ do { printf (“Entre los valores:”); scanf (“%f”, &x); suma += x; ++cont; } while ( cont <= n); /* calculo e impresión de la media */ media = suma/n; printf (“\nLa media es %f\n”, media); } Prof. Addys de Lam
LA SENTENCIA FOR FORMATO: for ( expresión 1; expresión 2; expresión 3) sentencia en donde: expresión 1: inicializar un parámetro ( índice ). expresión 2: representa una condición a satisfacer para ejecutar el bucle. expresión 3: expresión monaria o de asignación para modificar el valor del párametro. La sentencia for es equivalente a: expresión 1; while ( expresión 2) { sentencia; expresión 3; } Prof. Addys de Lam
LA SENTENCIA FOR EJEMPLO 1: #include <stdio.h> /* visualiza los números del 0 al 9 */ main ( ) { int digito; for ( digito = 0; digito <= 9; ++digito ) printf (“%d\n”, digito); } Prof. Addys de Lam
EJEMPLO 2: #include <stdio.h> /* calculo de la media de n números*/ main ( ) { int n, cont ; float x, media, suma =0; /* Leer la cantidad de numeros a procesar */ printf (“Entre el total de números a procesar:”); scanf ( “%d”, &n); /* Leer los números */ for ( cont=0; cont < = n; ++cont ) { Printf (“Entre los valores:”); scanf (“%f”, &x); suma += x; } /* Calculo e impresión de la media */ media = suma/n; printf (“\nLa media es %f\n”, media); } Prof. Addys de Lam
SENTENCIA for Prof. Addys de Lam
EJEMPLOS DEL USO DEL FOR /* Suma de los números pares hasta 10*/ #include <stdio.h> main() { int n,suma =0; system(“Cls”); for (n=0; n<=10; n+=2) suma += n; Printf (“La suma de numeros pares: %d”,suma); } Prof. Addys de Lam
EJEMPLOS DEL USO DEL FOR /* suma de los números del 10 al 1 */ #include <stdio.h> Main () { int n,suma =0; system(“Cls”); for (n=10; n >= 1; n--) suma += n; Printf (“La suma de los 10 primeros numeros : %d”,suma); } Prof. Addys de Lam
EJEMPLOS DEL USO DEL FOR /* Imprime los numeros del 1 al 10 con incrementos de 0.5 */ #include <stdio.h> main() { float n; system(“Cls”); for (n=1; n <= 10; n+= 0.5) Printf (“%d”,n); } Prof. Addys de Lam
EJEMPLOS DEL USO DEL FOR /* Imprime los numeros del 1 al 100 que no sean múltiplos de 5 */ #include <stdio.h> main() { int n; system(“Cls”); for (n=0; n <= 100; n++) { if ( n % 5 == 0) continue; Printf (“%d”,n); } } Prof. Addys de Lam
BUCLES ANIDADOS • Los bucles se pueden anidar uno en otro. • Un bucle debe estar completamente incluido dentro del otro. • Los bucles internos y externos no necesitan ser generados por el mismo tipo de estructura de control. • Cada bucle debe ser controlado por un índice diferente. • EJEMPLO: • #include <stdio.h> • /* calculo de la media de varias listas de números */ • main ( ) • { • int n, cont, bucles, contbucles; • float x, media, suma =0; • /* Leer la cantidad de listas a procesar */ • printf (“Entre el total de listas:”); • scanf ( “%d”, &bucles); Prof. Addys de Lam
/* Bucle exterior... Procesar cada lista */ for ( contbucles=1; contbucles <= bucles; ++contbucles) { /* Leer la cantidad de numeros para cada lista */ suma = 0; printf (“\nLista número %d\nCuantos números?”,contbucles); scanf ( “%d”, &n ); /* Leer los números */ for ( cont=1; cont < = n; ++cont ) { printf (“Entre los valores:”); scanf (“%f”, &x); suma += x; } /* fin del bucle interno */ /* Calculo e impresión de la media */ media = suma/n; printf (“\nLa media es %f\n”, media); } /* fin del bucle externo */ } Prof. Addys de Lam
EJEMPLOS DEL USO DEL FOR /* Imprime un tablero de ajedrez y sobre él marca con * las celdas a las que se pueden mover un alfil */ #include <stdio.h> main() { int falfil,calfil; /* Posición del alfil */ int fila, columna; /*Posicion actual */ system(“Cls”); printf(“Posición del alfil (fila,columna):”); scanf(“%d %d”,&falfil,&calfil); for (fila=1; fila <= 8; fila++) { for (columna=1; columna <= 8; columna++) { if ((fila+columna == falfil + calfil)|| (fila-columna == falfil - calfil)) printf(“*”); else if (fila+columna)%2 ==0) printf(“B”); else printf(“N”); } printf(“\n”); } } Prof. Addys de Lam