UNIDADIII:
EstructuraSegnodeseleccin
Mltiple
UnanLEON
DepartamentodeComputacinUNANLen
UnidadIII:EstructurasdeDecisinlgica
ESTRUCTURASEGNOSELECCINMULTIPLE
La estructura condicional SEGN se utiliza cuando queremos evitarnos las llamadas escaleras de
decisiones.Laestructuradecisinlgicanospuedeproporcionar,nicamente,dosresultados,unopara
verdadero y otro para falso. Una estructura Segn...Haceropcin N, por su parte, nos permite elegir
entremuchasopciones:
Esta estructura permite seleccionar una, dentro de un conjunto de alternativas, con base en el valor
almacenadoenuncampovariabledenominadoselectorocampocontroladordelaestructura.Es
unaestructuraselectivamltipledonde,deacuerdoconelvalorquetengaelcontrolador,serealiza
unadeterminadatareaunasolavez,esdecir,norepitelaejecucindelatareaosecuencia.Deacuerdo
alvalorquetengaelcontroladorelcontroldeejecucindelprogramapasaaunodevariospuntos
deste,evitandoasunaseriedepreguntas.
Representacin
SegunVariable_SelectorHacer
opcion_1:
secuencia_de_acciones_1;
opcion_2:
secuencia_de_acciones_2;
opcion_3:
secuencia_de_acciones_3;
DeOtroModo:
secuencia_de_acciones;
FinSegun
EnelreadeComandosdelPSeint
Funcionamiento
Esta instruccin permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor
almacenadoenunavariabledetiponumrico.Alejecutarse,seevalaelcontenidodelavariableyse
ejecutalasecuenciadeinstruccionesasociadascondichovalor.
Cadaopcinestformadaporunoomsnmerosseparadosporcomas,dospuntosyunasecuenciade
instrucciones. Si una opcin incluye varios nmeros, la secuencia de instrucciones asociadas se debe
ejecutarcuandoelvalordelavariableesunodeesosnmeros.
UnidadIII:EstructurasdeDecisinlgica
Opcionalmente, se puede agregar una opcin final, denominada De Otro Modo, cuya secuencia de
instruccionesasociadaseejecutarslosielvaloralmacenadoenlavariablenocoincideconningunade
lasopcionesanteriores.
Ejemplo1
Ejemplo2
Datosdeentrada:
Lanotadeunestudiante.
Datosdesalida:
Unmensajesegnlanotadelalumno.
Definicindevariables:
nota:Representalanotadelestudiante.
UnidadIII:EstructurasdeDecisinlgica
Pseudocdigo
Procesonota
Escribir"Inserteunanota:;
Leernota;
SegnnotaHacer
0,1,2,3,4:
Escribir"Suspenso";
5:
Escribir"Aprobado";
6:
Escribir"Bien";
7,8:
Escribir"Notable";
9,10:
Escribir"Sobresaliente";
DeOtroModo:
Escribir"Noesunanotavalida";
FinSegun
FinProceso
Diagramadeflujo
Pruebadeescritorio
nota
9
Salida
UnidadIII:EstructurasdeDecisinlgica
Pruebadeescritorio
nota
2
Pruebadeescritorio
nota
12
Salida
Salida
3. Construyaunalgoritmoquepermitacalcularloquehayquepagarleauntrabajadorteniendo
encuentasusueldoylashorasextrastrabajadas.Paraelpagodehorasextrassetomaencuenta
lacategoradeltrabajador.
Categora
Preciodehoraextra
1
$30
2
$38
3
$50
4
$70
Datosdeentrada:
Elsalariodeltrabajador.
Lacantidaddehorasextras
Lacategora
Datosdesalida:
Elsalarioqueseletienequepagaraltrabajador
Definicindevariables:
sal:salariodeltrabajador.
hextra:cantidaddehorasextras.
cat:lacategoraeelegir.
vhextra:valordelashorasextrasegnlacategoraelegida.
saltotal:Elsueltototalapagaraltrabajador.
UnidadIII:EstructurasdeDecisinlgica
Pseudocdigo
Procesosueldo
Definirsal,saltotal,vhextraComoReal;
Definircat,hextraComoEntero;
Escribir"Ingreseelsalariodeltrabajador";
Leersal;
Escribir"Ingreselacantidadehorasextras";
Leerhextra;
Escribir"Ingreselacategoria";
Leercat;
SeguncatHacer
1:
2:
3:
4:
DeOtroModo:
FinSegun
saltotal<sal+vhextra;
Escribir"Elsalariodeltrabajadorconlahorasextraes:",saltotal;
vhextra<hextra*30;
vhextra<hextra*38;
vhextra<hextra*50;
vhextra<hextra*70;
Escribir"Categoriainvalida";
FinProceso
UnidadIII:EstructurasdeDecisinlgica
Diagramadeflujo
Pruebadeescritorio
sal hextra
2000
8
cat
1
Salida
vhestra saltotal
40
2240
PruebadeescritorioSalida
sal hextra
2500
12
cat
3
vhestra saltotal
600
3100
UnidadIII:EstructurasdeDecisinlgica
4. Construyaunalgoritmoquealrecibircomodatosdosvariablesdetipoentero,obtengael
resultadodelasiguientefuncin:
f(T)=
T/5
Si OP = 1
T^T
Si OP = 2
6*T/2
Si OP = 3, 4
Datosdeentrada:
Laopcinaelegir.
Unvalorentero.
Datosdesalida:
Elresultadodelaexpresin.
Definicindevariables:
OP:Representalaopcinelegidaporelusuario.
T:Valorenteroutilizadoenlaexpresin.
RES:Resultadodelaexpresinevaluada.
Pseudocdigo
Procesofuncion2
DefinirOP,Tcomoentero;
DefinirREScomoreal;
Escribir"1.R=T/5";
Escribir"2.R=T^T";
Escribir"3.R=6*T/2";
Escribir"4.R=1";
Escribir"Elijasuopcion:";
LeerOP;
Escribir"Ingreseunvalorentero:";
LeerT;
SegnOPHacer
1:
RES<T/5;
UnidadIII:EstructurasdeDecisinlgica
2:
RES<T^T;
3,4:
RES<6*T/2;
DeOtroModo:
RES<1;
FinSegun
Escribir"Resultado:",RES;
FinProceso
Diagramadeflujo
UnidadIII:EstructurasdeDecisinlgica
Pruebadeescritorio
OP
2
T
3
Salida
Salida
RES
27
Pruebadeescritorio
OP
3
T
5
RES
15
5. Construyaunpseudocdigo,quealrecibircomodatoselnivelacadmicodeunprofesordeuna
universidad as como su salario, incremente ste ltimo siguiendo las especificaciones de la
tablaeimprimatantoelniveldelprofesorcomosunuevosalario.
Nivel
Profesoradjunto
Profesorauxiliar
Profesorasistente
Profesortitular
Incremento
3.5%
4.1%
4.8%
5.3%
Datosdeentrada:
Elnivelacadmicodelprofesor.
Salario.
Datosdesalida:
Niveldelprofesor.
Nuevosalario.
Definicindevariables:
nivel:Representalacategoradelprofesor.
sal:Representasusalarioinicialyelnuevosalario.
UnidadIII:EstructurasdeDecisinlgica
Pseudocdigo:
Procesoprofesor
Definirnivel,adjunto,auxiliar,asistente,titularcomoentero;
Definirsal,nuevosalComoReal;
adjunto<1;
auxiliar<2;
asistente<3;
titular<4;
Escribir"Categorasdeprofesoruniversitario:";
Escribir"
";
Escribir"1.Profesoradjunto";
Escribir"2.Profesorauxiliar";
Escribir"3.Profesorasistente";
Escribir"4.Profesortitular";
Escribir"Ingreseelnivelacadmicodelprofesor:";
Leernivel;
Escribir"Ingreseelsalario:";
Leersal;
SegnnivelHacer
adjunto:
nuevosal<sal*1.0035;
Escribir"Nivel:",nivel,",ProfesorAdjunto";
Escribir"Nuevosalario:",nuevosal;
auxiliar:
nuevosal<sal*1.0041;
Escribir"Nivel:",nivel,",ProfesorAuxiliar";
Escribir"Nuevosalario:",nuevosal;
asistente:
nuevosal<sal*1.0048;
Escribir"Nivel:",nivel,",ProfesorAsistente";
Escribir"Nuevosalario:",nuevosal;
titular:
nuevosal<sal*1.0053;
Escribir"Nivel:",nivel,",ProfesorTitular";
Escribir"Nuevosalario:",nuevosal;
DeOtroModo:
Escribir"Categoraincorrecta";
FinSegun
FinProceso
10
UnidadIII:EstructurasdeDecisinlgica
Diagramadeflujo
Pruebadeescritorio
nivel
2
sal
14000
Salida
Salida
nuevosal
14057.4
Pruebadeescritorio
nivel
5
sal
10000
nuevosal
11
UnidadIII:EstructurasdeDecisinlgica
6. Realiceunalgoritmoquesimuleunacalculadora,detalformaque:
Sielusuariointroduce1,sumedosnmeros.
Sielusuariointroduce2,restedosnmeros.
Sielusuariointroduce3,multipliquedosnmeros.
Sielusuariointroduce4,dividadosnmeros.Asegresequeelsegundooperandonoseacero,
yaqueladivisinporceronoestpermitida.
Datosdeentrada:
Unnmeroenteroindicandolaoperacinarealizar.
Losdosoperandos.
Datosdesalida:
Larespuestasegnlaoperacinrealizada.
Definicindevariables:
operacion:Indicaunenterocorrespondientealaoperacinarealizar.
num1:Representaelprimeroperando.
num2:Representaelsegundooperando.
resp:Almacenalarespuestaobtenida.
Pseudocdigo:
Procesocalculadora
Definirnum1,num2,operacioncomoentero;
Definirrespcomoreal;
Escribir"Estaesunacalculadora...";
Escribir"Queoperaciondesearealizar?";
Escribir"1.Suma";
Escribir"2.Resta";
Escribir"3.Multiplicacin";
Escribir"4.Divisin";
Leeroperacion;
Escribir"Ingresedosnmeros:;
Leernum1,num2;
SegunoperacionHacer
1:
resp<num1+num2;
Escribirnum1,"+",num2,"=",resp;
2:
resp<num1num2;
Escribirnum1,",num2,"=",resp;
12
UnidadIII:EstructurasdeDecisinlgica
3:
resp<num1*num2;
Escribirnum1,"*",num2,"=",resp;
4:
Sinum2<>0Entonces
resp<num1/num2;
Escribirnum1,"/",num2,"=",resp;
Sino
Escribir"Divisinporceronovalida";
FinSi
DeOtroModo:
Escribir"Operacioninvalida";
FinSegun
FinProceso
Diagramadeflujo
13
UnidadIII:EstructurasdeDecisinlgica
Pruebadeescritorio:
Salida
Salida
Pruebadeescritorio:
Zona
EstadosUnidos
Canad
AmricadelSur
AmricaCentral
Mxico
Europa
Asia
Africa
Oceana
Precio
0.13
0.11
0.22
0.19
0.17
0.17
0.20
0.39
0.28
Realice un pseudocdigo que le permita calcular e imprimir el costo total de una llamada
telefnica,considerandotantolazonacomoladuracindelallamada.Escribalaprimeraversin
usandolaclavecomoselectordelSegn.Disee unasegundaversin,asociandounnmero
constanteparacadazona,siendostaelselectordelSegn.
14
UnidadIII:EstructurasdeDecisinlgica
PseudocdigoVersinI:
Procesollamadastelf
Definircla,tiecomoentero;
Definircostocomoreal;
Escribir"Serviciodecallback";
Escribir";
Escribir"1.EstadosUnidos";
Escribir"2.Canad";
Escribir"5.AmricadelSur";
Escribir"6.AmricaCentral";
Escribir"7.Mxico";
Escribir"9.Europa";
Escribir"10.Asia";
Escribir"15.Africa";
Escribir"20.Oceana";
Escribir"Ingreselaclave:";
Leercla;
Escribir"Ingreseladuracindelallamada:";
Leertie;
SegnclaHacer
1:
costo<tie*0.13/60;
2:
costo<tie*0.11/60;
5:
costo<tie*0.22/60;
6:
costo<tie*0.19/60;
7,9:
costo<tie*0.17/60;
10:
costo<tie*0.20/60;
15:
costo<tie*0.39/60;
20:
costo<tie*0.28/60;
DeOtroModo:
costo<1;
FinSegun
Si(costo<>1)
15
UnidadIII:EstructurasdeDecisinlgica
Escribir"Clave:",cla;
Escribir"Tiempo:",tie;
Escribir"costototal:",costo;
Sino
Escribir"Errorenlaclave!!";
FinSi
FinProceso
PseudocdigoVersinII:
ProcesoIlamadastelf2
DefinirEEUU,Caada,AmericaSur,ACentral,Mexico,Europa,Asia,Africa,OceaniacomoEntero;
Definircla,tiecomoentero;
DefinircostoComoReal;
EEUU<1;
Caada<2;
AmericaSur<5;
ACentral<6;
Mxico<7;
Europa<9;
Asia<10;
Africa<15;
Oceania<20;
Escribir"Serviciodecallback";
Escribir"";
Escribir"1.EstadosUnidos;
Escribir"2.Canad";
Escribir"5.AmricadelSur";
Escribir"6.AmricaCentral";
Escribir"7.Mxico";
Escribir"9.Europa";
Escribir"10.Asia";
Escribir"15.Africa";
Escribir"20.Oceania";
Escribir"Ingreselaclave:";
Leercla;
Escribir"Ingreseladuracindelallamada:";
Leertie;
SegnclaHacer
EEUU:
16
UnidadIII:EstructurasdeDecisinlgica
costo<tie*0.13/60;
Caada:
costo<tie*0.11/60;
AmericaSur:
costo<tie*0.22/60;
ACentral:
costo<tie*0.19/60;
Mexico,Europa:
costo<tie*0.17/60;
Asia:
costo<tie*0.20/60;
Africa:
costo<tie*0.39/60;
Oceania:
costo<tie*0.28/60;
DeOtroModo:
costo<1;
FinSegun
Si(costo<>1)
Escribir"Clave:",cla;
Escribir"Tiempo:",tie;
Escribir"costototal:",costo;
Sino
Escribir"Errorenlaclave!!";
FinSi
FinProceso
EjerciciosPropuestos
1. Escribaunalgoritmoquepermitaconvertirdepulgadasamilmetros,deyardasametrosyde
millasakilmetros.Consideraciones:
pulgadaequivalea25.40milmetros
Yardaequivalea0.9144metros
Millaequivalea1.6093kilmetros.
Utiliceunavariableenteraparaexpresareltipodeconversinquedesearealizar.
2. Hacerunalgoritmoqueimprimaelnombredeunartculo,clave,preciooriginalysupreciocon
descuento.Eldescuentolohaceenbasealaclave,silaclavees1eldescuentoesdel10%ysila
clavees2eldescuentoesdel20%(soloexistendosclaves).
17
UnidadIII:EstructurasdeDecisinlgica
3. LaDireccinGeneraldeTrficonecesitaunpseudocdigoquemidaelndicealcohlico;dadoel
tipo de vehculo que conduce un conductor, determine si da positivo en el control de
alcoholemiaono.Latasamximadealcoholsegneltipodevehculoseresumeenlasiguiente
tabla:
Vehculo
Indicador
TasaMxima
Camin
C
0.4
Autobs
A
0.3
Carro
CA
0.5
Moto
M
0.6
4. Escribaunalgoritmotal,quedadoscomodatoselmodelodeunvehculoysuprecio,determine
elvalorfinalquedebepagarelcomprador.Elconcesionarioesthaciendodescuentosteniendo
encuentaelmodelo,conbaseenlasiguientetabla:
Nmerodemodelo
Modelo
Descuento
1
2
3
4
Cutlass
Cavalier
Chevy
Century
8%
5%
6%
9%
Hagausodeunenteropararepresentarelmodelo.Ademsutiliceunaopcinpordefectoque
imprima"Elmodelonoesvlido".
5. EnunspadeIxtapandelaSal,realizaronunanlisisdelosclientesregistradosenlosltimos5
aos, con el objeto de conocer de los gastos de internacin de cada cliente. Construya un
pseudocdigoquecalculeelcostodeinternacindeuncliente,segnlosdatosdelasiguiente
tabla.Sesabequelosclientesmayoresde60aostienenundescuentodel25%ylosclientes
menoresde25aos,de15%.
Tipodetratamiento
1
2
3
4
Costo/Cliente/Da
2800
1950
2500
1150
6. Construyaunpseudocdigo,quepermitacalcularelvalordef{x)segnlasiguienteexpresin:
f(x)=
Y3
(Y214)/Y3
Si(Ymod4)=0
Si(Ymod4)=1
Y3+5
Si(Ymod4)=2
Si(Ymod4)=3
18
UnidadIII:EstructurasdeDecisinlgica
7. Construyaunpseudocdigoque,alrecibircomodatoslamatrcula,lacarrera,elsemestreque
cursayelpromediodeunalumnodeunauniversidadprivadadeLima,Per,determinesiel
alumnopuedeser"asistente"dealgunadelascarrerasqueseofrecenenlauniversidad.Siel
alumnorenelosrequisitosplanteadosenlasiguientetabla,sedebeescribirsumatrculayel
promediocorrespondiente:
Carrera
Industrial:1
Telemtica:2
Computacin:3
Mecnica:4
Semestre
>=6
>=5
>=6
>=7
Promedio
>=8.5
>=9.0
>=8.8
>=9.0
8. Realice un pseudocdigo tal que, una vez ingresada una letra, decida si es una vocal o una
consonante.
9. Diseeunpseudocdigotalque,unapersonaingreseelmesyeldadesucumpleaos.Lasalida
eslaestacinenqueocurreelnacimientodelapersona:otoo,invierno,primaveraoverano.
Seusanlos4puntosnotablesenSeptiembre21,Diciembre21,Marzo21yJunio21comolas
fronterasolmitedelasestaciones.
19