Anda di halaman 1dari 20

2013

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

Para cualquier otro caso

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

operacin num1 num2 resp


1
5
6
11

Pruebadeescritorio:

operacin num1 num2 resp


4
2
0

7. Una empresa de telecomunicaciones canadiense ofrece servicio de callback a un precio


atractivo.Elcostodelasllamadastelefnicasdependetantodellugardeorigendelallamada
como de la zona geogrfica en la que se encuentre el pas destino. En la siguiente tabla se
presentaelcostopor60segundosparalasllamadasoriginadasenMxico.
Clave
1
2
5
6
7
9
10
15
20

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

Anda mungkin juga menyukai