Professional Documents
Culture Documents
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
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
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
otambinas
calculadora calculadora calculadora calculadora calculadora <-<-<-<-<-1 calculadora calculadora calculadora calculadora + + + + 1 1 1 1
Ejercicios
Siunainstruccinserepitenvecespngalalaprimeravez,laltimayentremediopuntossuspensivosas
calculadora <-- calculadora + 1 ... calculadora <-- calculadora + 1 {vez 1} {veces 2 a 99} {vez 100}
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
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.
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.
http://arca.tic.udc.es/y/01Algor/03estructuras.htm
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
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