190 likes | 617 Views
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.
E N D
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