You are on page 1of 9

Algoritmos:componentes

Todoalgoritmosepuedeconstruirconslo3componentesestructurales: Secuencia :grupodeaccionesqueseejecutanunatrasotra. Seleccin :seleccionauncaminoentrevariossegnelvalordecondicin.Sitomaelvalor cierto serealizaunaaccin(ogrupo deacciones)perositomaelvalor falso serealizaotraonosehacenada. Repeticin :repiteunconjuntodeaccionesciertonmerodeveces. Enunalgoritmoconcretopuedehaberuno,dosolostrescomponentes. SECUENCIA DE ACCIONES
desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf agregar el caf molido al contenedor enroscar la cafetera poner la cafetera al fuego hasta que salga el caf ...

Ejemplosdeseleccin
Sepodraconsiderarlasituacinenquenohaycafmolidoantesdeponerelcaf. Quhacerenestecaso?
si ( est vaco el bote de caf molido ) moler caf fin si

Estorespondealesquema
si ( CONDICIN ) accin a realizar si CONDICIN es cierta fin si

Estoseagregaalalgoritmoantesdelalnea'agregarelcafmolido...'yquedaraas
desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si ( est vaco el bote de caf molido ) moler caf fin si agregar el caf molido al contenedor enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

QuesunaCONDICIN?Lapodemosvercomounapreguntaalaquehayqueresponderenelmomentoexactoenquesellegaa ellamientrasseejecutaelalgoritmoycuyasrespuestaspuedenser(SI,VERDADERO...)o(NO,FALSOetc). EllgebradeBoolseconstruyesobreunconjuntoqueslotienedosvaloresquesepuedenrepresentaras Elvalorfalso:0,FALSE,FALSO,NO... Elvalorcierto:1,TRUE,CIERTO,SI... CONDICIN:expresinquealevaluarlaproduceVERDADEROoFALSO.

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

Otrasituacin:considerarlacantidaddecafsegnelgusto.
si ( quiero el caf cargado ) agregar 4 cucharaditas de caf si no agregar 2 cucharaditas fin si

Estorespondealesquema
si ( CONDICIN ) accin a realizar si CONDICIN es cierta si no accin a realizar si CONDICIN es falsa fin si

EstoseagregaENLUGARDELALNEA agregar caf molido... yquedaas


desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si ( est vaco el bote de caf molido ) moler caf fin si { lnea anulada agregar el caf molido al contenedor} si ( quiero el caf cargado ) agregar 4 cucharaditas de caf si no agregar 2 cucharaditas fin si enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

Ejercicios
1. EscribirunejemplodelprimertipoSI..FINSI 2. EscribirunejemplodelsegundotipoSI..SINO..FINSI

Contar
Enmuchasocasionesnecesitamoscontar.Cmocontamos? Laspersonaspodemosusarmtodossonoros,grficosuotrosparacontar: contardevivavozdiciendouno,dos,tres...porcadacosaquesecuenta podemoshacerunarayaconunlpizporcadacosa Unaformaunpocoraradecontar(perovlida)sera usarunacalculadora

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

ponerunceroinicial porcadacosaacontarsumar1. Enesteejemplousamoslamemoriaquealmacenaloquehayenlapantallaparacontarlascosasquenosinteresan. Recordemosquelosordenadoressonmuybuenosmanejandonmerosyhaciendooperacionesaritmticas.Paraellosesmsfcil esteltimomtodoquecualquieradelosdosprimeros:elqueutilizasonidosoelqueutilizagrficos. Laformaderepresentaresamaneradecontarseraesta Paraponerel valor inicial (0)enlacalculadora
calculadora <-- 0

Parasumar1aloquehayenpantalla
calculadora <-- calculadora + 1

Para contar hasta cinco sepodrahaceras


calculadora calculadora calculadora calculadora calculadora calculadora <-<-<-<-<-<-0 calculadora calculadora calculadora calculadora calculadora + + + + + 1 1 1 1 1

otambinas
calculadora calculadora calculadora calculadora calculadora <-<-<-<-<-1 calculadora calculadora calculadora calculadora + + + + 1 1 1 1

Observe:Paracontar5cosaspodemoshacertrescuentasequivalentes Contardesdeel1hastael5 Contardesdeel5hastael1 ContardesdeelenteroXhastaelenteroX+5

Ejercicios
Siunainstruccinserepitenvecespngalalaprimeravez,laltimayentremediopuntossuspensivosas
calculadora <-- calculadora + 1 ... calculadora <-- calculadora + 1 {vez 1} {veces 2 a 99} {vez 100}

Escribirelseudocdigoquecuentadesde1hasta100de2en2 Escribirelseudocdigoquecuentadesde100hastacerode1en1 Comopodemoscontardesde40hasta60de1en1? Envezdeusarlospuntossuspensivosparaindicarlasinstruccionesqueserepitensepuedeexpresarasparacontardesde1hasta 100de2en2.


calculadora <-- 1 mientras (calculadora < 100) calculadora <-- calculadora + 2

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

fin mientras

Assepodracontardesde100hasta1deunoenuno.
calculadora <-- 100 mientras (calculadora > 0) calculadora <-- calculadora - 1 fin mientras

Assepodracontardesde40hasta60deunoenuno.
calculadora <-- 40 mientras (calculadora < 60) calculadora <-- calculadora + 1 fin mientras

Ejemplosderepeticin
VolviendoalalgoritmodelcafCmodescribiramoslaoperacindeagregarcuatrocucharadasdecafparahacerlocargado?
ctaCucharadas <-- 0 mientras (ctaCucharadas < 4) poner una cucharada de caf ctaCucharadas <-- ctaCucharadas + 1 fin mientras

otambinas
ctaCucharadas <-- 1 mientras (ctaCucharadas <= 4) poner una cucharada de caf ctaCucharadas <-- ctaCucharadas + 1 fin mientras

En ctaCucharadas se anotan las cucharadas PUESTAS. Por eso, por cada cucharada que se pone se incrementa en uno el valor anotado. Tambinsepodrahaceras
ctaCucharadas <-- 4 mientras (ctaCucharadas > 0) poner una cucharada de caf ctaCucharadas <-- ctaCucharadas - 1 fin mientras

AhoractaCucharadasanotalascucharadaspendientesdeponer,poreso,porcadaunaqueseagregaseresta1alasquefaltan.Por esohubierasidomsclaroas
faltan Cucharadas <-- 4 mientras (faltanCucharadas > 0) poner una cucharada de caf faltanCucharadas <-- faltanCucharadas - 1 fin mientras

Elesquemaquesiguenlostresejemploses
poner el valor inicial mientras (CONDICIN) accin a realizar si CONDICIN ES CIERTA contar uno ms (sumando o restando segn proceda) fin mientras

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

Alfinal,elalgoritmopodraquedaras
desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si (est vaco el bote del caf molido) Moler caf fin si si (quiero el caf cargado) ctaCucharadas <-- 0 mientras ctaCucharadas < 4 poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras si no ctaCucharadas <-- 0 mientras ctaCucharadas < 2 poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras fin si enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

Recapitulando
Quhemosaprendido? Todoalgoritmoserepresentamediantefrasesosentencias Cadafraseosentenciarepresentaunaaccinquetendrquerealizarelprocesadordelalgoritmo. Lasfrasesosentenciasslosepuedenagrupardetresformas:secuencia,seleccineiteracin

Lasecuenciaslotieneunformato:sentencia,sentencia,sentencia... LaseleccinpuedeserSI..FINSI,obienSI..SINO..FINSI

Laiteracintiene(porahora)unformato:MIENTRAS..FINMIENTRAS Noshamostradoalgomselejemplo?

SI!!!
Paracomprenderloveamoscmolohemosresuelto. Hemosempezadoporaqu
{1 etapa/refinamiento} desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf agregar el caf molido al contenedor enroscar la cafetera poner la cafetera al fuego hasta que salga el caf ...

Despus hemos considerado que si no hay caf molido no se puede agregar el caf y hemos llegado a esto otro agregando que antes no se haba contemplado . Por eso se dice que esta segunda etapa en el desarrollo del algoritmo es un refinamiento con respectoalaetapaanterior.
{2 etapa/refinamiento}

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si ( est vaco el bote de caf molido ) moler caf fin si agregar el caf molido al contenedor enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

Despus hemos consideradoquepodramosnecesitar cafcargadooligero (en vezdeponer siemprela misma cantidad decaf). Llegamos a esta tercera etapa en la resolucin del algoritmo(un nuevo refinamiento )que considera algo que antes no estaba contemplado
{3 etapa/refinamiento} desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si ( est vaco el bote de caf molido ) moler caf fin si { lnea anulada agregar el caf molido al contenedor} si ( quiero el caf cargado ) agregar 4 cucharaditas de caf si no agregar 2 cucharaditas fin si enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

Finalmente,enlacuartaetapadeldesarrollodelalgoritmohemosqueridoprecisarenquconsisteesodeagregarncucharadasde caf.Estavez, no hay nada nuevo peroloquehabalo expresamos con ms detalle .Tambinestoesotro refinamiento .
desenroscar los dos cuerpos de la cafetera extraer el contenedor del caf de la parte inferior agregar agua hasta la vlvula al cuerpo inferior poner el contenedor de caf si (est vaco el bote del caf molido) Moler caf fin si si (quiero el caf cargado) ctaCucharadas <-- 0 mientras ctaCucharadas < 4 poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras si no ctaCucharadas <-- 0 mientras ctaCucharadas < 2 poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras fin si enroscar la cafetera poner la cafetera al fuego hasta que salga el caf

Resumiendo Lasolucindelalgoritmohaseguidounaprogresinporetapas Laprimeraetapaplanteaunasolucinmuygeneral,peromuyimprecisa. Cadanuevaetapa,sedicequeesunrefinamientodelaanteriorporquerepresenta


agregarcosasnoconsideradasexplcitamenteantesobien

describirlascosasantesvistasconmayordetalle Estaformadeprogresarporetapasquecadavezconsideranexplcitamentemscosasycadavezconmsdetallesellama diseo descendente por refinamientos sucesivos usando recursos abstractos . Quesunrecursoabstracto? Considerelasentencia
agregar el caf molido al contenedor

Sedicedeunaexpresincomoestaqueesunrecursoabstractopordosrazones. Dice lo que se debe hacer pero no cmo se debe hacer. No considera todas las posibilidades que pueden presentarse o no las describecondetalle. Sin embargo, en cuanto se le aaden los detalles precisos se convierte en un verdadero algoritmo (recordemos que el algoritmo

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

requiereprecisinyconsiderartodaslasposibilidades). Portanto,lejosdeserintil,elrecursoabstractonossirvedegranayudaporque da un punto de partida queconsucesivosrefinamientosllevaalasolucin evita considerar desde la primera etapa TODA la complejidad delalgoritmoloqueharaintratableslamayoradelosproblemas.

algoritmo para construir algoritmos


1. Construya una primera solucin muy general que use recursos abstractos . 2. Haga evolucionar por etapas esa solucin 1. agregando cosas nocontempladasexplcitamente,obien 2. expresando con ms detalle loqueyasehacontempladoantes 3. Hastadondedebeprogresareldesarrollodecadarecursoabstracto? 1. SielalgoritmoseestescribiendoenellenguajedeordenadorX,hastaquecadainstruccindelalgoritmosepuedaexpresar entrminosdeunasentenciadellenguajeX.

Ejercicios
Un edificio rectangular tiene en su lado mayor una acera que se recorre en 100 pasos. Representar el recorrido de la acera sabiendoqueestamosenunodesusextremos. verelcdigo ocultarelcdigo

Representar un recorrido por el permetro de ese edificio rectangular suponiendo que el lado menor tiene 50 pasos y que se comienzaenelcentrodelladomayor. verelcdigo ocultarelcdigo

Representar un recorrido por el permetro de cualquier edificio rectangular cuyas medidas en pasos se piden al ejecutarse. El recorridosiempreempiezaenunaesquina. Observacionesalosejercicios Posicininicial

verelcdigo

ocultarelcdigo

dicenRepresentarunrecorrido... nodicendondeestamosahora portanto,esvlidosuponerqueestamosenelpuntoinicial Direccindelrecorrido El enunciado no indica si el recorrido se ha de hacer en el sentido de las agujas del reloj o al contrario. El sentido comn tampoco.

Portanto,estanrazonablegirarhacialaizquierdacomohacialaderecha. Sitienesuna duda deinterpretacin EnlaUniversidad, pregunta a tu profesor

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

Cuandoseasinformtico, pregunta a tu cliente .

Tresformasderepetir
Haytresformasdeexpresarlarepeticin: mientras , repetir y desde

Mientras
Estaeslaquehemosvisto,secaracterizaporponerlaCONDICINALPRINCIPIO.Enconsecuencia:sialprincipiolacondicines falsa,nuncaseejecutarnlasaccionesquehaydentrodemientras.
ctaCucharadas <-- 0 mientras(ctaCucharadas < 4) {la condicin al principio} poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras

Repetir
PoneLACONDICINALFINAL.Lasinstrucciones/accionesseejecutanSIEMPREunavezporlomenos.
ctaCucharadas <-- 0 repetir poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 hasta que (ctaCucharadas = 4) { condicin al final }

Enestosdoscasosesnecesarioqueunaaccinpongaelcontadordecucharadasconelvalorinicial0

Desde...hasta
Ahoraserepresentadeunaformamssinttica
desde ctaCucharadas <-- 1 hasta 4 poner una cucharada fin desde

Estecdigoesequivalenteaesteotro
ctaCucharadas <-- 1 mientras (ctaCucharadas <= 4) poner una cucharada ctaCucharadas <-- ctaCucharadas + 1 fin mientras

Estastresformasdecontrolarlarepeticintienen unascaractersticasqueladefinen uncontextoquelashacemsapropiadas


Siemprequehayaquerepetirusaremosunadeestasconstrucciones Habrqueelegircualdelastressegnelcontexto.

Variables
Hastaaquhemosutilizadoexpresionescomocalculadora,ctaCucharadas,pasosDados,ladoMayor,LadoMenorparareferirnosauna memoriaquecontieneundato. Elnombrequelehemosdadoaesasmemoriasreflejasucontenido.Enadelante,vamos

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

VARIABLE:memoria,conunnombrequereflejasucontenido.

http://arca.tic.udc.es/y/01Algor/03estructuras.htm

You might also like