ESTRUCTURAS SELECTIVAS

Download Report

Transcript ESTRUCTURAS SELECTIVAS

ESTRUCTURAS SELECTIVAS
OBJETIVOS
• CONOCER LAS DIFERENTES ESTRUCTURAS
SELECTIVAS O ALTERNATIVAS EN EL
LENGUAJE C.
• RESOLVER PROBLEMAS UTILIZANDO LAS
DIFERENTES ESTRUCTURAS SELECTIVAS.
Dra. Addys de Lam
ESTRUCTURAS DE ALTERNATIVAS
ESTRUCTURA DE SELECCIÓN SIMPLE
ALGORITMO
Si
( condición)
Entonces
Acciones
CODIGO EN C:
if (expresion)
sentencia;
Dra. Addys de Lam
EJEMPLOS
Si ( Ht < = 40.00 )
Entonces
Sb
Ht * Sh
Si ( sexo = = ‘ f’)
Entonces
visualizar ( “ Es Mujer”)
if ( ht < = 40.00 )
sb = ht * sh;
if ( sexo == ‘ f’)
printf ( “ Es Mujer”);
Dra. Addys de Lam
#include <stdio.h> /* Determina si el sexo es femenino */
#include <conio.h>
main()
{
char sex;
char nombre[25];
clrscr();
/* Entrada de los datos */
printf("Entre nombre: \t");
gets(nombre);
printf ("Entre el sexo (f/m) ");
sex=getchar();
printf("\n");
puts (nombre);
/* Determina el sexo femenino */
if (sex == 'f')
printf("\t *** Es Mujer ***");
getch();}
Dra. Addys de Lam
ESTRUCTURAS DE ALTERNATIVAS
ESTRUCTURA DE SELECCIÓN DOBLE
ALGORITMO
Si
( condición)
Entonces
Acciones
De Otro Modo
Acciones
CODIGO C
if (expresion)
sentencia_v;
else
sentencia_f;
Dra. Addys de Lam
ALGORITMO
Si ( Ht < = 40.00 )
Entonces
Sb
Ht * Sh
De Otro Modo
Sb
40.00*Sh + (2 * (Ht - 40.00)*Sh)
CODIGO C
if ( ht < = 40.00 )
sb = ht * sh;
else
sb = 40.00*sh + (2 * (ht - 40.00)*sh);
Dra. Addys de Lam
ALGORITMO
Si ( sexo == ‘ f’)
Entonces
visualizar ( “ Es Mujer”)
De Otro Modo
visualizar ( “ Es Hombre”)
CODIGO C
if ( sexo == ‘ f’)
printf ( “ Es Mujer”);
else
printf ( “ Es Hombre”);
Dra. Addys de Lam
#include <stdio.h> /* Determina femenino o masculino*/
#include <conio.h>
main()
{
char sex;
char nombre[25];
clrscr();
/* Entrada de los datos */
printf("Entre nombre: \t");
gets(nombre);
printf ("Entre el sexo (f/m) ");
sex=getchar();
printf("\n");
puts (nombre);
/*Determina el sexo masculino o femenino*/
if (sex == 'f')
printf("\t *** Es Mujer ***");
else
printf("\t *** Es Hombre ***");
getch();
}
Dra. Addys de Lam
ESTRUCTURAS DE ALTERNATIVAS
ESTRUCTURA DE SELECCIÓN ANIDADA
ALGORITMO
CODIGO C
Si
if (expresion)
( condición)
Entonces
Si
( condición)
Entonces
Acciones
De Otro Modo
Acciones
De Otro Modo
Si
( condición)
Entonces
Acciones
De Otro Modo
Acciones
else
Dra. Addys de Lam
if (expresion)
sentencia_v;
else
sentencia_f;
if (expresion)
sentencia_v;
else
sentencia_f ;
ALGORITMO
Si ( sexo == ‘ f’)
Entonces
visualizar ( “ Es Mujer”)
De Otro Modo
Si ( sexo == ‘ m’)
Entonces
visualizar ( “ Es Hombre”)
De Otro Modo
visualizar ( “ Error”)
CODIGO C
if ( sexo = =‘ f’)
printf ( “ Es Mujer”);
else
if ( sexo == ‘ m’)
printf ( “ Es Hombre”);
else
printf ( “ Error”);
Dra. Addys de Lam
#include <stdio.h>
/*Anidado*/
#include <conio.h>
main()
{
char sex;
char nombre[25];
clrscr();
/* Entrada de los datos */
printf("Entre nombre: \t");
gets(nombre);
printf ("Entre el sexo (f/m) ");
sex=getchar();
printf("\n");
puts (nombre);
/* Determina el sexo masculino o femenino */
if (sex == 'f')
printf("\t *** Es Mujer ***");
else
if (sex=='m')
printf("\t *** Es Hombre ***");
else
printf("Ha entrado un código del sexo errado");
getch();
}
Dra. Addys de Lam
ESTRUCTURAS DE ALTERNATIVAS
ESTRUCTURA DE SELECCIÓN
( Instrucciones Compuestas)
EJEMPLO:
Si ( Ht < = 40.00 )
Entonces
Algoritmo: Salario_Bruto
Inicio
Inicio
Sb
Ht * Sh
(* Declaración de Variable *)
Cat
“ Normal “
cadena nombre [20]
Fin
cadena cedula[12], Cat[12]
De Otro Modo
reales Ht , Sh, Sb
Inicio
visualizar(“Entre nombre y cedula”)
Sb
40.00* Sh + ( 2*(Ht - 40.00)*SH)
leer (“%s%s”,Nombre,Cedula)
Cat
“Extras “
visualizar (“Entre horas trabajadas y
Fin
salario por hora”)
visualizar(“Nombre %s Cedula: %sGana: %f
leer (“%f%f”, Ht, Sh)
Categoría: %s“, nombre,cedula,sb,Cat)
(* Calculo del Salario Bruto*)
Fin
Dra. Addys de Lam
ESTRUCTURAS DE ALTERNATIVAS
CODIGO C
( Instrucciones Compuestas)
#include<stdio.h>
#include<string.h>
main()
{
/* Declaración de Variable */
char nombre [20];
char cedula[12], cat[12];
float ht , sh, sb;
printf(“Entre nombre y cedula”);
scanf(“%s%s”,nombre,cedula);
printf (“Entre horas trabajadas y
salario por hora”);
scanf(“%f%f”, &ht,&sh);
/* Calculo del Salario Bruto*/
if ( ht < = 40.00 )
{
sb = ht * sh;
strcpy(cat, “ Normal “);
}
else
{
sb = 40.00* sh + ( 2*(ht - 40.00)*sh);
strcpy(cat, “Extras “);
}
printf(“Nombre %s Cedula: %sGana: %f
Categoría: %s“, nombre,cedula,sb,cat);
}
Dra. Addys de Lam
OPERADOR CONDICIONAL
?: El tipo de expresión condicional se puede escribir en lugar de if-else.
Formato:
expresión 1 ? expresión 2: expresión3
expresión 1: se evalúa primero, si resulta cierta:
expresión 2: es evaluada y este es el valor de la expresión condicional.
expresión 3: es evaluada si expresión 1 es falsa y éste será el valor de la expresión condicional.
Ejemplo:
i es variable entera.
(i<0) ? 0 : 100;
i<0 cierto expresión condicional es 0
falso
expresión condicional es 100
indicador = (i<0) ?0:100;
cierto
falso
indicador es 0
indicador es 100
Prof. Addys de Lam
Operador
?:
#include <stdio.h>
void main()
{
int a,b=4,c=5;
a= b>0 ? c : c+1;
/* Equivalente a
if(b>0)
a=c;
else
a=c+1; */
printf(“Elvalor de a: %i”,a);
getch();
}
Programación en C
15
Operador
?:
#include<stdio.h>
main() {
int max, n1,n2;
printf(“Entre dos valores enteros”);
scanf(“%i%i”,&n1,&n2);
/* La variable max toma el valor máximo de n1 y n2 */
max = (n1>n2) ? n1 : n2;
printf(“El valor máximo es: %i”,max);
getch();
Dra. Addys de Lam
}