Estructuras iterativas y ejemplos propuestos

17,923 views 38 slides May 27, 2014
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

No description available for this slideshow.


Slide Content

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
FACULTAD DE INGENIERÍA
COORDINACIÓN DE CIENCIAS BÁSICAS
ESTRUCTURAS DE CONTROL ITERATIVAS
M. en I. María de los Ángeles Contreras Flores
Mtra. Leticia Palma Rosales
Unidad de Aprendizaje: Programación Básica
Programa de Estudios: Ingeniería Mecánica
Agosto 2013

GUÍA EXPLICATIVA
Estematerialtienecomopropósitoapoyaralalumnoen
lacomprensiónyaplicacióndelasestructurasdecontrol
repetitivas:mientras,parayrepite;paralocual,primero
sepresentaunaexplicaciónteóricadecadaunadelas
estructuras,acompañadadesucorrespondiente
diagramadeflujo,supseudocódigoyfinalmentesu
codificaciónenlenguajedeprogramaciónC.
Asimismo,alconcluirlaexplicacióndecadaunadelas
estructuras,sepresentantresejemplosconelpropósito
deapoyaralalumnoenlacomprensiónyaplicaciónde
lasmismas.

OBJETIVO
Identificaryutilizartécnicasparalasoluciónde
problemasquepuedanseimplementadosenla
computadora,mediantelaformulaciónde
pseudocódigosydiagramasdeflujo,asícomosu
codificaciónenunlenguajedealtonivelempleandolas
estructurasrepetitivas:para,mientrasyrepite.

CONTENIDO TEMÁTICO
Introducción
Conceptos fundamentales
Conceptos básicos para crear estructuras repetitivas
Estructura repetitiva mientras.
Concepto
Diagrama de flujo, Pseudocódigo, Código
Características
Ejemplos Resueltos
Ejemplos Propuestos

CONTENIDO TEMÁTICO
Estructura repetitiva para.
Concepto
Diagrama de flujo, Pseudocódigo, Código
Características
Ejemplos Resueltos
Ejemplos Propuestos
Estructura repetitiva repite
Concepto
Diagrama de flujo, Pseudocódigo, Código
Características
Ejemplos Resueltos
Ejemplos Propuestos
Bibliografía

INTRODUCCIÓN
Comosevioenlasunidadesanteriores,lasestructuras
decontrolsonlasencargadasdeindicaralprogramaen
queordenseejecutanlasinstrucciones.
Enelsiguientediagrama,sepuedeapreciarla
clasificacióndelasestructurasdecontroldeacuerdoa
losprincipiosdelaprogramaciónestructurada.

Estructuras
de Control
Secuencial
Selectivas
Simple
Doble
Cascada
Múltiple
Iterativas
Mientras
Para
Repite
Fig.1.EstructurasdeControl

CONCEPTOSFUNDAMENTALES
¿Qué es una estructura repetitiva?
Lasestructurasrepetitivassurgendelanecesidadde
tenerqueresolverproblemasenloscualesuna
instrucciónounconjuntodeellasdebenejecutarsemás
deunavez.
Larepeticióndeestaacciónsellevaacabomientrasse
cumplaunacondición;paraquelaaccióntermine
internamentesedebedemodificarla(s)variable(s)de
controlqueintervienenenlacondición.

¿QUÉDEBOCONSIDERARPARACREARUNA
ESTRUCTURAREPETITIVA?
Primeronecesitassaberqueunbucleescualquier
construccióndeprogramaquerepiteunasentenciao
secuenciadesentenciasunnúmerodeveces.La
sentencia(ogrupodesentencias)queserepitenenun
bloquesedenominacuerpodelbucleocicloycada
repeticióndelbuclesedenominaiteracióndelbucle
[3]
.
Todoslosciclosdebenterminardespuésderepetirseun
númerofinitodeveces,paraelloserequiereunao
variascondicionesquesonevaluadasdespuésdecada
iteraciónydependiendodesuresultado,elciclose
detieneocontinuaejecutándose
[1]
.

Lacondiciónpuedeestarpredeterminada,comoesel
casodelaestructurapara,onoestarlo,comoenlas
estructurasmientrasyrepite.
Paracomprenderelfuncionamientodelasestructurasa
continuaciónveremoscomotrabajacadauna.
ESTRUCTURAS REPETITIVAS

CONCEPTOSBÁSICOSPARACREARESTRUCTURAS
REPETITIVAS
Cuandosecreaunaestructurarepetitivaesnecesario
tenerclarocomotrabajanlasvariablesquepermiten
controlarelbucle,yquesonconocidascomo:
Contadores,acumuladores,centinelasy
banderas.

CONTADORESYACUMULADORES
Sonpalabrasmuyutilizadasenprogramaciónyson
empleadasparareferirseavariablesqueincrementano
decrementansuvalordurantelaejecucióndeun
programa.
Generalmentesondetiponumérico.

CONTADORESYACUMULADORES
Ejemplos:
cont cont+ 1
total total+ y
a a*2
J J–1
x x+ 5
cont= cont+ 1;
total = total + 1;
a = a * 2;
J = J –1;
x = x + 5;
Pseudocódigo Código en C

CARACTERÍSTICASDELAVARIABLECONTADORO
ACUMULADOR:
1.Debeserinicializadaantesdelciclo.Lainicialización
consisteenasignarlealcontadoroacumuladorunvalor
deinicio.Siempresesitúaantesyfueradelbucle.
2.Dentrodelciclodebeapareceráambosladosdela
asignación
3.Debenserinicializadosadecuadamente,esdecir,sila
operaciónes:
Sumaoresta:generalmenteseasignacero,yaqueéste
eselelementoneutrodeambasoperaciones,
Multiplicación:seiniciacon1,siseasignaracero
entoncestodoloquesemultipliqueconestavariable
valdrácero.Sedeberecordarqueel1eselelemento
neutrodelamultiplicación.

CARACTERÍSTICASDELAVARIABLECONTADORO
ACUMULADOR:
Esunavariablequedeterminaocontrolaelnúmerode
vecesqueserepiteunprocesoobucle.Estavariable
incrementaodecrementasuvalorenunacantidad
constantecadavezqueserealizaunaacciónencada
repetición.
Sedeberealizarunaoperacióndeinicializacióny
posteriormenteelincrementoodecrementodelmismo.
Lainicializaciónconsisteenasignaralcontadorunvalor
deinicio.
Sesitúaantesyfueradelbucle.
[1]

CONTADOR
nom_contnom_cont+
valor_constante
nom_contnom_cont-
valor_constante
Ejemplo:
entero contador 1
contador contador+ 1
nom_cont= nom_cont+
valor_constante;
nom_cont= nom_cont-
valor_constante;
Ejemplo:
intcontador = 1;
contador ++;
Pseudocódigo Código en C

ACUMULADOROTOTALIZADOR
Esunavariablequeacumulasobresímismaunconjunto
devaloresparadeestaformatenerlaacumulaciónde
ellosenunasolavariable.Esunavariablequealmacena
cantidadesresultantesdeoperacionessucesivas.

ACUMULADOROTOTALIZADOR
nom_acumulador
nom_acumulador+ valor
Ejemplo:
entero acum 0
acumacum+ valor
nom_acumulador=
nom_acumulador+ valor
intacum= 0;
acum= acum+ valor;
o bien:
acum+= valor;
Pseudocódigo Código en C

CENTINELA
Elcentinelaesunavariablequeiniciaconunvalor,luego
dentrodeunbucleestevalorcambia,haciendofalsala
condicióndelcicloyporlotantoterminandola
ejecucióndelmismo(elusuariopuededeterminar
cuándohacerlo).Larepeticióncontroladaporcentinela
seconsideracomounarepeticiónindefinidapuesse
desconoceelnúmeroderepeticiones.
Ejemplo:
UnusuariopuedeintroducirSoNparaindicarsidesea
continuarejecutandounprograma.Elbucletermina
cuandosepresionalaletra“n”o“N”.Tambiénsepueden
manejarnúmeros.

BANDERA
enterobandera 0
ban 1
intbandera = 0;
ban= 1;
Pseudocódigo Código en C
Unabandera(flag,interruptoromarca)esunavariable
quesólopuedetomardosvaloresopuestos,generalmente:
1(verdadero)o0(falso),durantelaejecucióndelalgoritmo
oprograma.Esmuyutilizadoenbúsquedas.

ESTRUCTURAREPETITIVAMIENTRAS(WHILE)
Cuandoseejecutalainstrucciónmientras,seevalúala
condición(expresiónbooleana)escritaenlosparéntesis,sisu
resultadoesverdadero(1)entoncesserealizaelciclo,
posteriormente,estacondiciónvueleaserreevaluadayse
procededelamismamanera,esteprocesocontinuahasta
quelacondiciónsevuelvefalsa(0),dandoporterminadoel
ciclo.
Silacondiciónnosevuelvefalsa,entonceselciclonunca
termina,teniendodeestaformauncicloinfinito.
Enestaestructuranoesnecesarioconocerelnúmerode
vecesqueserepiteelciclo,yaqueestodependedela
condicióndefinida.
[1]

ESTRUCTURAREPETITIVAMIENTRAS(WHILE)
Condición
V
F
Fig.2.Diagramadeflujodelaestructurarepetitiva
mientras
Acción

PSEUDOCÓDIGOYCÓDIGODELAESTRUCTURA
REPETITIVAMIENTRAS
mientras (condición)
inicio
instrucción 1
instrucción 2

instrucción n
fin
while (condición)
{
instrucción 1
instrucción 2

instrucción n
}
Pseudocódigo oCódigo en C
Dondecondiciónescualquierexpresiónnumérica,relacionalológica.

CARACTERÍSTICAS:
Lacondiciónseevalúaantesdelciclo.Silacondiciónes
verdaderaelbucleseejecuta,siesfalsaentoncessesale
yelcontrolpasaalasiguienteinstrucciónfueradelciclo.
Silacondiciónfuerafalsacuandoserevisaporprimera
vez,entonceselbuclenoseejecutanunca.
Mientraslacondiciónseaverdaderaelconjuntode
instruccionesseejecutaindefinidamenteamenosque
existaunainstrucciónquemodifiqueelvalordela
condición.

EJERCICIOS:
oElaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,quepermitaimprimir
los10primerosnúmerosenterospositivos.
oElaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,queimprimalos
múltiplosde5queseencuentrende0a150.
oElaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,quesumeunconjunto
denúmerosenterosmientrasquelasumaseamenoro
iguala100.Alfinalimprimirelresultado.

EJERCICIOS
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,quecalculeyvisualice
1!+2!+3!+…+(n-1)!+n!dondenesundatodadoporel
usuario
[4]
.
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,quecalculelasumadela
serie1/1+1/2+…+1/n,dondenesunnúmeroenteroque
sedeterminaconlacondicióndeque1/nseamenor
queunvalorprefijado(porejemplo1*10
-6
)
[4]
.
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,quecalculelasumadela
serie1/2-2/2
2
+3/2
3
…+n/2
n
paraunvalordadoden
[4]
.

ESTRUCTURAREPETITIVAPARA(FOR)
Laestructurarepetitivapara(for)eslamásutilizaday
sencillademanejar,consisteenrepetirunconjuntode
instruccionesunnúmerodeterminadodeveces.
[2]
Unadesusaplicacionesprincipalessetieneenlos
arreglos.

ESTRUCTURAREPETITIVAPARA(FOR)
F
Fig.3.Diagramadeflujodelaestructurarepetitivapara
Instrucción 1
Instrucción n
V
i vi,
i vf,
inci

PSEUDOCÓDIGOYCÓDIGODELAESTRUCTURA
REPETITIVAPARA
para (valor_inicial, cond, inc)
inicio
instrucción 1
instrucción 2

instrucción n
fin
for(valor_inicial; cond;inc)
{
instrucción 1
instrucción 2

instrucción n
}
Pseudocódigo oCódigo en C
Donde:
valor_inicialeselvalorqueseutilizaparainiciallavariabledecontroldel
bucle.
cond,eslaexpresiónquedeterminacuandoterminaelcicloobucle.
inc,definecomocambialavariabledecontrolcadavezqueserepiteelciclo.

CARACTERÍSTICASDELAESTRUCTURAREPETITIVAPARA
1.Sedebeconoceranticipadamenteelvalordela
variableinicialyfinalantesdeentraralciclo.
2.Lacondiciónseevalúaantesdelbloquede
instrucciones.Siesverdaderaseejecuta,siesfalsase
saleypasaelcontrolalbloquesiguiente.
3.Elincrementoodecrementodelavariabledecontrol
esautomáticoynosehacedentrodelciclo
4.Lavariabledecontrolseincrementaodecrementa
segúnserequiera.
5.Seutilizainicio-fin({})sólocuandohaymásdeuna
instruccióndentrodelciclo

EJERCICIOS:
oElaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,queimprimaenla
pantallalosprimeros10númerosenterospositivos.
oElaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,quecalculela
sumatoriadetodoslosnúmerosentre1yel20,e
imprimaelresultado.
oElaboreunpseudocódigoyelcorrespondiente
programaenC,quecalculelasumatoriadetodoslos
númerosentre1yunnúmeroleídoporelusuario(num)
eimprimaelresultado.

EJERCICIOS:
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,quepermitaleerunalista
decalificacionesyquecalculesupromedio,elnúmero
deaprobadosyreprobados;elprogramaterminará
cuandoseintroduzcaunnúmeronegativo.
[1]
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,quecalculeelfactorialde
unnúmero.
[1]
Elaboreundiagramadeflujoconsucorrespondiente
pseudocódigoycódigoenC,queimprimadeforma
inversalosnúmerosdel100al1.
[1]

ESTRUCTURAREPETITIVAREPITE(DO-WHILE)
Estaestructurapermiterepetirunaacciónmientrasla
condiciónesverdadera;cuandoesfalsasesaledelciclo.
Lacondiciónesrevisadadespuésdequeelcuerpodel
bucleesejecutado.
Seutilizacuandoserequierequeelcicloseejecutepor
lomenosunavez.
Laestructurarepiteyelmientraspuedenserutilizados
cuandonoseconocedeantemanocuantasveceshade
serrepetidoelciclo.

ESTRUCTURAREPETITIVAREPITE(DO-WHILE)
Instrucción 1
Instrucción 2

Instrucción n
V
Condición
F

CARACTERÍSTICASDELAESTRUCTURAREPITE
1.Elciclosiempreseejecutaporlomenosunavez
debidoaquelacondiciónseencuentradespuésdel
ciclo.
2.Debeexistirunainstruccióndentrodelcicloque
modifiquelacondición,delocontrarioseharáun
bucleinfinito.
3.Silacondiciónesverdaderaseejecutanuevamenteel
ciclo,sevuelvearevisarlacondiciónycuandoéstaes
falsasesaledelbucle.
4.Siexistemásdeunainstruccióndentrodelbucle,se
debenusarllaves({})paraindicarelinicioyfindel
bucle.

EJEMPLOS:
Elaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,queimprimaenlapantalla
losprimeros10númerosenterospositivos.
Elaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,queimprimaysumelos
númerosparesentre1y50,imprimirelresultadodelas
sumatoria.
Elaboreundiagramadeflujo,unpseudocódigoyel
correspondienteprogramaenC,quecalculelasumatoriade
unconjuntodenúmerosmientrasqueelnúmeroquese
captureencadacicloseadiferentede0,alfinalimprimirel
resultado.

EJERCICIOS:
Elaboreunbuclequelepermitaimprimirlasletras
minúsculasdelalfabeto.
Escribirunprogramaquevisualiceelfactorialdeun
númerocomprendidoentre2y20.

BIBLIOGRAFÍA
1.CoronaNakamuraA.yAnconaValdezMaríadelos
Ángeles.(2011),DiseñodeAlgoritmosysuCodificación
enLenguajeC.1ª.edición.México.McGrawHill
2.CairóBattistutiO.(2006),Fundamentosde
Programación,PiensaenC,Pearson
3.JoyánesAguilarLyZahoneroMartínezI.(2003),
ProgramaciónOrientadaaObjetos.2ª.Edición.
Madrid.McGrawHill
4.JoyánesAguilarLyZahoneroMartínezI.(2010),
ProgramaciónenC,C++,JavayUML.1ª.Edición.
México.McGrawHill
Tags