UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION

  • Slides: 23
Download presentation
UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Programación I Capitulo IV

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Programación I Capitulo IV : Estructuras de Control. “das Ding an sich” “La cosa en sí y la cosa para mí” “La dos formas: tiempo y espacio” (Emmanuel Kant, 1724 -1804 ) PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Introduccion Composición secuencial de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Introduccion Composición secuencial de sentencias: No permite resolver problemas que exijan una toma de decisión. No permite la ejecución de un conjunto de instrucciones repetidas veces. PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Introduccion Herramientas que permiten

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Introduccion Herramientas que permiten alterar el orden secuencial de un conjunto de instrucciones. Estructuras selectivas: Estructura selectiva. Estructuras repetitivas: Ejecutar unn conjunto de instrucciones varias veces. Expresiones lógicas o Booleanas: Expresiones con dos posibles valores verdadero o falso PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Operadores logicos:

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Operadores logicos: Permite combinar relaciones de comparacion. Conjuncion: AND, && Disyuncion: OR, || Negacion: NOT, ! Ejemplo: (a > 30) && (b==20) Los operandos de las operadores logicos pueden ser expresiones cuya evaluacion tenga un resultado logico PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Expresion Logica:

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Expresion Logica: 1. !((letra=='Q') || (letra == 'Z')) && ( X>=6 ) 2. (largo==ancho) && !(X > 5) 3. X && (altura <= 5) ¿Por qué los paréntesis? PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Orden de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Orden de precedencia: + - NOT *, / +, relacionales igualdad and, or Si queremos cambiar el orden de precedencia usamos los parentesis PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Algunas equivalencias:

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Expresiones Lógicas Algunas equivalencias: !(a==b) => LEY DE MORGAN !((a==b)||(a==c)) !((a==b)&&(a==c)) => PROGRAMACION I => ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas 3 tipos

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas 3 tipos de sentencias selectivas: Sentencias de seleccion simple Sentencias de seleccion binaria Sentencias de seleccion multiple PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de seleccion simple: Ejemplo: if ( numero % 2 == 0) { printf(“Numero par”); } PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de seleccion simple: Diagrama de flujo: Si No PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de seleccion binaria: Ejemplo: if ( numero % 2 == 0) { printf(“Numero par”); }else{ printf(“Numero impar”); } PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de seleccion binaria: Diagrama de flujo: No PROGRAMACION I Si ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Selectivas Sentencias de seleccion multiple: Ejemplo: #include<stdio. h> int main(void){ PROGRAMACION I char op; int a=4, b=2, c=0; scanf("%s", &op); switch (op){ case '+': c=a+b; case '-': c=a-b; case '*': c=a*b; default : c=a/b; break; ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas - Muy

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas - Muy necesaria - Estructura repetitiva = bucle = lazo - Iteracción - Ejecuta un conjunto de operaciones un número determinado o indeterminado de veces. ¿Quién determina cuantas veces se ejecutan las instrucciones? Condición de control PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas 1. Número

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas 1. Número indeterminado de veces a priori. Estructura mientras(while y do. . while) - Condicion de control = expresión lógica - Las instrucciones del bucle se ejecutan : 0. . . n veces - Si la condicion es VERDADERA se seguirá ejecutando el bucle. - Bucle controlado por un contador - Bucle controlado por una bandera o centinela. PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas Bucle controlado

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas Bucle controlado por un contador: Ejemplo: i=1 //inicialización while(i<10) //evaluación {. . . . . i++; //incremento } ¿Cuantas veces se ejecuta el bucle? PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas Bucle controlado

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas Bucle controlado por una bandera: Ejemplo: flag=1 //bandera while(flag == 1) //evaluación {. . . . . if (condicion) //actualización flag=0; } ¿Cuantas veces se ejecuta el bucle? PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas do. .

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas do. . while: Ejemplo: do{ printf("Ingrese un entero: "); scanf("%d", &n); printf("Desea Continuar(Y/N): "); scanf("%s", &rpt); }while(rpt=='Y'); PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas 2. Número

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Estructuras Repetitivas 2. Número determinado de veces a priori. Estructura para(for) - El bucle se ejecuta en su totalidad - usa una variable contadora - la variable se inicializa e incrementa en un valor determinado. PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Calcular el factorial de

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Calcular el factorial de un número #include<stdio. h> int main(void){ int i, n, f=1; scanf("%d", &n); for(i=1; i<=n; i++){ f=f*i; } printf("%dn", f); PROGRAMACION I } ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS break y continue break

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS break y continue break -- sale del bucle o switch continue -- salta a la siguiente iteraccion del bucle Ejemplo: while ( value != 0) { scanf( "%d", &value ); if (value < 0) { printf("No validon"); break; //termina el bucle } if (value > 100) { printf("No validon"); continue; //salta una iteracion } } PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Problema: Escribir un triangulo

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS Problema: Escribir un triangulo de numeros, la altura se introduce como dato y debe ser menor que 10. Ejemplo altura 6: 1 12321 123454321 12345654321 Nota: Una iteraccion por linea de digitos Cada linea tiene 2 mitades: 123456. . . 54321 PROGRAMACION I ING. PEDRO BENITES TOLEDO

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS #include<stdio. h> int main(void){

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS #include<stdio. h> int main(void){ int mitad 1, mitad 2, fila, altura, espacio; printf("Ingrese altura: "); scanf("%d", &altura); for(fila=1; fila<=altura; fila++){ for(espacio=altura-fila; espacio>=1; espacio--) printf(" "); for(mitad 1=1; mitad 1 <= fila; mitad 1++) printf("%d", mitad 1); for(mitad 2=fila-1; mitad 2>=1; mitad 2 --) printf("%d", mitad 2); PROGRAMACION I ING. PEDRO BENITES TOLEDO