universidad peruana de las americas ingenieria de computacion y sistemas programacion i ing. pedro...

23
UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO 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 )

Upload: celestina-villescas

Post on 23-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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 )

Page 2: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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.

Accion 1 Accion 3Accion 2

Page 3: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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

Page 4: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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

Page 5: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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?

Page 6: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Expresiones Lógicas

Orden de precedencia:

Si queremos cambiar el orden de precedencia usamos los

parentesis

+

-

NOT*,/+,-relacionalesigualdadand, or

Page 7: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Expresiones Lógicas

Algunas equivalencias:

!(a==b) =>

LEY DE MORGAN

!((a==b)||(a==c)) =>

!((a==b)&&(a==c)) =>

Page 8: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

3 tipos de sentencias selectivas:

Sentencias de seleccion simple

Sentencias de seleccion binaria

Sentencias de seleccion multiple

Page 9: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

Sentencias de seleccion simple:

Ejemplo:

if ( numero % 2 == 0)

{

printf(“Numero par”);

}

Page 10: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

Sentencias de seleccion simple:

Diagrama de flujo:Inicio

Fin

Leer n

n mod 2 = 0

Escribir ParNo

Si

Page 11: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

Sentencias de seleccion binaria:

Ejemplo:

if ( numero % 2 == 0)

{

printf(“Numero par”);

}else{

printf(“Numero impar”);

}

Page 12: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

Sentencias de seleccion binaria:

Diagrama de flujo:Inicio

Fin

Leer n

n mod 2 = 0

NoSi

Escribir ParEscribir Par

Page 13: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Selectivas

Sentencias de seleccion multiple:

Ejemplo:

#include<stdio.h>

int main(void){

char op; int a=4,b=2,c=0; scanf("%s",&op); switch (op){ case '+': c=a+b; break; case '-': c=a-b; break; case '*': c=a*b; break; default : c=a/b; break; } printf("%d\n",c);

}

Page 14: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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

Page 15: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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.

Page 16: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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?

Page 17: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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?

Page 18: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Estructuras Repetitivas

do .. while:

Ejemplo:

do{

printf("Ingrese un entero:");

scanf("%d",&n);

printf("Desea Continuar(Y/N):");

scanf("%s",&rpt);

}while(rpt=='Y');

Page 19: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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.

Page 20: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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("%d\n",f);

}

Page 21: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

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 valido\n"); break; //termina el bucle } if (value > 100) { printf("No valido\n"); continue; //salta una iteracion } }

Page 22: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

Problema:

Escribir un triangulo de numeros, la altura se introduce como

dato y debe ser menor que 10.

Ejemplo altura 6:

1

121

12321

1234321

123454321

12345654321

Nota: Una iteraccion por linea de digitos

Cada linea tiene 2 mitades: 123456.....54321

Page 23: UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS PROGRAMACION I ING. PEDRO BENITES TOLEDO Programación I Capitulo IV : Estructuras

UNIVERSIDAD PERUANA DE LAS AMERICAS INGENIERIA DE COMPUTACION Y SISTEMAS

PROGRAMACION I ING. PEDRO BENITES TOLEDO

#include<stdio.h>

int main(void){

int mitad1,mitad2,fila,altura,espacio; printf("Ingrese altura:"); scanf("%d",&altura);

for(fila=1;fila<=altura;fila++){ for(espacio=altura-fila;espacio>=1;espacio--) printf(" "); for(mitad1=1; mitad1 <= fila; mitad1++) printf("%d",mitad1); for(mitad2=fila-1;mitad2>=1;mitad2--) printf("%d",mitad2); printf("\n"); }

printf("\n");

}