Estructuras de control Secuenciales y selectivas Tema 6a Estructuras de control Secuenciales y selectivas
Estructuras de control Controlan el flujo de un algoritmo Secuencial Selectiva Repetitiva
Secuencial 1 1 2 2 3 3 4 4
Secuencial
Secuencial Pedir valor de k Ingresar valor de k Pedir valor de k Pedir valor de m Pedir valor de m Ingresar valor de m Ingresar valor de m Pedir valor de x Pedir valor de x Ingresar valor de x Calcular aux = k*(x-m)*(x-m) Ingresar valor de x Calcular f = aux/(1+aux) Calcular aux = k*(x-m)*(x-m) Mostrar valor de f(x) Calcular f = aux/(1+aux) Mostrar valor de f(x)
Secuencial #include <stdio.h> void main(){ //f(x) = (k*(x-m)^2) / (1+k*(x-m)^2) double f=0,x=0,aux=0; int k=0,m=0; printf("Ingrese valor de k: "); scanf("%d",&k); printf("Ingrese valor de m: "); scanf("%d",&m); printf("Ingrese valor de x: "); scanf("%lf",&x); aux=k*(x-m)*(x-m); f= aux/(1+aux); printf("f(%0.2f)=%f\n",x,f); }
Selectiva (si-entonces) 1 1 2 2 C C si no 3 3 4 4
Selectiva (si-entonces) instruccion1; if(condicion) instrucción2; instrucción 3 “evaluable” a verdadero o falso Palabra reservada instrucción1; if(condicion){ instrucción2; instrucción3; instrucción4; } Instrucción5; Bloque
Selectiva (si-entonces)
Selectiva (si-entonces) Ingresar valor de x si x>0 Ingresar valor de x no x>0 Calcular aux = k*(x-m)*(x-m) no si Calcular aux = k*(x-m)*(x-m) Calcular f = aux/(1+aux) Calcular f = aux/(1+aux) Mostrar valor de f(x) Mostrar valor de f(x)
Selectiva (si-entonces) void main(){ //f(x) = (k*(x-m)^2) / (1+k*(x-m)^2) double f=0,x=0,aux=0; … printf("Ingrese valor de x: "); scanf("%lf",&x); if(x>0){ aux=k*(x-m)*(x-m); f= (aux/1+aux); } printf("f(%0.2f)=%f\n",x,f);
Selectiva (si-entonces-sino) 1 1 2 2 C si no C si no 3a 3b 3a 3b 4 4
Selectiva (si-entonces-sino) instruccion1; if(condicion) instrucción2; else instrucción 3 Instruccion4; instrucción1; if(condicion){ instrucción2; instrucción3; instrucción4; }else{ instrucción5; instrucción6; } Instrucción7; Palabra reservada “condicion” verdadera “condicion” falsa
Selectiva (si-entonces-sino) instruccion1; if(condicion1) instrucción2; else if(condicion2) instrucción 3 else if(condicion3) instruccion4; Instrucción 5; instruccion1; if(condicion1){ instrucción2; }else{ if(condicion2){ instrucción 3 if(condicion3){ instruccion4; } instrucción 5;
Selectiva (si-entonces-sino)
Selectiva (si-entonces-sino) … printf("Ingrese valor de x: "); scanf("%lf",&x); if(x>0){ aux=k*(x-m)*(x-m); f= aux/(1+aux); }else{ if(x<0){ aux=k*(x+m)*(x+m); f= aux/(1-aux); }else f=0; } printf("f(%0.2f)=%f [%f]\n",x,f,aux);
Selectiva (si-entonces-sino) Tarea Diagramas de flujo Diagramas de caja
Selectiva (?) Es un operados ternario Extremadamente compacto Muy útil para condiciones simples
Selectiva (?) condicion?instruccion1:instruccion2; Se ejecuta si “condicion” es falsa Se ejecuta si “condicion” es verdadera
Selectiva (?) #include <stdio.h> void main(){ int x=0; double f=0; scanf("%d",&x); f = x!=0?1/x:0; x!=0?printf("ok\n"):printf("error\n"); printf("f(x)=1/x, f(%d)=%lf\n",x,f); }
Selectiva (en el caso de) etoc c C 1 2 3 1 2 3 etoc A B C D A B C D E E
Selectiva (en el caso de) Variable por analizar Valores de <var> switch(<var>){ case <op1>: instruccion1; instruccion2; break; case <op2>: instruccion3; instruccion4; default : instruccion5; instruccion6; } Ìr al termino Palabras reservadas Termino de casos
Selectiva (en el caso de) #include <stdio.h> void main(){ char opcion; printf("***************************\n"); printf("************MENU***********\n"); printf("* Ingrese opcion: *\n"); printf("* a) Saldo *\n"); printf("* b) Giro rapido *\n"); printf("* c) Cambio de clave *\n"); scanf("%c",&opcion); switch(opcion){ case 'a': printf("Saldo: $%d",10);break; case 'b': printf("Giro rapido: $%d",7000);break; case 'c': printf("Cambio clave: %s","nueva clave");break; default : printf("Error, comando desconocido");break; }
Selectiva (en el caso de) Tarea Diagramas de flujo Diagramas de caja
Estructuras de control Secuenciales y selectivas Fin tema 6a Estructuras de control Secuenciales y selectivas