Tema 6a
Estructuras de control
Secuenciales y selectivas
Estructuras de control
• Controlan el flujo de un algoritmo
– Secuencial
– Selectiva
– Repetitiva
Secuencial
1
1
2
3
2
3
4
4
Secuencial
f ( x) 
k(x  m)
2
1 k(x  m)
2
Secuencial
Pedir valor de k
Ingresar valor de k
Pedir valor de m
Ingresar valor de m
Pedir valor de x
Ingresar valor de x
Calcular aux = k*(x-m)*(x-m)
Calcular f = aux/(1+aux)
Mostrar valor de f(x)
Pedir valor de k
Ingresar valor de k
Pedir valor de m
Ingresar valor de m
Pedir valor de x
Ingresar valor de x
Calcular aux = k*(x-m)*(x-m)
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
3
no
3
4
4
Selectiva (si-entonces)
instruccion1;
if(condicion)
instrucción2;
instrucción 3
Palabra
reservada
instrucción1;
if(condicion){
instrucción2;
instrucción3;
instrucción4;
}
Instrucción5;
“evaluable”
a verdadero
o falso
Bloque
Selectiva (si-entonces)
 k(x  m)

f ( x )  1  k ( x  m ) 2

0

2
x0
etoc
Selectiva (si-entonces)
Ingresar valor de x
si
x>0
no
Calcular aux = k*(x-m)*(x-m)
Calcular f = aux/(1+aux)
Mostrar valor de f(x)
Ingresar valor de x
x>0
no
si
Calcular aux = k*(x-m)*(x-m)
Calcular f = aux/(1+aux)
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)
si
1
1
2
2
C
3a
C
no
si
3b
no
3a
3b
4
4
Selectiva (si-entonces-sino)
instruccion1;
if(condicion)
instrucción2;
else
instrucción 3
Instruccion4;
Palabra
reservada
“condicion”
verdadera
instrucción1;
if(condicion){
instrucción2;
instrucción3;
instrucción4;
}else{
instrucción5;
instrucción6;
}
Instrucción7;
“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
}else{
if(condicion3){
instruccion4;
}
}
}
instrucción 5;
Selectiva (si-entonces-sino)
 k(x  m)

2
1 k(x  m)

f ( x)  
0
2
 k(x  m)
1  k ( x  m ) 2

2
si
x0
si
x0
si
x0
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
A
B
C
D
D
E
E
Selectiva (en el caso de)
Variable
por analizar
Palabras
reservadas
Termino
de casos
switch(<var>){
case <op1>:
instruccion1;
instruccion2;
break;
case <op2>:
instruccion3;
instruccion4;
break;
default :
instruccion5;
instruccion6;
}
Valores de
<var>
Ìr al termino
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");
printf("***************************\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
Fin tema 6a
Estructuras de control
Secuenciales y selectivas
Descargar

Document