Sunteți pe pagina 1din 53

Unidad 4.

Estructuras de control

TabladecontenidoUnidad4
Presentacin de la unidad..................................................................................................................2
4.1. Estructuras selectivas..................................................................................................................4
4.1.1.Estructuraselectivasimple(if)..................................................................................................5
Actividad1.EstructurasdecontrolEjercicioA..............................................................................12
EjercicioB.Estructurasdecontrol....................................................................................................18
4.1.3.Estructuraselectivamltiple(switchcase)............................................................................19
EjercicioC.Estructurasdecontrol....................................................................................................21
Actividad2.Estructurasselectivas....................................................................................................21
4.2.Estructurasrepetitivas...................................................................................................................22
4.2.1.EstructuraMientras(while)....................................................................................................23
EjercicioD.Estructurasdecontrol....................................................................................................29
EjercicioE.Estructurasdecontrol....................................................................................................36
4.2.3.EstructuraHacermientras(dowhile)....................................................................................37
EjercicioF.Estructurasdecontrol....................................................................................................44
Actividad3.Estructurasrepetitivas..................................................................................................45
4.3.Estructurasanidadas......................................................................................................................46
EjercicioG.Estructurasdecontrol....................................................................................................49
Autoevaluacin.....................................................................................................................................50
Evidenciadeaprendizaje:Avancedesolucindelproblemaimplementandolasestructurasde
control...................................................................................................................................................51
Cierredelaunidad................................................................................................................................53


Unidad 4.Estructuras de control

Presentacin de la unidad

Enlasegundaunidad,medianteelmundodelaardilla,aprendistequecualquieralgoritmopuede
serescritoutilizandonicamentetrestiposdeinstrucciones,conocidascomoestructurasde
control,lascualesson:
o Secuenciales(cuandoseejecutanunatrasotra)
o Selectivas(cuandoseejecutandependiendodeunacondicin)
o Repetitivas(queseejecutanvariasvecesenfuncindeunacondicin)
Suobjetivoescontrolarelflujodeejecucindeunprograma,esdecir,elordenenqueseejecutan
lasinstrucciones.
ConsiderandoqueenlaunidadtresdiseastealgoritmossecuencialesyloscodificasteenlenguajeC
paraobtenerelprogramadeseadoquedierasolucinalproblemaencuestin,podemosdecirque
solamentetefaltasabercmofuncionanycmosecodificanenlenguajeClasotrasdosestructuras
parapoderdisearalgoritmosestructurados.Asquesteserjustamenteeltemadeestaunidad,
dondeestudiarsconmsdetallelostiposyfuncionamientodelasestructurasselectivasy
repetitivas,presentadasenlaunidad2.

Parasumejorcomprensin,estaunidadestdivididaendospartes:
Enlaprimerarevisarsalgunosproblemasdondelasolucinimplicatenerqueelegir
elcaminoquesedebeseguirparallegaralresultadodeseado,estosesoluciona
utilizandoestructurasselectivas,porlocualanalizarsamayorprofundidadel
significado(semntica)decadaestructurayverslaformadecodificarla(sintaxis)
enlenguajeC.
Lasegundaparteestdedicadaalasestructurasrepetitivas,paralascualessesigue
lamismaestrategia,verscmosepuedensolucionarproblemasutilizandoeste
tipodeestructurasytambinanalizarssusemnticaysintaxisenlenguajeC.De
estamanera,alfinalizarlaunidadpodrsconstruirprogramasqueincluyan
cualquiertipodeestructuradecontrol.
Unidad 4.Estructuras de control

Enestaunidad:
Construirsexpresionesbooleanas
paramodelarsituacionesreales.
Disearsalgoritmospararesolver
problemasqueimpliquenlatomade
decisiones,utilizandoestructuras
selectivas.
Disearsalgoritmospararesolver
problemasquerealicenunamisma
tareavariasvecesusando
estructurasrepetitivas.
CodificarsenlenguajeCalgoritmos
estructurados.

Utilizarestructurasdecontrolselectivas
yrepetitivaspararesolverproblemas
simplesatravsdeldesarrollode
programasenlenguajeC.


Unidad 4.Estructuras de control

4.1. Estructuras selectivas

Paradisearprogramascapacesdetomar
decisionesserequieredelasestructurasde
controlselectivas,tambin
llamadascondicionales.stasllevanacabola
funcindecontrolarelflujodelprograma
medianteunacondicinqueserepresenta
utilizandoexpresionesbooleanas,detal
maneraquecuandolacondicinsecumple(es
verdadera)seejecutaunconjuntode
instruccionesdefinidasparaestecasoy,
dependiendodeltipodeestructura,esposible
queseejecuteotroconjuntodeinstrucciones
distintoparaelcasocontrario(cuandola
condicinesfalsa);eincluso,esposible
definirdiferentesconjuntosdeinstrucciones
paravaloresdistintosquepudieratomaruna
variable.Esasque,dependiendodesu
estructura,sehandefinidotres
tipos:simples,doblesymltiples.
Paraelestudiodecadaestructuraselectiva,acontinuacin,sededicantressubsecciones,
unaparacadauna,enlascualesentenderscmofuncionanylaformaenquesecodifican
enlenguaje


Unidad 4.Estructuras de control

4.1.1.Estructuraselectivasimple(if)
Laestructuraselectivaodedecisinsimple,comosunombreloindica,permitedecidirentre
ejecutaronounbloquedeacciones.Parasurepresentacinenpseudocdigo,sepropusolapalabra
reservadaSi,mientrasqueenlenguajeCestaestructurasecodificamediantelasentenciade
controlif,talcomosemuestraenlasiguientetabla.

Tabla4.1:Representacionesdelaestructuracondicionalsimple
a<condicin>puedesercualquierexpresinbooleanaylas<instrucciones>,llamadascuerpodelSi
(if),bienpuedenserunainstruccinounbloquedeellas.
LamaneraenlaqueseejecutaunainstruccinSi(if)eslasiguiente:
Seevalalacondicinqueapareceentreparntesisysiesverdadera(tieneunvalordiferentede
cero)entoncesseejecutanlasinstruccionesdelcuerpodelSi(if),encasodenoserlonoseejecutay
continaelflujodeejecucin.
Parailustrarlasrepresentacionesyelfuncionamientodelaestructuraselectivasimplete
presentamoselsiguienteproblema,conelalgoritmoenpseudocdigo,diagramadeflujoyel
programaenlenguajeC.
Problema4.1.Tipodengulo:Serequiereunprogramaqueleaunvalorentre0y360ydetermine
eltipodengulo,considerandoque:
o nguloagudo:Mayoraceroymenorde90grados
o ngulorecto:Esiguala90grados
o nguloobtuso:Esmayorque90peromenora180grados
o ngulollano:Esiguala180grados
o ngulocncavo:Esmayora180peromenora360grados
Acontinuacinsemuestraelanlisisdelproblema,elalgoritmo,tantoenpseudocdigocomoen
diagramadeflujo;daclicaquparaaccederaellos.
ANALISISDELPROBLEMA:
Unidad 4.Estructuras de control

Unidad4.ESTRUCTURASDECONTROL
Problema4.1.Tipodengulo.

Tablaquemuestraelanlisisdelproblema4.1.Tipodengulo.

Loprimeroqueserequiereesleerelvalordelngulo,posteriormente,verificardequtipoes
paraimprimirelmensajeindicado.
Anlisisdelproblema
Datosdeentada:
ngulo
Salida:
Mensaje1:Agudo
Mensaje2:Recto
Mensaje3:Obtuso
Mensaje4:Llano
Mensaje5:Cncavo
Mtodo:
Realizarcomparacionesutilizando
laestructuradeseleccinsimple
paradeterminareltipodengulo,
serequiereunaporcadatipo
Tabla4.2:Anlisisdelproblema4.1.Tipodengulo

Algoritmoqueresuelveelproblema4.1.Tipodengulo.

Pseudocdigo:
Inicio
Imprimir"Ingreselamedidadelngulo(grados):"
Leerangulo
Siangulo0ORangulo360entonces
ImprimirNotieneclasificacin"
Fin_Si

Siangulo>0ANDangulo<90entonces
Imprimir"Elnguloesagudo"
Fin_Si

Siangulo=90entonces
Unidad 4.Estructuras de control

Imprimir"Elnguloesrecto"
Fin_Si

Siangulo>90ANDangulo<180entonces
ImprimirElnguloesobtuso"
Fin_Si

Siangulo=180entonces
Imprimir"Elnguloesllano"
Fin_Si

Siangulo>180ANDangulo<360entonces
ImprimirElnguloesconcavo"
Fin_Si
Fin

Algoritmo4.1.a:Tipodengulopseudocdigo

Observaque,parahacermslegibleelalgoritmoenpseudocdigo,sehandejadosangraspara
indicarquinstruccionesformanelcuerpodecadaunadelasestructurasSiysehanencerrado
conunrectngulo,estoseadoptarparacualquierbloquedeinstruccionesquecorrespondaal
cuerpodeunaestructura
Diagramadeflujo:

Pseudocdigo:
Unidad 4.Estructuras de control

Algoritmo4.1.b:Tipodengulodiagramadeflujo

Parareafirmarelfuncionamientodelaestructuracondicionalsimpleyverificarqueelalgoritmo
propuestoseacorrecto,enestatablasemuestrasuejecucinpasoapaso,tomandocomodatosde
entrada120grados.
Unidad 4.Estructuras de control

Comopuedesdartecuenta,alejecutarpasoapasoelalgoritmolanicacondicinquesatisfaceel
estadodelamemoriaeslaquesombreamosenlatablaanterior(angulo>90ANDangulo<180),por
lotanto,lanicainstruccinquesetomaencuentaesladelcuerpodelSicorrespondiente.
Elltimopasoeslacodificacin.Observaqueelcuerpodecadaunadelasestructurasconstadeuna
instruccin,porlotantonoesnecesarioencerrarlaentrellaves{}.Daclicaquparaverla
codificacin.
TABLA:

Tabla4.3:Pruebadeescritoriodelalgoritmo4.1

CODIFICACION:
/ * Pr ogr ama: t i poAngul o. c
Unidad 4.Estructuras de control

Descr i pci n: Det er mi na el t i po de angul o ( agudo, r ect o,


obt uso, l l ano o cncavo)
*/
#i ncl ude<st di o. h>
#i ncl ude<st dl i b. h>
/ * Funci n Pr i nci pal */
mai n ( )
{ / *I ni ci o de l a f unci n Pr i nci pal */
/ *Decl ar aci n de var i abl es */
i nt angul o;
/ *Mensaj e de bi enveni da*/
pr i nt f ( " \ nEst e pr ogr ama det er mi na de que t i po es el angul o
dado. " ) ;
/ *I nst r ucci ones */
pr i nt f ( " \ n\ nI ngr ese l a medi da del angul o ( gr ados) : " ) ;
scanf ( " %d" , &angul o) ;
i f ( angul o<=0 | | angul o>=360)
pr i nt f ( " \ n No t i ene cl asi f i caci n" ) ;
i f ( angul o>0 &&angul o<90)
pr i nt f ( " \ n El angul o es agudo" ) ;
i f ( angul o==90)
pr i nt f ( " \ n El angul o es r ect o" ) ;
i f ( angul o>90 &&angul o<180)
pr i nt f ( " \ nEl angul o es obt uso" ) ;
i f ( angul o ==180)
pr i nt f ( " \ n El angul o es l l ano" ) ;
i f ( angul o>180 &&angul o<360)
pr i nt f ( " \ nEl angul o es concavo" ) ;
pr i nt f ( " \ n\ n\ t " ) ;
syst em( " pause" ) ;
} / *Fi n de l a f unci n Pr i nci pal */

Al goritmo 4.1.a: Tipo de ngulo - pseudocdigo
Unidad 4.Estructuras de control

Acontinuacinsemuestralapantallacorrespondientealaejecucindelprogramaanterior
introduciendoelmismonguloqueseutilizenlapruebadeescritorio.

Figura4.1:EjecucindelprogramatipoAngulo.c


Unidad 4.Estructuras de control

Actividad1.EstructurasdecontrolEjercicioA

Presentacin:
AligualqueenlaUnidadanterior,enestaocasincontarsconunespacio,basededatos,para
publicarycomentartusactividades,lascualesteservirndeprcticaparamejorareneldesarrollo
deprogramasenC.RecuerdaqueestasactividadesnonecesitasenviarlasatuFacilitador(a),peros
debessubirlasalabasededatosycomentarlosaportesdetuscompaeros(as).
Paraapoyarteenlarealizacindeestasactividades,sehahabilitadolaBasededatosEstructurasde
control,enlaquepodrsingresartodotipodecomentariosrelacionadosconellas.Esimportante
queparticipesnoslocuandotengasdudassobrealgosinotambinparaapoyaratus
compaeros(as)encasodequetenganunadudaopreguntaquetpuedasresponder.
Estaactividadestintegradapor7ejerciciosquerealizarsalolargodetodalaunidad,los
identificarsporqueestnreconocidosporletras
1. Realizaunapruebadeescritoriodelalgoritmoqueresuelveelproblema4.1presentadoen
laseccinanterior(algoritmo4.1.ayalgoritmo4.1.b).Consideraqueelvalordelnguloes
98grados.
2. Posteriormenteescribe,compilayejecutaelprogramatipoAngulo.c(programa4.1)enla
computadoraconelmismovalordelngulo.
3. Compartetuexperienciaenlabasededatos.
Paraingresarlaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1.Estructurasdecontrol.


Unidad 4.Estructuras de control

4.1.2.Estructuraselectivadoble(ifelse)
Lasestructurasselectivasdoblesnospermitenelegirunadedosposiblesaccionesarealizar
dependiendodelacondicin.EnpseudocdigoseproponeusarlaspalabrasreservadasSiSinoyen
Csecodificanmediantelasentenciaifelse,talcomosemuestraenlasiguientetabla:

Tabla4.4:Representacionesdelaestructuracondicionaldoble
Aligualqueenlaestructuraselectivasimple,la<condicin>representaunaexpresinbooleanay,
las<instruccionesV>e<instruccionesF>puedeserunaovarias,alasprimerasselesllamacuerpo
delSi(if)ylassegundassonelcuerpodelSino(else).
Estaestructuradecontrolejecutaslounodelosdoscuerposdeinstrucciones:cuandolacondicin
esverdaderaseejecutanlas<instruccionesV>yencasocontrarioseejecutanlas<instruccionesF>.
Eneldesarrollodelsiguienteproblemaseejemplificanlasrepresentacionesyelfuncionamientode
estaestructura.
Problema4.2:Serequiereunprogramaquesimuleelclculoymuestrelasracesrealesparauna
ecuacindesegundogradodelaforma:
Pararesolveresteproblemaseutilizarlafrmulageneral:

Larepresentacindelalgoritmoenpseudocdigoydiagramadeflujoeslaquesemuestraaqu.
ANALISISDELPROBLEMA:
Losdatosquerequerimossonloscoeficientesdelaecuacin(a,byc)yelresultadodeseado
sernlasraces.Tambinsedebeconsiderarqueparaqueunpolinomiotengaracesrealesse
debecumplirlacondicin:

Delocontrarioelresultadodelarazcuadradaseraunnmeroimaginario.Paraestosepropone
Unid
unaestru
Algoritmo
Pseudoc
Inicio
Imprimir
Leera,b,
det
Si(
x1
x2
Imprimi
Sino
Imprimi
Fin_SiSin
Fin

Algoritmo

Diagrama
dad 4.E
cturaselectiv
oqueresuelve
digo:
Ingresalosc
c

)entonces

rLasracess
rNoexisten
o
o4.2.a:Ecuac
deflujo:
Estruc
vadoblepara
eelproblema
coeficientesa
s
son:,x1,x2
nracesreales

cindesegun
turas d
verificarque
a4.2.
,byc:
2
s
dogradops
de con
eexistanrace
seudocdigo
ntrol
esreales.

Unidad 4.Estructuras de control

Algoritmo4.2.b:Ecuacindesegundogradodiagramadeflujo
Observaqueenelalgoritmoseutilizalavariableauxiliardet,laraznesporqueelclculodel
determinante(b
2
4ac)seempleaenmsdeunlugardelalgoritmo,porlotanto,serecomienda
guardaresteresultadoparanovolverloacalcular.
Paravalidarelalgoritmo,veamossuejecucinpasoapasoenlapruebadeescritorioconel
polinomio

ParalacodificacinenlenguajeCsedebenotarqueelcuerpodelSi(if)tieneunbloquedetres
instrucciones,porloquedebernirencerradasentrellaves{},encambioelcuerpodelSino
(else)slotieneunainstruccinporloquenosonnecesarias.

Laejecucindelprogramaconlosmismosdatosdeentradadelapruebadeescritorioesla
siguiente.
Unidad 4.Estructuras de control

Figura4.2:Ejecucindelprogramaecuacion.c
PRUEBADEESCRITORIO

Tabla4.5:Pruebadeescritoriodelalgoritmo4.

CODIFICACIONENLENGUAJEC++
/ * Pr ogr ama: ecuaci on. c
Descr i pci n: Sol uci n de ecuaci ones de segundo gr ado
ut i l i zando
*/
/ * Bi bl i ot ecas */
#i ncl ude<st di o. h> / * Bi bl i ot eca de ent r ada y sal i da est ndar
*/
#i ncl ude<st dl i b. h> / * Bi bl i ot eca par a l as f unci ones del
si st ema */
#i ncl ude<mat h. h> / * Bi bl i ot eca par a ut i l i zar f unci ones
Unidad 4.Estructuras de control

mat emt i cas:


pow par a cal cul ar l a pot enci a
sqr t par a cal cul ar l a r a z cuadr ada*/
/ * Funci n Pr i nci pal */
mai n ( )
{
/ *Decl ar aci n de var i abl es */
doubl e a, b, c, x1, x2, det ;
/ * Mensaj e de bi enveni da */
pr i nt f ( " El si gui ent e pr ogr ama cal cul a l as r ai ces de un
pol i nomi o de segundo gr ado\ n" ) ;
pr i nt f ( " \ n\ t \ t ax^2 + bx + c = 0" ) ;
/ * Dat os de ent r ada */
pr i nt f ( " \ nI nt r oduzca l os coef i ci ent es de a, b y c: " ) ;
scanf ( " %l f , %l f , %l f " , &a, &b, &c) ;
det = pow ( b, 2) - 4*a*c;
/ * Ver i f i camos que l a ecuaci n t enga r ai ces r eal es */
i f ( det >= 0)
{
x1=( - b + sqr t ( det ) ) / 2*a;
x2=( - b - sqr t ( det ) ) / 2*a;
pr i nt f ( "\ n La r ai ces son: %. 2l f , %. 2l f " , x1, x2) ;
}
el se
pr i nt f ( "\ nNo exi st en r ai ces r eal es. " ) ;
pr i nt f ( "\ n" ) ;
syst em( "pause" ) ;
}

Programa 4.2: ecuacion.c

Unidad 4.Estructuras de control

EjercicioB.Estructurasdecontrol
1. Realizaunapruebadeescritoriodelalgoritmoqueresuelveelproblema4.2que
acabamosdepresentar,considerandolaecuacin .
2. Enseguidaescribeycompilaelprogramaecuacion.c(programa4.2)enla
computadorayejectaloconlamismaecuacinparaverificarlosresultados.
3. Compartetuexperienciaenlabasededatos.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1.Estructurasdecontrol.


Unidad 4.Estructuras de control

4.1.3.Estructuraselectivamltiple(switchcase)
Lasestructurasselectivasmltiplespermitenescogerunodevarioscaminosposibles.Parala
estructuracondicionalmltipleseproponenlaspalabrasclaveSeleccionarcasoenpseudocdigo,
mismaqueseimplementaenlenguajeCutilizandolaspalabrasreservadasswitchcase.Esta
secuenciaseutilizacuandoexistenmltiplesposibilidadesparalaevaluacindeunaexpresin
matemtica(generalmenteunavariable),puesdeacuerdoalvalorquetomelaexpresinserel
conjuntodeinstruccionesqueseejecute.
Daclicaquparaobservarlasrepresentacionesdelaestructuraselectivamltiple.

REPRESENTACIONDEESTRUCTURAS:
Tabla4.6:Representacionesdelaestructuracondicionalmltiple
Pseudocdigo Lenguaje
Casospara<expresin>
caso<valor1>:
<instruccionesCaso1>
caso<valor2>:
<instruccionesCaso2>

otroscasos:
<instruccionesOtros>
Fin_Casos
switch (<expresin>)
{
case<valor1>:
<instrucciones1>;
break;
case<valor2>:
<instrucciones2>;
break;
default:
<instruccionesOtras>
}

Diagramadeflujo:

Unidad 4.Estructuras de control

Enestecasola<expresin>noesbooleanasinoaritmticaydetipoentero,ascadacaso
correspondeaunvalorquepuederesultardesuevaluacin.Deestaforma,elflujodecontrolque
siguelaejecucindeunainstruccinSeleccionarcasos(switchcase)eselsiguiente:seevala
la<expresin>ysielvalorcorrespondealvalordeuncaso,esdeciraun<valor
i
>,seejecutael
bloquede<instrucciones
i
>hastaencontrarelfinaldelainstruccin,queenelcasodeCest
representadoporlapalabrareservadabreak,terminandoahlaejecucindelainstruccin.Cuando
elvalornocorrespondeaningncasoseejecutaelbloquedeinstruccionescorrespondienteaotros
casos(default).Elconjuntodetodosloscasos,incluyendoeldefault,conformanelcuerpodela
estructuraSeleccionarcasos(switchcase).
VERELARCHIVOAccesible_OA1_U4_FPR(Anexoalfinaldeldocumento).
Alolargodeestetemahasestudiadolostrestiposdeestructurasselectivasypormediodelos
ejemplospresentadostehasdadocuentadelaimportanciayutilidaddeestasestructuras,sinlas
cualesseraimposibleconstruirprogramasqueimplicaranlatomadedecisiones.
Sinembargo,todavaexistenproblemasquerequierendeotrotipodeestructurasquepermitan
repetirunatareaunnmerodeterminadodeveces,lasiguienteseccinestdedicadaaestetema.

Unidad 4.Estructuras de control

EjercicioC.Estructurasdecontrol
1. Realizaunapruebadeescritoriodelalgoritmoqueresuelveelproblemapresentadoenel
subtema4.1.3.considerandoqueelvalordeentradaesiguala10.
2. Despusescribeycompilaelprogramacalificacion.cenlacomputadora;ejectaloconel
mismovalorparacompararelresultado.
3. Finalmente,reflexionasiesposibleresolverelproblemaplanteadoutilizandoestructuras
selectivassimplesodobleseingresatucomentarioenlabasededatos.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1.Estructurasdecontrol.

Actividad2.Estructurasselectivas
RealizaunprogramaenCqueresuelvaelproblemaqueteproporcionartuFacilitador(a).Utilizalas
estructurasselectivasqueconsideresnecesarias.
1. Analizaelproblemayrealizalasolucinenpseudocdigoodiagramadeflujo,gurdalocon
elnombreFPR_U4_A2_XXYZ,laextensindelarchivopuedesercualquieradelassiguientes,
dependiendodelprogramaquehayasdecididoutilizar:.doc,.ppt,.pdf,.jpg,.bmp,.gif,.vsd.
2. Realizaunapruebadeescritorioyposteriormente,sistahasidosatisfactoria,escribeel
programaenlenguajeC.
3. Compilayejecutaelprogramaparaverificarquefuncionacorrectamente.
o Encasodequeelcompiladorenveerrores,verificadndeestelerrorycorrigelo.
4. GurdaloconelnombreFPR_U4_A2_XXYZ.cyagregalossiguientesarchivosaunacarpeta
comprimidallamadaFPR_U4_A2_XXYZ.zip:
o Anlisisdelproblemayalgoritmoenpseudocdigoodiagramadeflujo
o Programafuente(.c)
o Archivoejecutable(.exe)
5. EnvalacarpetacomprimidaatuFacilitador(a)mediantelaSeccindetareas.
Nota:PuedesingresaralabasededatosEstructurasdecontrolparacompartirtusdudasopara
ayudararesolverlasdetuscompaeros(as).Recuerdaquesitienesalgunadificultadenelproceso
dedesarrollodetuprogramaalguiendelgrupotepodraayudararesolverla,opuedeserquet
sepaslasolucinalproblemadeotro(a)compaero(a).
Paraenviartudocumento:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenlaActividad2.Estructurasselectivas.

Unidad 4.Estructuras de control

4.2.Estructurasrepetitivas
Enlamayorpartedeldiseoo
implementacindelassolucionesquese
planteaaproblemasespecficosnos
encontramosconinstruccionesquedeben
ejecutarseunnmerodeterminadode
veces,sihacemosunanlisisms
profundodeestassituaciones,enla
mayorasdelasocasionesnos
encontramosquelasinstruccionessonlas
mismas,peroquelosdatosvaran,estose
haceposibleutilizandolasestructuras
repetitivas,generalmentellamadasciclos.

Existenvariasestructurasderepeticinimplementadasporlosdiferenteslenguajesde
programacin,todasconlamismaidea:repetirunconjuntodeinstrucciones,llamadascuerpodel
ciclo,lascualesdependendeunacondicin.Enlamayoradeloscicloselcuerposerepitesiemprey
cuandolacondicinsecumpla,sinembargo,tambinexisteunaestructurarepetitivaqueserepite
entantoquenosecumplelacondicin.
Enestaseccinslonosenfocaremosenlasprimerasquesonlasqueestndefinidasenellenguaje
Cyenlamayoradeloslenguajesestructuradosyorientadosaobjetosactuales.Cabemencionar
queacadaunadelasvecesqueserepiteelcicloseleconocecomoiteracin.
Cuandoseutilizanciclosdentrodeunprograma,tepuedesenfrentaradosposiblessituaciones:
o Queconozcasdesdeeldiseocuntasvecesdebenrepetirselasinstrucciones
(repeticindefinida).
o Queelnmerodevecesquesedebanrepetirlasinstruccionesdependadeunvalor
queseconocehastaelmomentodelaejecucindelciclo(repeticinindefinida).
Enelprimercasosenecesitarunavariablequefunjacomouncontador,enlacualseregistreel
nmerodeiteracionesquesevayanejecutando.Encambio,enlasrepeticionesindefinidas
generalmentesecontrolanmedianteinterruptoresobanderas,obien,convalorescentinela.

Unidad 4.Estructuras de control

4.2.1.EstructuraMientras(while)
LaestructurarepetitivaMientras,codificadaenlenguajeCconlapalabrareservadawhile,controla
lasrepeticionesapartirdeunacondicinqueseevalaaliniciodelciclo,deestamaneraencada
iteracinprimeroseevaluarlacondicinymientrasresulteverdaderaserepetirelciclo.Enla
siguientetablasemuestranlasrepresentacionesdelcicloMientras(while).

Tabla4.8:RepresentacionesdelaestructurarepetitivaMientras(while)
LamaneraenlaqueseejecutaunainstruccinMientras(while)eslasiguiente:
las<instrucciones>delcuerpodelcicloseejecutanmientrasla<condicin>esverdadera,cuando
estonosecumpleseterminaelciclo;deestaforma,silaprimeravezqueseevalalacondicinsta
esfalsa,elcuerpodelciclonoseejecutaniunasolavez.
Paraejemplificarcmoseconstruyeuncicloindefinidoutilizandounvalorcentinela,sepropone
elsiguienteproblema.
DESCRIPCIONDEPROBLEMA:
Serequiereunprogramaquecalculeelpromediodetemperaturasqueregistraunaciudad,las
temperaturasseintroducirnengradosFarenheitFynoseconocedeantemanoelnmerode
temperaturasqueelusuariointroducir.
Pararesolverelproblemaplanteadosepodrapedirelnmerodetemperaturasquesedesean
registrarparacalcularelpromedio,peroestoequivaleaunaestructuraderepeticindefinida,si
decidiramosdejarabiertoestedatohastaelmomentodelaejecucindelprograma,tendramos
queconstruirunacondicinquehagaqueelcicloserepitamientrasqueelusuariodeseaingresar
temperaturas.Perocmosepuederesolveresto?

Encasoscomosteseproponeutilizarunvalorcentinelaqueindiqueelfindelacapturadedatos.
Claramenteelvalorcentineladebeserseleccionadodetalformaquenoseconfundaconalgnvalor
deentradaaceptable,porejemplopodramosconsiderarquedadoqueexisteunlmitemnimode
temperaturasengradosFarenheit,asaber460F,elvalorcentinelaseracualquiernmeroinferiora
ste,esclaroquenoexisteunatemperaturamsbaja,sinembargoellmitemximoesdifcilde
definiryaqueenformaexperimentalseobtienenenloslaboratoriostemperaturasdemilesde
Unid
grados,m
suponequ
Paracalcu
temperat
temperat
Asqueen
enlavaria
queelusu
queseco
contador
ciclosedi
Loanterio
Inicio

c0, su

Imprimi

Leer tem

Mientras
cc+1
sumaF=

Imprimi
calcular

Leer tem
Fin Mien
promF

Imprimi

Fin
dad 4.E
mientrasquee
uelatempera
ularelprome
uras
urasqueseh
nestecasose
abletempF)y
uariointroduz
;po
mpareconla
pararegistra
ivideelresult
orseexpresa

umaF0
r "Ingrese la
mpF
s (tempF-4
sumaF+temp
r "Ingrese la
el promedio
mpF
ntras
sumaF/c
r El prome
Estruc
enunaexplos
aturaenelSo
dio,debemos
hayanledo,d
eusaruncic
yacumuland
zcaunnmer
rloqueantes
condicinys
relnmerod
tadodelasum
delasiguien
a primer tem
460)
pF
a siguiente te
o "
dio de las te
Al goritm
turas d
sinatmica
olalcanzalos
srealizarlasu
digamosn.Lo
cloquevayal
olasumaen
romenora4
sdeiniciarel
siesmayora
detemperatu
madelastem
temanera:
mperatura reg
emperatura e
mperaturas e
o 4.4.a: Promed
de con
sealcanzant
milmillones
umadetodas
ydividirla
oanteriorsee
eyendounaa
lavariablesu
460.Deestam
ciclosedebe
460seacum
urasquesele
mperaturasen
gistrada en gr
en grados Fa
espromF
dio temperaturas
ntrol
emperaturas
degrados(P
slas
asentreeln
expresaconl
aunalastem
umaF,estasa
manera,laco
epedirlaprim
muleenlasum
ean.Finalmen
ntreelvalord
rados Fahren
ahrenheit (un
- pseudocdigo
demillones
rez,1992,p
merototald
asiguientef
peraturas(al
ccionessere
ondicindet
meratempera
ma.Adems,
nte,cuandose
delcontador.
nheit:"
n nmero ma
degrados.Se
g.325).
de
rmula.
macenndola
epetirnhasta
rminoes:
atura,para
seutilizaru
eterminael
ayor a -460)

e
as
a
n
para
Unid

Enseguid
ciclo200
dad 4.E

asemuestra
0.

Estruc
unapruebad
turas d
deescritorio
de con
paralastemp
ntrol
peraturas75,,78,79yparaaconcluirel

Unidad 4.Estructuras de control

Tabla4.8:Pruebadeescritoriodelalgoritmo4.4

Unid
Enlatabla
iteracione
elestado
funcionam
paralacu
ciclo.
/ * Pr o
Des
usuar i
*/
#i ncl u
#i ncl u
#def i n
/ * Fun
mai n (
{ / *D
f l oat t
i nt c=
/ * Le
pr i nt f
gr ados
pr i nt f
scanf
/ * Cod
whi l e
{
/ * Se
c = c
/ * Se
sumaF=
/ * Se
pr i nt f
t er mi n
scanf
}
/ * Pr o
dad 4.E
a4.9sepued
es),encadau
delasvariab
mientodelcic
ualsedeterm

ogr ama: p
scr i pci n
i o i ngr es
ude<st di o
ude<st dl i
necent i ne
nci n Pr i
( )
Decl ar aci
t empF, pr o
=0;
ect ur a de
f ( " Pr ogr
s Fahr enh
f ( " \ n I n
( " %f " , &t
di f i caci
( t empF>=
r egi st r a
+ 1;
acumul a
=sumaF+t e
l ee l a s
f ( " \ n\ nI
nar i ngr e
( " %f " , &t
omedi o de
Estruc
eobservarc
unasevalidal
lesimplicada
cloMientrasy
inutilizarun
pr omTemp.
n: Cal cul
sa.
o. h>
i b. h>
el a - 460
i nci pal */

i n de ac
omF, suma
e l a pr i m
r ama que
hei t \ n\ n\
ngr ese l a
t empF)
n del ci
= cent i ne
a l a t emp
l a t empe
empF;
si gui ent e
I ngr ese l
ese un n
t empF) ;
e Temper a
turas d
moelmismo
lacondiciny
senlaexpres
yverificadoq
navariablepa
. c
l a el pr o
/
cumul ador
aF=0;
mer a t emp
cal cul a
\ n") ;
a pr i mer
i cl o */
el a) ;
per at ur a
er at ur a e
e t emper a
l a si gui e
mer o men
at ur as Fa
de con
oconjuntode
yelcicloterm
sinbooleana
quesifuncion
ararepresent
omedi o de
r es y con
per at ur a
el pr ome
t emper at
que se l
en l a sum
at ur a */
ent e t emp
nor a %d)
ahr enhei t
ntrol
einstruccione
minaslocuan
a.Unavezqu
a,elsiguient
tarelvalorce
e l as t em
nt ador es*
*/
edi o de t
t ur a r egi
l ey */
ma */
per at ur a
) : " , cen
t */
esserepitetr
ndostanos
uesehailustr
epasoeslac
entinelaquec
mper at ur a
*/
t emper at u
i st r ada: "
( si dese
nt i nel a) ;
resveces(3
sesatisfacepo
radoel
codificacin,
controlael
as que el
ur as en
" ) ;
ea
;

or
l
Unidad 4.Estructuras de control

pr omF=sumaF/ c;
pr i nt f ( " \ nPr omedi o de t emper at ur as Cel si us=%. 2f \ n" , pr omF) ;
syst em( " pause" ) ;
}

Programa 4.4: promTemp.c

Porltimo,enlasiguientefigurasemuestralaejecucindelprogramaconlosmismosdatosquese
utilizaronenlapruebadeescritorio.

Figura4.4:EjecucindelprogramapromTemp.c

Unidad 4.Estructuras de control

EjercicioD.Estructurasdecontrol

1.Realizaunapruebadeescritoriodelalgoritmoqueresuelveelproblema4.4queacabamosde
estudiar.Consideraquelosvaloresdeentradason80,100,250,y1000.
2.EscribeycompilaelprogramapromTemp.cenlacomputadora;ejectaloconlosmismosvalores
paracompararelresultado.
3.Finalmente,reflexionasiesposibleresolverelproblemaplanteadoutilizandoestructuras
Selectivaseingresatucomentarioenlabasededatos.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1.Estructurasdecontrol.

Unidad 4.Estructuras de control

4.2.2.EstructuraDesdemientras(for)
ElcicloDesdemientras,eninglsylenguajeC,for,evaluarunacondicinymientrasstasea
verdaderaseejecutarelconjuntodeinstruccionesdefinidasenelcuerpodelaestructura,
generalmentelasrepeticionessecontrolanporuncontador,yaquecomopartedesusintaxistiene
laopcindeinicializarunavariable(elcontador)eincrementarloodecrementarlo.Estetipode
estructuraesconvenienteutilizarlacuandoseconocedeantemanoelnmerodevecesquesedebe
repetirelciclo(ciclosdefinidos).
Lasrepresentacionesdeesteciclosemuestranacontinuacin:

Tabla4.8:RepresentacionesdelaestructurarepetitivaDesdemientras(for)
Enestecaso,primeroserealizala<inicializacin>quecorrespondealaasignacindelvalorinicialde
unavariable(elcontador),posteriormenteseevalala<condicin>siesverdaderaseejecutan
las<instrucciones>delcuerpodelcicloy,posteriormente,seincrementaodecrementaelcontador,
segnseaelcaso,paradespusvolverarepetirelciclo,exceptoporla<inicializacin>queslose
ejecutaunavez.
Sitecentrasenlarepresentacinendiagramadeflujodeesteciclo,podrsdartecuentaquese
parecealdiagramadelciclowhile,salvoporlainicializacinyelincremento(odecremento);de
hechosipartesdeldiagramadeflujoparalacodificacinpuedesutilizarunwhile.Deigualmanera,
unciclowhilesepuederepresentarconun
cicloforcuya<inicializacin>e<incremento/decremento>sonvacos,slosedefinelacondicin.
Conloanteriorsemuestralaequivalenciadelasdosestructuras.
Paraejemplificarlasrepresentaciones,codificacinyfuncionamientodeestaestructurasepresenta
elsiguienteproblemadesarrollado:
Problema4.5:Serequiereunprogramaquecalculeeltotaldelanminadelostrabajadoresdeuna
empresa.
Observalasolucindelproblema.

Unidad 4.Estructuras de control

SOLUCIONALPROBLEMA:
Elproblemaessimilaralquesepresentenlaseccinanterior,sedebeleerelpagodecada
trabajadoryrealizarlasumadecadaunodestos,paralocualsepuedeutilizarunacumulador.La
diferenciaesque,enestecaso,noseutilizarunvalorcentinelaparaterminarlalecturadelos
pagos,puessepreguntaralusuario,aliniciodelprograma,cuntostrabajadoreshay,aselnmero
deiteracionesquedardeterminadoantesdeiniciarelciclo.Deloanteriortenemosquesiel
nmerodeempleadosesnentonceselciclodeberepetirsenveces,paralocualseutilizarun
contadorcquedebetomarlosvalores1,2,,n,asqueelciclodeberepetirsesiemprequecn.En
cuantoalasumadelospagos,seutilizarunacumulador,alcualllamaremosnom,quese
inicializarencerodadoquesetratadeunasuma.
Inicio
Imprimir"Ingreseeltotaldeempleados:"

Leern

Desdec=1,nom=0,Mientras(c<=n),c=c+1

ImprimirIngresaelsalariodeltrabajador,c

Leersal

nom=nom+sal

Findesde

ImprimirLanminaapagaresentotal$,nom
Fin
Algoritmo4.5.b:Nminadiagramadeflujo
Unidad 4.Estructuras de control


Unidad 4.Estructuras de control

Enlasiguientetablasemuestralaejecucinpasoapasodelciclosuponiendoquesequierecalcular
lanminadetresempleadosyyasehaledoeldatoyregistradoenlavariablen,lacualnocambia
suvaloralolargodelaejecucindelciclo.
Porlotanto,lasalidadelalgoritmoes:Lanminaapagares$45.Lacodificacinyejecucindel
programaseralaquesemuestraenesteenlace.

TABLADEEJECUCION:


Unidad 4.Estructuras de control

CODIFICACIONDEENLACE:
La codificacin en lenguaje C del programa nomina.c es la siguiente:
/ * Pr ogr ama: nomi na. c
Descr i pci n: cal cul a l a nmi na a pagar de n t r abaj ador es
*/
/ *di r ect i vas de pr epr ocesador */
#i ncl ude<st di o. h>
#i ncl ude<st dl i b. h>
/ * Funci n Pr i nci pal */
mai n ( )
{
/ *Decl ar aci n de var i abl es */
i nt n, c;
f l oar nom, sal ;
/ * Lect ur a del nmer o de empl eados */
pr i nt f ( " Cal cul o de l a Nomi na\ n\ n " ) ;
pr i nt f ( " I ngr ese el t ot al de empl eados: " ) ;
scanf ( " %d" , &n) ;
/ *Ci cl o def i ni do de 1 hast a el nmer o de empl eados
i ngr esados*/
f or ( nom=0, c=1; c<=n; c=c+1)
{
pr i nt f ( I ngr esa el sal ar i o del t r abaj ador %d: " , c) ;
scanf ( " %f " , &sal ) ;
/ *Acumul ador de sal r i os*/
nom=nom+sal ;
}
pr i nt f ( \ n La nomi na a pagar es $&. 2f , nom) ;
}

Programa 4.5: nomina.c
La ejecucin del programa con los mismos datos de entrada que se utilizaron en la
prueba de escritorio es la siguiente:
Unidad 4.Estructuras de control


Figura 4.6: Ejecucin del programa nomina.c


Unidad 4.Estructuras de control

EjercicioE.Estructurasdecontrol
1. Realizaunapruebadeescritoriodelalgoritmoqueresuelvaelproblema4.5
presentadoenelsubtemaanteriorparacalcularlanminade4trabajadorescon
salariosigualesa:$2000.00,$5000.00,$3000.00y$1000.00.

2. Escribeycompilaelprogramanomina.cenlacomputadora;ejectaloconlos
mismosvaloresparacompararelresultado.
3. Finalmente,analizacmopodrasresolveresteproblemautilizandolaestructura
Mientras(while)eingresatuscomentariosalrespectoenlabasede
datosEstructurasdecontrol.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1:Estructurasdecontrol.

Unidad 4.Estructuras de control

4.2.3.EstructuraHacermientras(dowhile)
Adiferenciadelasestructurasrepetitivasenlasquelascondicionesseevalanalprincipiodelciclo,
porloquelasinstruccionesqueserepitenseejecutende0hastaNveces,enlaestructuraHacer
mientras(dowhile)laevaluacinsellevaacaboalfinal,estoimplicaqueelconjuntode
instruccionesqueserepiteseejecutaalmenosunavez.

Tabla4.9:RepresentacionesdelaestructurarepetitivaHacermientras(dowhile)
ObservaqueenelcdigoenC,lanicaestructuradecontrol,detodaslasquehemosvisto,que
tienepuntoycomadespusdelaexpresinocondicineseldowhile.

Porelfuncionamientodelaestructura,elcasotpicodelusodeldowhilesonlosmens.Para
ejemplificarloanteriorseproponeelsiguienteproblema.
PROBLEMA
Serequiereunprogramaqueimprimaunmenconlassiguientesopciones,elcualserepitaentantonose
eligelaopcinde(Salir).
a.Calcularlafuerza
b.Calcularlaaceleracin
c.Calcularlamasa
d.Salir
Adems,dependiendodelaopcinqueelijaelusuariosedeberrealizarlatareaindicadautilizandola
segundaleydeNewtonquedicta:Laaceleracinqueuncuerpoadquiereesdirectamenteproporcionalala
Unid
resultante
fuerza=m

Enesteca
mencor
correspon
frmulad
opcinse
represent
Unidad4.
Problema
Inicio

Hacer
Imprimir"
Imprimir"

Imprimir"

Imprimir"
Imprimir"

Imprimir"

Imprimir"
Leeropc

Seleccion
Caso1:Im

Leerm
dad 4.E
edelasfuerz
masa*aceler
aso,parareso
respondaau
ndientesylao
dada).Paraqu
adistintade
taciones.

.ESTRUCTUR
a4.6.
"RealizaClcu
"
"a.Fuerza."
"b.Aceleraci
"c.Masa."
"d.Salir."
"ElegirunaO
a(opc)
mprimir"Ingre
Estruc
asqueactan
racin
olverlaparte
uncaso,asla
operacinap
ueelmense
4(Salir).Dee
ASDECONTR
ulostrabajand

n."
Opcin:"
esaLamasa:
turas d
nenl,ytien
delmense
sinstruccione
ropiada(que
erepitasepla
estaformael
ROL
dola2a.Leyd
"

de con
nelamismad
utilizaruns
esqueloform
sedefinede
anteaunciclo
algoritmose
deNewton"

ntrol
direccinene
switchcase,e
mandebense
spejandolav
owhilequese
presentaac
elsentidoque
enelquecada
er:lalecturad
variableencu
eejecutemie
ontinuacine
eendichares
aopcindel
delosdatos
uestindela
entrasla
ensusdos

ultante
Unid
Imprimir
Leera
f=m*a

Imprimir
Caso2:Im

Leerf
Imprimir
Leerm

a=f/m
Imprimir
Caso3:Im
Leerf
Imprimir
Leera
m=f/a
Imprimir
Caso4:Im

Otro:Impr

Fin_Selec

Mientras
Fin
Algoritmo

dad 4.E
Ingresalaace
Fuerza=,f
mprimir"Ingre
Ingresalama
Aceleracin
mprimir"Ingre
Ingresalaace
Masa=,m
mprimir"Adio
rimir"Opcin
ciona
(opc!=4)Fin
o4.6.a:Segun

Estruc
eleracin:
esalafuerza:
sa:
=,a
esalafuerza:
eleracin:
os"
ninvlida"
ndaleydeNe
turas d
ewtonpseud
de con
docdigo
ntrol

Unid
Acontinu
dondevan
Eneldiag
noelijala
paravalid
Lacodifica

/ * Pr o
Des
acel er
*/
/ *di r e
#i ncl u
dad 4.E
acinsepres
nlasinstrucc
gramadeflujo
opcind,qu
darelalgoritm
acinenCse

gr ama: n
cr i pci n
r aci n, f u
ct i vas d
ude<st di o
Estruc
sentaeldiagr
ionesdelost
osepuedeob
uecorrespond
mo.
muestraald
newt on. c
n: Muest r
uer za o m
de pr epr o
o. h>
turas d
amadeflujo,
tresprimeros
bservarclaram
deasalir.Por
darclicenels
r a un men
masa, con
ocesador *
de con
,salvoquen
scasos,yadef
mentequeel
rloquenose
siguientebot
n par a c
nf or me a
/
ntrol
nicamentese
finidasenelp
cicloseejecu
requierehac
n:
cal cul ar
l a segun
hadejadoin
pseudocdigo
utarmientra
cerlaprueba
l a
nda l ey d
dicadoen
o.

aselusuario
deescritorio
de Newt on

n
Unidad 4.Estructuras de control

#i ncl ude<st dl i b. h>


#i ncl ude<coni o. h>
/ * Funci n Pr i nci pal */
mai n ( )
{
/ *Decl ar aci n de var i abl es*/
char opc;
f l oat f , m, a;

/ *Ci cl o par a r epet i r el men mi ent r as que l a opci n no sea
sal i r */
do
{ / *I mpr esi n del men*/
syst em( " cl s" ) ; / *I nst r ucci n par a bor r ar l a pant al l a*/
pr i nt f ( " \ n Real i za Cal cul os t r abaj ando l a 2a. Ley de
Newt on" ) ; pr i nt f ( " \ n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - " ) ; pr i nt f ( " \ n a. Fuer za. \ n b. Acel er aci on \ n c. Masa
\ n d. Sal i r " ) ;
pr i nt f ( " \ n El i ge una opci on: " ) ;
/ *I nst r ucci n que l ee una var i abl e de t i po
car ct er */ opc=get che( ) ;
/ *Est r uct ur a de Sel ecci n Ml t i pl e*/
swi t ch( opc)
{
case' a' : pr i nt f ( " \ n\ nI ngr esa l a masa: " ) ;
scanf ( " %f " , &m) ;
pr i nt f ( " \ nI ngr esa l a acel er aci on: " ) ;
scanf ( " %f " , &a) ;
f =m*a;
pr i nt f ( " \ nLa f uer za es %. 2f \ n\ n\ t " , f ) ;
syst em( " pause" ) ;
br eak;
case' b' : pr i nt f ( " \ n\ nI ngr esa l a f uer za: " ) ;
scanf ( " %f " , &f ) ;
pr i nt f ( " \ nI ngr esa l a masa: " ) ;
scanf ( " %f " , &m) ;
a=f / m;
pr i nt f ( " \ nLa acel er aci on es %. 2f \ n\ n\ t " , f ) ;
Unidad 4.Estructuras de control

syst em( " pause" ) ;


br eak;
case' c' : pr i nt f ( " \ n\ nI ngr esa l a f uer za: " ) ;
scanf ( " %f " , &f ) ;
pr i nt f ( " \ nI ngr esa l a acel er aci n: " ) ;
scanf ( " %f " , &m) ;
m=f / a;
pr i nt f ( " \ nLa masa es %. 2f \ n\ n\ t " , f ) ;
syst em( " pause" ) ;
br eak;
case' d' : pr i nt f ( " \ n\ nAdi os\ n" ) ;
syst em( " pause" ) ;
br eak;
br eak pr i nt f ( " \ n\ n Opci onI nval i da" ) ;
}/ *Fi n del a Sel ecci n Ml t i pl e*/
}whi l e ( opc! =' d' ) ;
}/ *Fi n*/

Programa 4.5: newton.c

Enlasiguientefigurasemuestralaejecucindeunaiteracindelciclo,enlacuallaopcinelegida
eslaprimera.
Unidad 4.Estructuras de control

Figura4.6:Ejecucindelprogramanewton.c

Observaquedentrodelcuerpodelciclosedefiniunaestructuraselectiva,esdecir,quelas
instruccionesdelcuerpodecualquierestructuracompuesta,searepetitivaoselectiva,puede
conteneraotras.Unodeloscasosmsutilizadoseselanidamientosdelosifs,delocual
hablaremosenlasiguienteseccin.Peroantesdedarporterminadaestaseccinrealizalasiguiente
actividad.

Unidad 4.Estructuras de control

EjercicioF.Estructurasdecontrol
1. Realizaunapruebadeescritoriodelalgoritmoqueresuelvaelproblema4.6presentadoen
estaseccinconsiderandolasopcionesquesemuestranenlaejecucindelprogramaenla
figura4.6,yconsiderandoquelasiguienteopcindelusuarioessalir.
2. Posteriormenteescribeycompilaelprogramanewton.cenlacomputadora;ejectalocon
losmismosvaloresparacompararelresultado.
3. Finalmente,reflexionasilasestructurasdecontrolrepetitivaspresentadasenestaunidad
sonequivalentes,esdecir,sicualquieradeellassepuederepresentarconlasotraseingresa
tusconclusioneslabasededatosEstructurasdecontrol.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1:Estructurasdecontrol.


Unidad 4.Estructuras de control

Actividad3.Estructurasrepetitivas
RealizaunprogramaenCqueresuelvaelproblemaqueteproporcionartuFacilitador(a).Utilizalas
estructurasrepetitivasqueconsideresnecesariaspararesolverlo.
1. Analizaelproblemayrealizalasolucinenpseudocdigoodiagramadeflujo,gurdalocon
elnombreFPR_U4_A3_XXYZ,recuerdaquelaextensindelarchivopuedesercualquierade
lassiguientes,dependiendodelprogramaquehayasdecididoutilizar:.doc,.ppt,.pdf,.jpg,
.bmp,.gif,.vsd.
2. Realizaunapruebadeescritorioyposteriormente,sistahasidosatisfactoria,escribeel
programaenlenguajeC.
3. Compilayejecutaelprogramaparaverificarquefuncionacorrectamente.
o Encasodequeelcompiladorenveerrores,verificadndeestelerrorycorrigelo.
4. GurdaloconelnombreFPR_U4_A3_XXYZ.c
5. AgregalossiguientesarchivosaunacarpetacomprimidallamadaFPR_U4_A3_XXYZ.zip:
Algoritmoenpseudocdigoodiagramadeflujo.
Programafuente(.c)
Archivoejecutable(.exe)
6. EnvalacarpetacomprimidaatuFacilitador(a)mediantelaSeccindetareas.

Nota:PuedesingresaralabasededatosEstructurasdecontrolparacompartirtusdudasopara
ayudararesolverlasdetuscompaeros(as).Recuerdaquesitienesalgunadificultadenelproceso
dedesarrollodetuprogramaalguiendelgrupotepuedaayudararesolverla,opuedeserquet
sepaslasolucinalproblemadeotro(a).
Paraenviartudocumento:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenlaActividad3.Estructurasrepetitivas.

Unidad 4.Estructuras de control

4.3.Estructurasanidadas
Lasestructurasdecontrolselectivasyrepetitivasseconsiderancompuestasyaqueseformana
partirdeotrasinstruccionesquesonlasqueseejecutarndeacuerdoaunacondicindada.Es
importanteremarcarquelasinstruccionesqueformanelcuerpodeunaestructurapuedenser
tambinestructurascompuestas,comosedemostrenlasolucindelltimoproblemavisto
(observaelprogramanewton.c),enelcualunswitchestdentrodeunwhile.Asqueesposible
anidarcualquiertipodeestructura,sinembargo,lomscomnesanidarinstruccionesif,puesse
utilizancuandosetienenvarioscasos,porejemplo,sirevisamosnuevamenteelproblema4.1,
dondesequieredeterminareltipodengulo,esmejorsolucinutilizarifanidadospararesolverlo
porqueasnoseevalancondicionesque,unavezquesehadefinidoeltipodengulo,son
innecesarias.
Parailustrarloanterior,acontinuacintemostramoselpseudocdigoparalasolucindelmismo
problemamediantelasestructurasanidadas.
Sirealizaslapruebadeescritorioconelnguloiguala90grados,podrsdartecuentaquea
diferenciadelaprimeraversindelalgoritmodondeseevalantodaslascondiciones,aquslose
evalanlastresprimeras,enlosdosprimerosSiesfalsayporlotantoseejecutanlasinstrucciones
delSinocorrespondiente,peroeneltercerSianidadolacondicinesverdaderayseimprimeeltipo
dengulo,posteriormenteseacabaelanidamiento.
ElprogramaenCylaejecucindelmismosemuestranaqu.

PSEUDOCODIGO:
Algoritmo4.7:Tipodengulo(versin2)pseudocdigo
Inicio
Imprimir"Ingreselamedidadelangulo(grados):"

Leerangulo
Siangulo0ORangulo360entonces
ImprimirNotieneclasificacin"
SinoSiangulo<90entonces
Imprimir"Elnguloesagudo"
SinoSiangulo=90entonces
Imprimir"Elanguloesrecto"
SinoSiangulo<180entonces
Unidad 4.Estructuras de control

ImprimirElanguloesobtuso"
SinoSiangulo=180entonces
Imprimir"Elanguloesllano"
Sino
ImprimirElanguloesconcavo"
Fin_SiSino

Fin_SiSino

Fin_SiSino

Fin_SiSino

Fin_SiSino
Fin

PROGRAMAYEJECUCION.
LacodificacinenCes:
main()
{
/*Declaracindevariables*/
intangulo;
/*Mensajedebienvenida*/
printf("\nEsteprogramadeterminadequetipoeselangulodado.");
/*Instruccin*/
printf("\n\nIngreselamedidadelangulo(grados):");
scanf("%d",&angulo);

if(angulo<=0||angulo>=360)
printf("\nNotieneclasificacin");
elseif(angulo<90)
printf("\nElanguloesagudo");
Unidad 4.Estructuras de control

elseif(angulo==90)
printf("\nElanguloesrecto");
elseif(angulo<180)
printf("\nElanguloesobtuso");
elseif(angulo==180)
printf("\nElanguloesllano");
else
printf("\nElanguloesconcavo");
printf("\n\n\t");
system("pause");
}

Programa4.7:tipoAngulo2.c
Laejecucinconelnguloiguala90gradossemuestraenlasiguientefigura:

Figura4.7:EjecucindelprogramatipoAngulo2.c

Unidad 4.Estructuras de control

EjercicioG.Estructurasdecontrol

1. Realizaunapruebadeescritoriodelalgoritmoqueresuelvaelproblema4.1,ensuversin
deifsanidados,presentadoenestaseccin(algoritmo4.7),considerandoqueelvalordel
nguloes90grados.
2. Posteriormenteescribe,compilayejecutaelprogramatipoAngulo2.c(programa4.7)enla
computadoraconelmismovalordelnguloparaverificarturesultado.
3. ComparteenlabasededatosEstructurasdecontroltusopinionessobreeltemade
estructurasanidadas,consideralosprosycontrasqueleencuentrasaestetipode
estructuras.
Paraingresaralaactividad:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.Se
enlistarnlasactividades,daclicenActividad1:Estructurasdecontrol.

Unidad 4.Estructuras de control

Autoevaluacin
IngresaalcuestionarioAutoevaluacin.Unidad4,ycontestacadaunadelaspreguntasquesete
plantean.Consideravolverarepasaralgunostemassitusrespuestascorrectassonmenosquelas
incorrectas.
Paraingresaralaautoevaluacin:Enlaruta(partesuperiorizquierdadelaula)daclic
enFundamentos.Seenlistarnlasactividades,daclicencuestionarioAutoevaluacin.


Unidad 4.Estructuras de control

Evidenciadeaprendizaje:Avancedesolucindelproblema
implementandolasestructurasdecontrol
Ahoraqueconoceslasestructurasdecontrol,esmomentoderetomareldesarrollodelprogramaen
CqueestamosrealizandocomopartedelaEvidenciadeAprendizaje,hastaelmomentoyadebes
contarconelanlisisdetuproblema.
Loquecorrespondeparaestaunidadesdarunaprimeraversindesolucindelproblemaque
utiliceestructurasselectivas,condicionalesyrepetitivas.Paraello,debesapoyarteentu
Facilitador(a)paradelimitarquparteoversindelproblemaresolvers.
Realizalosiguiente:
1. EnunarchivodeWord,describelaversindelproblemaqueresolversenestaunidad
considerandoque:
o Laversindelproblemaplanteadodebeinvolucrarelusodealmenosuna
estructuraselectiva(if,ifelseoswitch)yalmenosunaestructurarepetitiva(while,
dowhileofor).
o Debesindicarculessonlosdatosdeentradaylasalidaesperadaparaestaversin.
2. Enelmismodocumento,realizaelalgoritmoquetellevaalasolucindeestaprimera
versindelproblema,puedesrepresentarlomedianteundiagramadeflujoopseudocdigo,
segnprefieras.
3. GuardatutrabajoconelnombreFPR_U4_EA_XXYZ.docyenvalomedianteelPortafoliode
evidencias,esperaaquetuFacilitador(a)devuelvaloscomentariosatutrabajo,atiendelo
queseteindiqueyhazlosajustesnecesariosparamejorartuEvidencia.
4. Unavezqueelfacilitadorteenvesuscomentariosyteaseguresquetualgoritmoes
correcto,codifcaloenlenguajeCyguardatuprogramaconelnombreFPR_U4_EA_XXYZ.c.
Posteriormentecomplaloyejectalocondiferentesdatosdeentradaparavalidarque
funcionaadecuadamente.
5. Vuelveaenviartutrabajo(laversincorregida)peroahoraincluyetodolosiguienteenuna
carpetacomprimidallamadaFPR_U4_EA_XXYZ.zip:
o Algoritmoenpseudocdigoodiagramadeflujo.
o Programafuente(.c)
o Archivoejecutable(.exe)
Para conocer el plazo lmite para enviar la segunda versin de la Evidencia de
Aprendizaje (descripcin, algoritmo y programa en C) consulta a tu Facilitador(a).
Para conocer los lineamientos de evaluacin de esta evidencia, descarga el
siguiente documento.
Da clic en el icono para descargar la escala de evaluacin.
Unidad 4.Estructuras de control

Para enviar tu evidencia: En la ruta (parte superior izquierda del aula) da clic en
Fundamentos. Se enlistarn las actividades de la Unidad 4 y da clic en la Evidencia
de Aprendizaje: Avance de solucin del problema implementando las
estructuras de control.
Al terminar la Evidencia de aprendizaje de la Unidad 4, haz tu Autorreflexin. Para
ello,Ingresa al foro de Preguntas de Autorreflexin y a partir de las preguntas
presentadas por tu Facilitador(a), realiza tu ejercicio y sbelo en la seccin
Autorreflexiones.

Unidad 4.Estructuras de control

Cierredelaunidad
Conestodamosporterminadaestaunidad,ahorayaconocestodaslasestructurasyhasvistocmo
funcionanyqutipodesituacionessepuedemodelarconellas.Aunquecabedestacarquepara
solucionarcualquierproblemabastaconquesepasutilizarelciclowhileylaestructuraselectivaif
else,puesyasemencionquetodoslosciclossonequivalentesyconlaestructuraifelse,puedes
modelarunswitchcaseanidandoifs.
RecuerdaquedebespracticarmuchoparadominarcadaunodeloscomponentesdellenguajeC.No
dejesderepasarlostemasyderealizartuspropiosprogramas.
Adelante!

S-ar putea să vă placă și