Вы находитесь на странице: 1из 8

Estructuras de Seleccin

LA ESTRUCTURA
DE

SELECCIN

IF

La sentencia if se la conoce como estructura de seleccin simple y su funcin es realizar o no una determinada accin o sentencia, basndose en el resultado de la evaluacin de una expresin (verdadero o falso), en caso de ser verdadero se ejecuta la sentencia.

Fig. .! La estructura de seleccin if ("ue se muestra en la figura .!) trabaja de la siguiente manera# si la evaluacin de la expresin o expresiones es verdadera ( ! ) entonces se ejecuta la sentencia a la cual se refiere la estructura de control if. $i fueran varias sentencias a las "ue se refiere la estructura if (como se muestra en la figura .%) se tiene "ue encerrar todas las sentencias entre llaves ( { } ) y si la evaluacin de la expresin es correcta entonces se ejecuta todas las sentencias contenidas entre las llaves.

Fig. .% $i la evaluacin de la expresin o expresiones resultar&a falsa ('), entonces no se ejecuta las sentencias. (or ejem l! si dada la edad de una persona "uiero dar un mensaje de "ue es o no mayor de edad, suponiendo "ue una persona mayor de edad tiene por lo menos %! a)os, el procedimiento ser el siguiente. #include <iostream.h> void main() { cout<<"Qu edad tienes? \n"; cin>>edad if ( edad > 20 ) cout<<" res ma!or de edad" ;

}
#include <iostream.h> void main() { cout<<"Qu edad tienes? \n"; cin>>edad if ( edad > 20 ) { cout<<" res ma!or de edad"; cout<<""e estas volviendo vie#o ";

} }

*n (seudocdigo el anterior ejemplo se ver&a de la siguiente forma#

Inici! "!strar +,-u. edad tienes/0 Leer edad Si *dad 1 %' Ent!nces "!strar +*res mayor de *dad0 Fin Si Fin

*l diagrama de flujo de la estructura if se muestra en la Fig. .2, este diagrama contiene el s&mbolo diamante "ue es llamado el s&mbolo de decisin, "ue indica "ue decisin se debe tomar. *l s&mbolo de decisin contiene una expresin, y la evaluacin de .sta ser verdadera o falsa. Las flec3as nos indican los dos posibles caminos "ue se pueden tomar.

fig .2 *l anterior diagrama de flujo funciona de la siguiente manera# !. $i *dad es mayor "ue %' (verdadero) entonces se muestra +*res mayor de *dad0 %. $i no entonces no 3ace nada Im !rtante. (ara mantener el cdigo legible es bueno dejar espacios o sangr&as en todas las l&neas de cdigo "ue estn dentro de una estructura if 4 else o if, estas instrucciones se las alinean un poco ms a la derec3a y as& podemos notar claramente "ue forman parte de las sentencias "ue componen a la estructura if. *sta prctica se puede aplicar a cual"uier estructura de control. ESTRUCTURA
DE

SELECCIN

IF

ELSE

La estructura if 4 else lo "ue 3ace es ejecutar una accin si el resultado de la evaluacin de la expresin es verdadera y otra accin si el resultado de la evaluacin es falsa. La diferencia con utilizar slo la estructura if es "ue si la expresin evaluada es verdadera slo en ese caso se ejecuta una accin de otro modo se pasa de largo. *n cambio en la estructura if 4 else si la expresin es falsa entonces se ejecuta otra accin.

Fig. .5 *n s&ntesis lo "ue 3ace esta estructura es realizar una accin si la expresin es verdadera y otra si es falsa. 6"u& tenemos un ejemplo para ilustrar la estructura if 4 else. #include <iostream.h> void main() $ if ( edad > 20 ) cout<<" res ma!or de edad" ; else cout<<"%o eres ma!or de edad"; 7 *l diagrama de flujo correspondiente a esta estructura es el siguiente#

fig. . *l anterior diagrama de flujo funciona de la siguiente manera# !. $i *dad es mayor "ue %' (verdadero) entonces se muestra# +*res mayor de *dad0. %. $i no entonces se muestra# +89 eres mayor de *dad0. ESTRUCTURAS C$NDICI$NALES ANIDADAS

*xiste el caso de estructuras if, if4else anidadas& 'ue no es m(s 'ue una estructura i) o i)*else dentro de otra. (or ejemplo se desea conocer cu(l es el ma!or de tres n+meros ,& - &..

/0 :include ;iostream.31 20 void main() 10 { 20 int ,30& -30& .30; 40 cout<<"5n6rese 1 n+meros"; 70 cin>>,>>->>.; **8ectura de valores 9or teclado :0 if ( , > - ) ;0 { if (, > . ) <0 cout<<", es el n+mero ma!or"; /00 else //0 cout<<". es el n+mero ma!or"; /20 } /10 else /20 { if ( - > . ) /40 cout<<"- es el n+mero ma!or"; /70 else /:0 cout<<". es el n+mero ma!or"; /;0 } /<0 } (ara explicar el funcionamiento del problema anterior se 3an enumerado todas las l&neas de tal programa. $uponiendo "ue los valores ingresados por teclado fueran# 6<%, =<!, >< . *l programa actuar&a de la siguiente manera. *l programa se ejecuta secuencialmente 3asta la l&nea ? donde encuentra una expresin. >uando se eval@e la expresin (6 1 =) l%nea &, el resultado es 'erdader! (% 1 !), por lo tanto el programa ejecuta la l%nea (, en dic3a l&nea encuentra otra expresin (6 1 >) y el resultado de evaluar dic3a expresin es fals! (% 1 ) por lo "ue el programa salta 3asta la l%nea )) y muestra A> es el n@mero mayorA. Luego va a la l%nea )* y verifica el cierre de llaves y finalmente salta 3asta la l%nea )+ siendo la @ltima l&nea de ejecucin.

Estructura de repeticin while


Bic3a estructura repite una serie de acciones mientras se cumpla una condicin.

while ( expresin ) { sentencia (s); }


La estructura C3ile trabaja de la siguiente manera# !. *val@a la expresin o condicin %. $i el resultado de esta evaluacin es 'erdader! la sentencia o sentencias se ejecutan, es decir, se ejecuta el cuerpo de la estructura.

Luego se vuelve a evaluar la expresin 2. $i el resultado de esta evaluacin es fals! no se ejecuta la sentencia o sentencias y sale del ciclo C3ile. (or ejem l! tengo "ue apagar !' velas cuando cumpla !' a)os, es decir, tengo "ue soplar !' veces, entonces el problema escrito en (seudocdigo ser&a#

Inicio edad <- 0 mientras edad != /0 a=os so9lar vela edad = edad + / Fin Mientras Fin

Ejemplo 6.1
9tro ejem l! "ue nos demostrar iteraciones con l%mite c!n!cid! es# Dengo "ue mostrar la tabla de multiplicar del E por pantalla

#include <iostream.h> void main() $ int nro3/; >hile(nro <3 /0 ) $ cout<<"< ? "<<nro<<" 3 "<<nro?<; nro@@; A A *ste programa nos mostrar lo siguiente#

< < < < < < < < < <

? ? ? ? ? ? ? ? ? ?

/ 3 < 2 3 /; 1 3 2: 2 3 17 4 3 24 7 3 42 : 3 71 ; 3 :2 < 3 ;/ /0 3 <0

$e dice "ue tiene un l&mite conocido por"ue nunca ir ms all del !', realizar exactamente !' iteraciones.

Ejemplo 6.2
Fn ejemplo con l%mite desc!n!cid! ser&a invertir un n@mero entero ingresado por teclado.

#include <iostream.h> void main() $ int nro30& auB30& r9ta30; cout<<"5n6rese un numero entero"; cin>>nro; >hile(nro > 0) $ auB 3 nro C /0; nro 3 nro * /0; r9ta 3 (r9ta ? /0) @ auB; A cout<<" l numero invertido es0 "<<r9ta; A *ste problema tiene un l&mite desconocido por"ue no puedo decir con exactitud el n@mero de iteraciones "ue 3ar, eso depende del n@mero de cifras "ue tenga el n@mero ingresado por teclado. $i el n@mero ingresado tiene 2 cifras se 3arn 2 iteraciones y si tiene G se 3arn G iteraciones. *n otras palabras el l&mite depende de la expresin "ue se eval@a.

La Estructura de Repeticin for


*sta estructura de repeticin es ms utilizada cuando sabemos el n@mero de repeticiones "ue deseamos ejecutar, es parecido al caso de la estructura C3ile en el caso de l&mite conocido. La notacin de esta estructura es sencilla y se detalla a continuacin
for ( condiciDn de inicio ; eB9resiDn ; acciDn des9us de cada iteraciDn )

{
sentencia (s); }

La condicin de inicio "uiere decir "ue podemos inicializar una variable "ue vayamos a utilizar dentro el cuerpo de la estructura for. La expresin nos indica "ue se seguir iterando mientras la condicin sea verdadera. La accin despus de cada iteracin viene a ser lo "ue "ueremos 3acer variar despu.s de cada iteracin, esta variacin podr&a ser un incremento en la variable definida en la condicin de inicio. 6l igual "ue las dems estructuras de control el cuerpo de la estructura for lleva llaves si este contiene ms de una sentencia o instruccin.

Ejemplo 6.3
Fn ejemplo sencillo puede ser "ue "uiero cantar !' veces la cancin del elefante, el cdigo ser&a algo as&#
:include ;iostream.31

void main() $ int i; )or( i 3 / ; i<3/0 ; i@@)


H

cout<<i<<" ele)ante(s) se EalanceaEa soEre la tela de una

ara=a\nF; cout;;0como veGa(n) 'ue resistGa )ueron a llamar a otro ele)ante\n ";
7 7

*l cdigo anterior emitir por pantalla !' veces el mensaje de ! elefante ....... 3asta !' elefantes...... *l ejemplo anterior es muy sencillo pero nos muestra el funcionamiento de la estructura f!r.

Fn ejemplo algo ms complejo ser&a el siguiente problema. mas ejercicios.

Estructura de repeticin do while


*sta estructura de control es muy parecida a la estructura C3ile lo "ue la 3ace diferente es "ue siempre ejecuta por lo menos una ves el cuerpo de la estructura, por eso el d!, y luego valida una expresin y en funcin a este resultado vuelve a iterar o no. La notacin de esta estructura es como sigue#

d! { sentencias o instrucciones } w ile ( eB9resiDn ); Las estructura do4C3ile lleva punto y coma a diferencia de la estructura C3ile.

Ejemplo 6.4
Fn ejemplo para este caso es el siguiente# $e desea ingresar por lo menos un nombre de un estudiante por teclado 3asta "ue el usuario presione I'I para salir o cual"uier otro n@mero para continuar. #include <iostream.h> void main() $ char nomH20I; **.adena 'ue 9uede contener 20 caracteres int r9ta30; do $

cout<<"5n6rese el nomEre de un estudiante \n";


cin>>nom; cout<<"Jesea continuar in6resando nomEres0 9ara salir K0K";

cin>>r9ta;

C3ile(rpta J< ')K 7

http://www.geocities.com/inf135/tutc/indice.htm

Вам также может понравиться