Está en la página 1de 90

Lic.DiegoRealpeBorja Facilitadores: Lic.DiegoRealpe 2007.

ndice
Presentacin.................................................................................................................. 1 ObjetivosdelModulo ................................................................................................ 2 ObjetivosGenerales............................................................................................... 2 ObjetivosEspecficos............................................................................................. 2 MetodologadeTrabajoyEvaluacin....................................................................... 3 IntroduccinalosAlgoritmos.................................................................................... 4 1.1. Fundamentos.............................................................................................. 4 1.2. Metodologaparalasolucindeproblemaspormediodelacomputadora .. 5 1.3. TiposdeAlgoritmos................................................................................... 6 AlgoritmosCualitativos: .................................................................................... 7 AlgoritmosCuantitativos: ................................................................................ 12 1.4. Tcnicasparalaformulacindealgoritmos .............................................. 14 Pseudocdigo .................................................................................................. 14 DiagramadeFlujo........................................................................................... 14 RecomendacionesparaeldiseodeDiagramasdeFlujo................................... 14 1.5 EjerciciosPrcticos .................................................................................. 17 EstructurasAlgortmicas ......................................................................................... 18 2.1. Variables,ConstantesyOperadores ......................................................... 18 Cabecera.......................................................................................................... 18 Seccindeidentificacindevariablesyconstantes ........................................... 19 2.1. TiposdeDatos....................................................................................... 21 DatosNumricos ............................................................................................. 22 DatosLgicos ................................................................................................. 22 DatosdeCarcter ............................................................................................ 22 DatosdeCadena(String)................................................................................. 22 2.3. Operadores .............................................................................................. 23 EjerciciosPrcticos.......................................................................................... 29 SentenciasdeControl.............................................................................................. 30 3.1. SentenciasdeControl............................................................................... 30 3.2. SentenciasSecuenciales............................................................................ 31 Asignacin....................................................................................................... 31 EjerciciosResueltos......................................................................................... 33 EjerciciosPropuestos....................................................................................... 36 3.3. SentenciasdeDecisionoCondicionales................................................... 37 EstructuradeSeleccinSimpleSI.................................................................... 37 EstructuradeSeleccinDobleSISINO......................................................... 40 3.4. SentenciasdeSeleccinAnidadasSI ........................................................ 42 EstructuradeSeleccinMltiple...................................................................... 43 EjerciciosResueltos......................................................................................... 45 EjerciciosPropuestos....................................................................................... 50 3.5. SentenciasdeBuclesoLazosRepetitivos................................................. 54 SentenciaPara/Desde/Hasta/Haga............................................................ 55 EjerciciosResueltos......................................................................................... 57

EjerciciosPropuestos....................................................................................... 61 3.6. SentenciaMientrasHacer......................................................................... 63 Contadores ...................................................................................................... 65 Acumulador..................................................................................................... 65 BuclesInfinitos................................................................................................ 66 EjerciciosResueltos......................................................................................... 66 EjerciciosPropuestos....................................................................................... 68 3.7. SentenciaRepetir\Hasta .......................................................................... 71 EjerciciosResueltos......................................................................................... 72 EjerciciosPropuestos....................................................................................... 75 2.11. EleccinEstructurasRepetitivaAdecuada................................................ 76 AutoevaluacionFinal ....................................................................................... 77 Arreglos,VectoresyMatrices ................................................................................. 79 4.1. Arreglos................................................................................................... 79 4.2. Vectores .................................................................................................. 79 EjerciciosPropuestos....................................................................................... 80 5.3. Matriz...................................................................................................... 81 EjerciciosPropuestos..................................................................................... 82 Bibliografa.......................................................................................................... 84 Anotaciones......................................................................................................... 85 DerechosReservados........................................................................................... 87

Presentacin
El desarrollo vertiginoso de las computadoras ha hecho que cada tipo de persona comiencen tener acceso a la programacin de sus propias mquinas, facilitando as el estudio y desarrollo de programas para la solucin de problemasparticularesenlas empresas,oficinasyenmismohogar. La necesidad de implementar metodologas para el aprendizaje de la programacin en diferenteslenguajesypaquetesdeutilidad,obligaalcuestionamientosobreeldesarrollo delalgicaestructuradaenlaspersonascomunesobligndose,as,apensarsobrela formadeejecucindecualquieraccintantohumanacomomecnicaodesistemas. El desarrollo del mdulo de algoritmos y flujogramas es un tema fundamental en el diseo de programas por lo cual el alumno debe tener buenas bases que le sirvan para poderdesarrollardemanerafcilyrpidasusprogramas. EstemdulodeAlgoritmosyFlujogramasleservirdeapoyoalmaestro,ensulabor cotidiana de aprendizaje y al estudiante le facilitar desarrollar su capacidad analtica y creadora, para de esta manera mejorar su destreza en la elaboracindealgoritmosque sirven como base para la codificacin de los diferentes programas que tendr que desarrollaralolargodesucarrera. Se recomienda que el estudio de este material se lo realice en grupos, elaborando los ejerciciosquesemuestranenlaGuadeEstudio.xitosenestemduloquesolotrata dedarunenfoqueactualypersonaldelasmaravillosascapacidadesquesepuedelograr, dominandoestatemtica. LosAutores.

ObjetivosdelModulo
ObjetivosGenerales
Comprenderlanaturalezadelosalgoritmosyflujogramasysuaplicacinenla programacinsobrecomputadoras.

ObjetivosEspecficos
Crearenelestudiantelanecesidadyagilidadparapensarenformalgicay ordenadaconelfinderesolverproblemasenformaeficiente. Despertarenelestudianteelespritudeprogramar Darlasbasesfundamentalesparaeldesarrollodecualquiertipode programacinsimple,estructuradayorientadaaObjetoscomoPascal,C++, Visual.Net

MetodologadeTrabajoy Evaluacin
Lapropuestametodolgicasebasaenunmodeloeducativocentradoenelalumnoyen losgruposcolaborativos.Enestesentidoelparticipanteeselresponsabledesuproceso deaprendizajedebeinteractuarconloscontenidosdelmdulomedianteelsistemade estudio a distancia, desarrollar su juicio crtico y tener la iniciativa de aprender continuamentetodoaquelloqueleseaesencialduranteelprocesoparacumplirconlas intencionesdelmdulodeAlgoritmosyflujogramas. Asmismo,elparticipantedeberealizaractividadesconotroscompaeros,detalforma que entre ellos, construyen diferentes experiencias de aprendizaje que enriquezcan los contenidos y el desarrollo de distintas habilidades, por ejemplo, uso de lastecnologas, trabajo cooperativo,espaciosdiscusindeideas,sntesisyanlisis,juiciocrtico,entre otras. Duranteeldesarrollodeestemdulo,tienenespecialimportanciaactividadescomo: Laentregadetrabajosindividualesygrupalesporescrito,queseindicaranen losencuentrosestablecidosdeclasespresenciales. Exposicindelostrabajosgrupalesydelostrabajosdeinvestigacin utilizandoherramientastecnolgicasopedaggicasqueustedconozcay domine. LaelaboracindelasAutoevaluacionesyseleccindetemasparainvestigacin yautoestudioporpartedelosalumnos,yaplicacindeevaluacionesprcticas parareforzarelconocimientoadquiridoporelalumno. Ampliacindelostemasporpartedelfacilitador.

Capitulo I

IntroduccinalosAlgoritmos

CAPITULO

Introduccina losAlgoritmos
1.1 1.2 1.3 1.4 1.5 Fundamentos MetodologaparalaSolucindeAlgoritmos Tiposdealgoritmos TcnicasparalaformulacindeAlgoritmos EjerciciosPrcticos

1.1. Fundamentos
UnelementobsicoparaelfuncionamientodelcomputadoreselSoftware,elcualest formadoporunaseriedeinstruccionesydatosquepermitenelaprovechamientodelos diversos recursos de la computadora, para resolver gran cantidad de problemas. El software est constituido por programas los cuales son un conjunto detallado de instrucciones que instruyen al procesador para realizar determinados procesos particulares. Los datos pueden ser cualquier informacin que necesite el programa: caracteres,nmeros,imgenes,etc. Por otro lado un computador es incapaz de hacer cosas por su propia iniciativa, hace nicamente lo que se le ordene para lo cual es necesario especificarle detalladamente paso a paso de que manera debe ejecutar un conjunto de rdenes. Este proceso de ensearalcomputadorseconocecomoprogramacin:ysuproductoeselprograma.Un programa se escribe en un lenguaje de programacin el cual proporciona la interfaz hombre mquina. As pues, los lenguajes utilizados para escribir programas de computadorassonloslenguajesdeprogramacinylosprogramadoressonlosescritores y diseadores de programas. Un programador a su vez da solucin a un problema mediantelaresolucindealgoritmosdiagramasdeflujo.
PROBLEMA ALGORITMO PROGRAMA

UnAlgoritmoesunconjuntoordenadoyfinitodepasosoinstruccionesqueconducena la solucin de un problema especfico. La naturaleza de los problemas varan con el mbito o con el contexto donde estn planteados as, existen problemas matemticos, qumicos,filosficos,etc.Segnestolanaturalezadelosalgoritmostambinesvariada ynotodosellospuedenserejecutadosporlacomputadora.. La palabra algoritmo apareci por primera vez en el diccionario en 1957 antes se encontraba como la palabra algorismo, que significa, proceso de hacer clculos aritmticosutilizandonmerosarbigos. 4

Capitulo I

IntroduccinalosAlgoritmos

Enlaedadmedia,losabacistasutilizabanelbacoparahacersusclculos,mientrasque losalgoristaslohacanconlosalgorismos.Paraestapoca,nosesabaacienciacierta cual era el origen de la palabra algorismo los lingistas intentaron hacer una aproximacin, usando combinaciones de palabras como algirios (sin dolor) y arithmos (nmero)otrosdecanquelapalabraprovenadel"ReyAlgordeCastile". Finalmente, los historiadores de la matemtica encontraron el verdadero origen de la palabra algorismo: proviene del nombre del autor de un famoso libro persa, Abu Ja'far MohammedibnMusaalKhowrizm,literalmente"PadredeJa'far,Mohammed,hijode Moses,nativodeKhowrizm.AlKhowrizmescribiunlibromuyfamosoquesentlas basesdellgebra.

1.2. Metodologaparalasolucindeproblemaspor mediodelacomputadora


DefinicindelProblema: Estafaseestdadaporelenunciadodelproblemay consiste
es estudiar el problema planteado dividiendo e tantas partes como sea posible, para obtener una idea clara y concisa sobre lo que se desea obtener como resultado. Es importantequeseconozcaloquesedeseaquerealicelacomputadoramientrasestono seconozcadeltodonotienemuchocasocontinuarconlasiguienteetapa.

Anlisis del Problema : Una vez que se ha comprendido lo que se desea de la


computadora,esnecesariodefinir: Losdatosdeentrada. Cualeslainformacinquesedeseaproducir(salida) Losmtodosyfrmulasquesenecesitanparaprocesarlosdatos.

Datos Entrada

Proceso

Datos Salida

Unarecomendacinmuypracticaeselquenospongamosenellugardelacomputadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producirlosresultadosesperados.

Diseo del Algoritmo: Consiste en describir las secuencias ordenadas de pasos que
conducen a la solucin de un problema dado. Las caractersticas de un buen algoritmo son:

Capitulo I

IntroduccinalosAlgoritmos

Seralgoritmo: Tienequeconsistirenunasecuenciadeinstruccionesclarasyfinitas,es
decir debe estar compuesto por un nmero determinado de pasos que tiene fin sin importarelnmerodeinstruccionesautilizar.

Ser correcto: El algoritmo ha de resolver el problema planteado en todas sus facetas,


teniendo en cuenta todas las posibles situaciones que puedan plantearse y no debe permitirdoblesinterpretaciones

Serlegible.Dondecadasecuenciadeunalgoritmodebeserdefinidaenformaprecisa,de
talmaneraquelasaccionesaejecutarencadauno,estnrigurosamenteespecificadas ynoadmitanambiguedad.

Sereficiente: todoslospasos,instruccionesuoperacionesdebenoptimizarsedemanera queseobtengalasolucinmscortayeficientederesolverelproblemaplanteado Codificacin : Lacodificacineslaoperacindeescribirlasolucindelproblema(de


acuerdoalalgicadeldiagramadeflujoopseudocodigo),enunaseriedeinstrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacinolenguajedealtonivel.

Prueba y Depuracin : Los errores humanos dentro de la programacin de


computadoras son muchos y aumentan considerablemente con la complejidad del problema. Elprocesodeidentificaryeliminarerrores,paradarpasoaunasolucinsin erroresselellamadepuracin. La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la solucin, por ello se debe considerar con el mismo inters y entusiasmo. Resulta convenienteobservarlossiguientesprincipiosalrealizarunadepuracin,yaquedeeste trabajodependeelxitodenuestrasolucin.

1.3. TiposdeAlgoritmos
Elconceptodealgoritmoseaplicaamuchassituacionescotidianas.Porejemplo,cuando sequiereexplicaraunapersona,laubicacindeunacasaoedificio,generalmentesele describe la ruta que debe seguir desde un determinado punto para llegar a la direccin deseada, en otras palabras, se le proporciona un algoritmo que le permite llegar a al destinosinningninconveniente.Unarecetadecocinatambinpuedeconsiderarsecomo un algoritmo para elaborar una comida. Los planos de un modelo a escala, indican el orden y la forma en que deben ser unidas las piezas para construir el modelo. En este contextoexistendostiposdealgoritmoscomputacionales. AlgoritmosCualitativos AlgoritmosCuantitativos

Capitulo I

IntroduccinalosAlgoritmos

Algoritmos Cualitativos:
Son aquellos enlosquesedescribencualquier accin o conjunto de acciones utilizando palabras perosiempreenmarcadasentresestructurasfundamentalesqueson: 1.Secuenciasdeacciones 2.Decisindeaccin 3.Ciclosdeacciones

Secuenciasdeacciones: Paraescribirunasecuenciadeordenesoaccionestodoloque
tienequehacerescolocarunanuevaordenounanuevaaccindespusdelaltimaque haya colocado. De esta manera se entiende la secuencialidad y la ordinalidad en la ejecucindeesasacciones.

Ejemplo:
Ejercicioparacambiarunfocoquemandoporunonuevo.
Situarunaescalerabajoelfocoquemado Elegirun nuevofoco Subirlaescalerahastaalcanzarelfoco Girarelfocoensentidoantihorariohastasacarlo Colocarelnuevofocoenelmismolugar Girarensentidohorariohastaquequedeapretado Bajardelaescalera

Puede usted notar que para utilizar la estructura de secuencia (que a veces parece ser todo lo que tenemos que hacer es ir colocando una accin tras otra y, por supuesto, racionalesenelordendedichasacciones,elordendelosfactoressalteraelresultado enlosdiseosdealgoritmos.

Decisin de accin: Son condiciones que nos permite que podamos decidir cul es el
caminolgicocorrectoatomarpararesolverunproblemaeficientemente. Vamos a desarrollar el mismo algoritmo, para ello vamos a incorporar una lneas de decisin que nos permitan tener un algoritmo mas genrico y que nos permita lograr mejorelobjetivo,as:
1.Situarunaescalerabajoelfocoquemado 2.Elegirunnuevofoco SilapotencianoesigualaladelquemadoEntonces (Pregunta) Descartarelfocoelegido (accinverdadera) Casocontrario Elegirunnuevofoco.(accinfalsa) 3.Subirlaescalerahastaalcanzarelfoco 4.Girarelfocoensentidoantihorariohastasacarlo 5.Colocarelnuevofocoenelmismolugar 6.Girarensentidohorariohastaquequedeapretado 7.Bajardelaescalera

Capitulo I

IntroduccinalosAlgoritmos

Yapuedeustednotarquenuestroalgoritmohacambiadounpocoyporlotantoahora tiene unas condiciones que le permiten ser una secuencia de acciones mas racional y analiza mas detalladamente las situaciones posibles. Adicionalmente usted puede notar queunadecisincompletainvolucra: Unapreguntaqueevalaunacondicin Unconjuntodeaccionesarealizarencasodequelacondicinseaverdadera Unconjuntodeaccionesarealizarencasodequelacondicinseafalsa

Ciclos de acciones: No es mas que la estructura que nos permite repetir una o varias
accionesunacantidaddefinidadeveces. ParaidentacindeaccionesrepetitivasustedpuederepresentarconlapalabraMientras/ HastaoRepetir/Hasta,bloquesqueestableceenrelacinconunacondicineliniciode unconjuntodeaccionesqueserepitenprecisamenteMientrasesacondicinlopermita. La estructura Mientras (por efectos de clarificacin del algoritmo) debe tener un finalizadorqueindiquehastadondellegaelbloquedeaccionesquedebemosrepetir.
1.Situarunaescalerabajoelfocoquemado 2.Elegirunnuevofoco SilapotencianoesigualaladelquemadoEntonces Repetir Descartarelfocoelegido Elegirunnuevofoco Hastaquelapotenciaseaigual 3.MientrasnosealcanceelfocoquemandoHacer Subirlaescalera,peldaotraspeldao 4.Repetir Girarelfocoensentidoantihorario Hastaqueelfocohayasalido 5.Colocarelfoconuevoenelmismolugar 6.Repetir Girarelfocoensentidohorario Hastaquequedeapretado 7.Bajardelaescalera

Estealgoritmoinformalestnexpresadotalcomodesprevenidamentecualquierpersona los expresara y puede entonces suponer usted que la variabilidad de algoritmos que cumplanlosmismosobjetivosserainmensasinoexistieranunastcnicasuniformespara facilitarlaexpresindeestasideas,particularmenteenalgoritmoscomputacionales.

Capitulo I

IntroduccinalosAlgoritmos

Ejemplo:
Algoritmo para usar un telfono pblico. La operacin puede expresarse en los siguientespasos:
Descolgarlabocina Introducirlasmonedas Discarelnmero Hablar Colgarlabocina

Los pasos anteriores parecen describir de forma correcta de usar un telfono pblico. Ahorasupngasequeleproporcionaestasinstruccionesaunapersonaquejamsensu vida ha utilizado un telfono pblico. Podr esta persona completar exitosamente una llamada telefnica? Probablemente no verdad!. Existen muchos aspectos que no son mencionados en el proceso anterior, como por ejemplo, que sucede si el nmero est ocupado, o si el telfono no sirve, o si se agota el tiempo. Si bien el proceso tiene un inicioyunfinal,lospasossonpocoespecficosynocontemplatodaslassituacionespor ende es posible que existan situaciones en que no pueda completarse una llamada telefnica, siguiendo los pasos. Por esta razn, elprocesoantesdescritoestunpoco lejosdeserunalgoritmoefectivoparausaruntelfonopblico. Ahora procedemos a refinar el proceso anterior. Para esto,hayqueespecificarciertos aspectos con respecto al uso de un telfono pblico. Primero, Qu sucede si al descolgar la bocina, no se oye ningn tono? Lo ms seguro es que el telfono est daado, por lo que no queda ms remedio que colgar la bocina e intentar ubicar otro telfono pblico. As, el paso "Descolgar la bocina" del proceso anterior, puede ser extendidoalosiguiente:
Descolgarlabocina Sinoseoyeuntonoentonces Colgarlabocina Fin

Cuando se termina de marcar el nmero, es posible que sucedan varias cosas: que alguienconteste,quenadiecontesteoqueelnmeroestocupado.Enelprimercaso,la persona debe proceder a hablar si nadie contesta o si est ocupado, la persona debe colgarlabocinayrecogerlasmonedas.Encasodequealguienconteste,esposibleque la persona deba introducir otras monedas, para mantener la llamada. Todas estas consideracionesseexpresanenlossiguientespasos:
Marcarelnmero Siseoyenvariostonoscortosseguidos(elnmeroestocupado) Colgarlabocina Recogerlasmonedas Fin Siseoyenvariostonoslargos(eltelfonorepica) Sialguiencontesta Hablar Cadavezqueseescucheuntonomientrassehabla

Capitulo I
Introducirmonedas Seguirhablando Colgarlabocina Fin Sinadiecontesta Colgarlabocina Fin

IntroduccinalosAlgoritmos

Deestaformasehaespecificadodeformarazonablelospasosaseguirpararealizaruna llamada usando un telfono pblico. Todo algoritmo, de una forma u otra, indica el ordenenquedebenejecutarselospasos.Enestecaso,seagregannmerosacadapaso, paraindicarlasecuenciaapropiada:

1.Descolgarlabocina 2.Sinoseoyeuntonoentonces 2.1.Colgarlabocina 2.2.Fin 3.Marcarelnmero 4.Siseoyenvariostonoscortosseguidos 4.1.Colgarlabocina 4.2.Recogerlasmonedas 4.3.Fin 5. Siseoyenvariostonoslargos 6. Sialguiencontesta 6.1.Hablar 6.2.Cadavezqueseescucheuntonomientrassehabla 6.2.1.Introducirmonedas 6.2.2.Seguirhablando 6.3.Colgarlabocina 6.4.Recogerlasmonedasnousadas 6.5.Fin 7. Sinadiecontesta 7.1.Colgarlabocina 7.2.Recogerlasmonedas 7.3.Fin

10

Capitulo I

IntroduccinalosAlgoritmos
INICIO

Descolgarlabocina

Seoyeun tono Marcarelnmero

Colgarlabocina

FIN

Oyenvarios tonoscortos seguidos Eltelfono repica alguien contesta Colgarlabocina

Recogerlasmonedas

FIN Hablar

nadie contesta

Cadavezque seescuche un Recogerlasmonedasno usadas Introducirmonedas

Colgarlabocina FIN FIN Seguirhablando

En los dos algoritmos anteriores aparecen ciertas palabras reservadas (en cursiva) que describen las estructuras de control fundamentales y procesos de toma de decisiones. Estaspalabrasincluyenlossiguientesconceptosfundamentales:

Seleccin :expresadaporsientoncescasocontrario Repeticin :expresadaporrepetirhastaqueoavecespormientrashacer


Lacapacidaddedecisinpermiteseleccionaralternativasdeaccionesaseguirobienla repeticinunayotravezdeoperacionesbsicas. Un aspecto importante a considerar al momento de escribir un algoritmo es la indentacin (sangrado) de las acciones interiores a las estructuras de seleccin y/o repeticin. 11

Capitulo I

IntroduccinalosAlgoritmos

Otro aspecto, tambin importante es el mtodo por medio del cual se desarrolla un algoritmo.Secomienzaconunenunciadomuygeneralysecontinahastaencontrarel algoritmofinal incrementandosistemticamentelosdetalles.

Algoritmos Cuantitativos:
Sonaquellosenlosqueseutilizanclculosnumricosparadefinirlospasosdelproceso. Deigualformaestostiposdealgoritmosdescriben trespartesesenciales:

Entrada

Proceso

Salida

Ejemplo:Diseeunalgoritmoquepermitahallarlasumayelpromediodetresnmeros

Sedefinen:EP/S

Entrada :Nmerosenteros(Numero1,numero2,numero3) Proceso:Sumarlos3nmerosycalcularsuPromedio Salidas:Suma,Promedio Pseudocdigo


INICIO LEERnumero1,numero2,numero3 suma=numero1+numero2+numero3 promedio=suma/3 IMPRIMIRsuma,promedio FIN

Notas: El trmino LEER significa obtener un dato de algn dispositivo de entrada,


como el teclado, y almacenarlo en una variable. Una variable esunalocalizacinenla memoriaquetieneunnombreycuyocontenidopuedecambiaralolargodelaejecucin deunprograma.Asnumero1,numero2ynumero3sonvariables.EltrminoIMPRIMIR significamostrarelvalordeunavariableenalgndispositivodesalida,comolapantalla

12

Capitulo I

IntroduccinalosAlgoritmos

EjemplodeunAlgoritmoCuantitativo:
DeterminarlasumadelosNprimerosnmerosenterosdeacuerdoalasiguiente frmula:Suma=N*(N+1)/2

Sedefinen:E/S Entrada :Nmeroentero(N) Proceso:Calcularsumaporfrmula: Salida :Suma Pseudocodigo


INICIO Ingresarunnmeroentero Leer(N) Suma=N*(N+1)/2 Escribir(suma) FIN

DiagramaDeFlujo

Inicio

IngresarN

Suma=N(N1)/2

EscribirSuma

Fin

13

Capitulo I

IntroduccinalosAlgoritmos

1.4. Tcnicasparalaformulacindealgoritmos
Lasdosherramientasutilizadascomnmenteparadisearalgoritmosson: Pseudocdigo DiagramadeFlujo

Pseudocdigo
Es un lenguaje algortmico de programacin informal, en donde se omiten aspectos tcnicos, para considerar solamente operaciones que definen el comportamiento del algoritmo. ). Es decir es una herramienta algortmica que permite escribir pseudoprogramas (una imitacin de un programa real) utilizando un lenguaje de pseudoprogramacin que es una imitacin de los lenguajes de programacin de alto nivel.

Diagrama de Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasosenlacomputadoraparaproducirresultados Un diagrama de flujo utiliza los smbolos estndar ( caja) y que tiene los pasos del algoritmo escritos en esas cajas unidad por flechas, denominada lnea de flujo, que indican la secuencia en que se deben ejecutar. Los smbolos utilizados han sido normalizadosporelinstitutonorteamericanodenormalizacin(ANSI).

Recomendaciones para el diseo de Diagramas de Flujo


Sedebenseusarsolamentelneasdeflujohorizontalesy/overticales. Sedebeevitarelcrucedelneasutilizandolosconectores. Sedebenusarconectoressolocuandoseanecesario. Nodebenquedarlneasdeflujosinconectar. Sedebentrazarlossmbolosdemaneraquesepuedanleerdearribahaciaabajo ydeizquierdaaderecha. Todotextoescritodentrodeunsmbolodeberserescritoclaramente,evitando elusodemuchaspalabras.

14

Capitulo I

IntroduccinalosAlgoritmos

DIAGRAMA

DESCRIPCIN
Establece el INICIO y el FIN.

Indica un PROCESO interno de una operacin aritmtica.

Introduccin de datos por parte del usuario. ( E/S )

SALIDA de informacin POR PANTALLA.

Indica la continuidad de un diagrama. CONECTOR.

Volumen de DATOS.

Indica el SENTIDO del flujo en que se realizan las operaciones. Especifica la realizacin de una comparacin de valores. DECISIN.

SALIDA de informacin POR IMPRESORA.

TECLA DO

Se utiliza en ocasiones en lugar del smbolo de E/S para representar el ingreso de datos solo por teclado

Indica un proceso externo. SUBRUTINA.

Se usa para enlazar dos partes cualesquiera de un ordinograma a travs de un conector en la salida y otro conector en la entrada Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina.

15

Capitulo I

IntroduccinalosAlgoritmos

Ejemplo:
DiagramadeFlujoparacambiarunfocoquemandoporunonuevo.

INICIO

Situarunaescalerabajoelfoco quemado

Elegirunnuevofoco

Potencia foco quemado

Descartarelfocoelegido

Elegirunnuevofoco

Potencia=foco quemado

Nose alcanceel

Girarelfocoensentido antihorario

Subirlaescalera,peldaotras peldao

Focohaya salido Colocarelfoconuevoenel mismo lugar

Girarelfocoensentidohorario

Foco apretado

Bajarlaescalera

FIN

16

Capitulo I

IntroduccinalosAlgoritmos

1.5 EjerciciosPrcticos
Disearlosalgoritmosqueresuelvanlossiguientesproblemas: Algoritmoyflujogramaparacolocarnosunacamisa AlgoritmoParaVerLaPelculaTiburon Comprarunaentradaparaunshowartstico. Elaboreunpseudocdigoyflujogramaquesume,reste,multipliqueydividados nmeros:x=10y=2 Elaboreunpseudocdigoyflujogramaquecalculeelreadeunrectngulo: Lado1=3lado2=4,Areadelrectngulo=lado1*lado2 Elaboreunpseudocodigoyflujogramaquerecibaunnmeroenteroydevuelva suinmediatosiguiente.Porejemplosiingresa28lasalidadebeser29. Unatiendadeabastosofreceundescuentodel8%sobreeltotaldelacompray unclientedeseasabercuantodeberpagarfinalmenteporsucompra.Elabore unpseudocdigoyflujogramaqueresuelvaesteproblema.

17

Capitulo II

EstructurasAlgortmicas

CAPITULO

Estructuras Algortmicas
2.1 2.2 2.3 Variables,Constantesy Operadores TiposdeDatos Operadores

2.1. Variables,ConstantesyOperadores
El recurso fundamental utilizado por un programa es la memoria. Es en la memoria donde un programa almacena sus datos e instrucciones. Los datos se almacenan en localizacionesenlamemoriadenominadasvariables.. Un algoritmo constara de tres componentes: Una cabecera, una seccin de Identificadores,Variablesy Constantes,y elcuerpodelAlgoritmo.

Algoritmo<Nombre> Constantes Variables Inicio Expresionesy Sentencias Fin_Alg

CabeceradelAlgoritmo

Cabecera
Comienza con la palabra ALGORITMO, la cual est seguida por el nombre del programacompleto,Ejemplo:Algoritmosuma

18

Capitulo II

EstructurasAlgortmicas

Seccin de identificacin de variables y constantes


Enellaseespecificanlostiposdedatosautilizar(Cualesydequetipo). Identificadores Un identificador es un nombre que puede darse a una variable, a una constante y en generalacualquierelementodeunprogramaquenecesitenombrarse. As,porejemplo,sonvlidoslossiguientesidentificadores:

sueldoBruto Edad numero_hijos DIA

Sueldobrutodeunempleado Edaddeunapersona Nmerodehijosdeunempleado Nombredeundadelasemana

ReglasparaformarunIdentificador
Debecomenzarconunaletra(AaZ,maysculasominsculas)ynodeben contenerespaciosenblanco. Letras,dgitosycaracterescomolasubraya(_)estnpermitidosdespusdel primercarcter. Lalongituddeidentificadorespuedeserdehasta8caracteres. Constantes Una constante es un dato que no cambia durante la ejecucin del programa. Ejemplo:
pi=3.1416

Variables Unavariableesunalocalizacinenlamemoriaprincipalquealmacenaundatoquepuede cambiaralolargodelaejecucindelprograma. Unavariabletieneasociadadoscosasfundamentales:un identificador yun tipodedato. Elnombreidentificademaneranicalalocalizacindememoriadondese almacenaeldato. Eltipodedatoespecificalanaturalezadeldatoquepuedealmacenarlavariable. En el grfico siguiente se muestran dos variables con sus contenidos en memoria. La variable llamada Edad (de tipo entero) cuyo contenido es 27 y la variable llamada Descuento(detiporeal)cuyocontenidoes23.57. 19

Capitulo II

EstructurasAlgortmicas

Edad Descuento

301 23.57

Segneltipodedatodelavariablepodemostenervariables:

Numricas PorsuContenido Lgicas Alfanumricas(String) Variables DeTrabajo Contadores Acumuladores

PorsuUso

VariablesporsuContenido

VariableNumricas
Son aquellas en las cuales se almacenan valores numricos, positivos o negativos, es deciralmacenannmerosdel0al9,signos(+y )yelpuntodecimal.Ejemplo:
iva=0.15 pi=3.1416 costo=2500

VariablesLgicas
Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultadodeunacomparacinentreotrosdatos.

VariablesAlfanumricas
Esta formada por caracteres alfanumricos (letras, nmeros y caracteres especiales). Ejemplo:
letra=a apellido=lopez direccion=Av.Libertad#190

20

Capitulo II

EstructurasAlgortmicas

VariablesporsuUso

VariablesdeTrabajo:
Variablesquerecibenelresultadodeunaoperacinmatemticacompletayqueseusan normalmentedentrodeunprograma.Ejemplo:
suma=a+b/c

Contadores
Seutilizanparallevarelcontroldelnumerodeocasionesenqueserealizaunaoperacin osecumpleunacondicin.Conlosincrementosgeneralmentedeunoenuno.

Acumuladores
Formaquetomaunavariableyquesirveparallevarlasumaacumulativadeunaseriede valoresquesevanleyendoocalculandoprogresivamente.

2.1. Tipos deDatos


Elprimerobjetivodelacomputadoraseselmanejodelainformacinodatos.Todos losAlgoritmosyprogramasoperansobredatos.Todoslosdatostienenuntipoasociado conellos.Undatopuedeserunsimplecarcter,talcomob,unvalorenterotalcomo 35.Eltipodedatodeterminalanaturalezadelconjuntodevaloresquepuedetomaruna variable.

21

Capitulo II

EstructurasAlgortmicas

Datos Numricos
Permiten representar valores escalares de forma numrica, esto incluye a los nmeros enteros y los reales. Este tipo de datos permiten realizar operaciones aritmticas comunes. Enteros Esunsubconjuntofinitodelosnmerosenterosquepuedenser positivosEj.
51340 5 20 254

negativos

Reales Tienenunpuntodecimaly puedenserpositivosonegativos.


0.083739.413.0 3.7452 52.321 8.12

Datos Lgicos
Tambin denominado booleano y son aquellos que solo pueden tener dos valores (verdaderoofalsoSioNo)yaquerepresentanelresultadodeunacomparacinentre otrosdatos(numricosoalfanumricos). Porejemplo:Cuandosepidesiunvalorenteroespar,larespuestaserverdaderao falsa,segnseaparoimpar.

Datos de Carcter
Es tipo carcter es el conjunto finito y ordenado de caracteres que la computadora entiende. Un dato tipo carcter contiene un solo carcter delimitado por apstrofes. Dentrodeloscaracteressereconocen:
CaracteresAlfabticos(A,B,C,...,Z). Caracteresnumricos(1,2,3,...,9). Caracteresespeciales(+,,*,/,^,.,,,,<,>..)

Datos de Cadena (String)


Es una secuencia de caracteres alfanumricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar nmeros como alfanumricos, pero estos pierden su propiedad matemtica, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representanencerradosentrecomillas.Ejemplo:
UniversidadEstataldeBolvar

22

Capitulo II

EstructurasAlgortmicas

OperacionesdeAsignacin Eselmododedarlevalorestipodedatoaunavariable.Laasignacindeunvalora unaVariableserepresentaconel smbolo


NOMBREDELAVARIABLE EXPRESIN

Ejemplos:
A,B,C,D Entero valoresenteros A B C D 5 5+3+8 B*A B/2 SignificaquealavariableA,B,C,Dselehaasignadoelsoportede SignificaquealavariableAselehaasignadoelvalor5 LavariableBselehaasignadoelvalor16 LavariableCselehaasignadoelvalorde80 LavariableDselehaasignadoelvalor8

Expresiones Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesisynombresdefuncionesespeciales.Ej.
a+(b+3)+c

Cada expresin toma un valor que se determina tomando los valores delasvariablesy constantesimplicadasylaejecucindelasoperacionesindicadas. Unaexpresinconstadeoperadores,operandosyfunciones.Segnseaeltipodedatos quemanipulan,seclasificanlasexpresionesen: Aritmticas Relacinales Lgicas

2.3. Operadores
Sonelementosquerelacionandeformadiferente,losvaloresdeunaomsvariablesy/o constantes.Esdecir,losoperadoresnospermitenmanipularvalores. Los Tipos de Operadores que existen son tres: los relacinales, los Aritmticos y por ltimoloslgicos OperadoresAritmticos Los operadores aritmticos permiten la realizacin de operaciones matemticasconlos valores(variablesyconstantes). Losoperadoresaritmticospuedenserutilizadoscontiposdedatosenterosoreales.Si ambossonenteros,elresultadoesenterosialgunodeellosesreal,elresultadoesreal. 23

Capitulo II

EstructurasAlgortmicas

+Suma Resta *Multiplicacin /Divisin

^,**Exponenciacin divDivisinEntera modModulo(Residuo)

Ejemplos:
ExpresinResultado 5+3+10 18 10712 2*510 11/25.5 3^327 10div33 10mod31

OperadoresRelacionales: Seutilizanparaestablecerunarelacinentredosvalores.Comparaestosvaloresentresi yestacomparacinproduceunresultadodecertezaofalsedad(verdaderoofalso). Los operadores relacinales comparan valores del mismo tipo (numricos o cadenas). Tienenelmismoniveldeprioridadensuevaluacin.Losoperadoresrelacinalestiene menorprioridadquelosaritmticos Esdeciresunoperadorqueslopuedetomardosvaloreslgicosqueson:Verdadero Falso. Tambin se denominas expresiones booleanas en honor del matemtico BritnicoGeorgeBoole,quedesarrollelAlgebralgicaodeBoole.

OperadoresdeRelacin Operador < > = <= >= <> Significado Menorque Mayorque Igualque Menoroiguala MayoroIguala Distintode

24

Capitulo II

EstructurasAlgortmicas

Ejemplo:
3<6 0>1 4=2 (42)<(34) Verdadero Falso Falso Falso

OperadoresLgicos Losoperadoreslgicosobooleanosbsicosson

OPERADORSIGNIFICADO no(not) Y(and) O(Or) negacinde interseccinde Uninde

Tabladeverdad:
PQPyQPoQnoP v v f f v f v f vv f fvf fvv f fv

Enlasexpresioneslgicassepuedenmezclaroperadoresderelacinylgicos.

Ejercicio.
(10>5)y(4mod3)=0 vfFalso 0<50>5 v v (a<b)and(b<c) (10<20)and(20<30) VandV V

Verdadero

25

Capitulo II

EstructurasAlgortmicas

PrioridadoPrecedenciadelosOperadores LasExpresionesquetienedosomsoperandosrequierenunasreglasmatemticasque permitandeterminarelordendelasoperacionesyestasson: Lasoperacionesqueestnencerradasentreparntesisseevalanprimero.Si existendiferentesparntesisanidados(Interioresunosaotros)lasexpresiones msinternasseevalanprimero Lasoperacionesaritmticasdentrodeunaexpresinsuelenseguirelsiguiente ordendeprioridad:


1.() 2.^ 3.*,/,Mod,Not 4.+,,And 5.>,<,>=,<=,<>,=,Or

En caso de coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrados entre parntesis en orden de prioridad en este caso es de izquierdaaderecha Ejemplos
3+6*14 =3+84 =87 8+7*3+4*6 =8+21+4*6 =8+21+24 =53 (9+11)/(8+4/2)=20/(8+4/2) =20/(8+2) =20/10 =2

4+2*5=14 23*2/5=9.246/5=9.2 3+5*(10(2+4))=233+5*(106)=3+5*4=3+20=23 3.5+5.0914.0/40=5.093.5+5.093.5=8.593.5=5.09 2.1*(1.5+3.0*4.1)=28.982.1*(1.5+12.3)=2.1*13.8=28.98

Ejemplo:
a=10b=12c=13d=10 ((a>b)or(a<c))and ((a=c)or (a >= b )) 26

Capitulo II F T T

EstructurasAlgortmicas
F F F

F Funciones Los programas exigen en numerosas ocasiones, adems de las operaciones aritmticas bsicasyatratadas,unnmerodeterminadodeoperadoresespecialesquesedenominan funciones.
FUNCION DESCRIPCION TIPO DE ARGUMENTO RESULTADO

Abs (x)

Valor absoluto de x

Entero o Real

Igual que argumento Real Real Real Entero

Arctan (X) Cos (x) Exp (x) Round(x)

Arco tangente de x Coseno de x (radianes) Calcula e x Redondea el valor de x al entero ms prximo Calcula el cuadrado de x Calcula la raz cuadrada de x Suprime la parte decimal de x Devuelve el carcter de un entero x Devuelve un entero de un carcter Devuelve el predecesor de x Devuelve el sucesor de x

Entero o real Entero o real Entero o real Real

sqr (X) Sqrt(X) Trunc(X) Chr(x)

Entero o real Entero o real Real Entero o real

Igual que x Real Entero Carcter

Ord(x)

Carcter

Entero

Pred(x) Succ(x)

Entero carcter o booleano Entero carcter o booleano

Igual que x Igual que x

Ejemplo
Chr(65)=AOrd(A)=65 Chr(112)=pOrd(p)=112 Chr(53)=5Ord(5)=53 round(2.3)=2 round(3.7)=4 Sin(30)=0.5 Trunc(2.3)=2 trunc(3.7)=3 sqrt(16)=4

27

Capitulo II
Pred(3)=2 Succ(e)=f

EstructurasAlgortmicas
Succ(3)=4 Sqr(3)=9 Pred(e)=d

28

Capitulo II

EstructurasAlgortmicas

Ejercicios Prcticos
1.Obtenerelvalordelassiguientesexpresiones: 4*7+2^3/45 6/2*(7+5) 6.0*(5mod3)+(15div4)/(5+(6*(2^3/2)div3)1) 9div2/5 2div3+3/5 4*7+2**3/45 (5<(4+10))y(6=6) no((5<(4+10))y(6=6)) (10div2)<>0(no(4<10)) (2*3*5)<=(10/5+8) (6=8)(6>=8) (2*8)<>(4mod3) 2.Identifiqueaquetipodedatocorrespondelossiguientesejercicios 0.5 f.xyz 27,822 g.0515 9.3e12 h.9 9.3e12 i.1.66e+8 a j.verde 3.Determinarculesdelossiguientessonidentificadoresvlidos.Sisonvlidos,explicar porqu. a.Area b.Altura c.Valor1 d.Ventas95 e.POSICION_ACTUAL f.1valor g.Costoneto h.REA i.Nombreydireccin j.123456789

29

Capitulo III

SentenciasdeControl

CAPITULO

SentenciasdeControl
3.1 3.2 3.3 3.4 3.5 3.6 SentenciasdeControl SentenciasSecuenciales SentenciasdeDecisinoSecuenciales SentenciasdeSeleccinAnidada SentenciasdeBuclesoLazosRepetitivos EleccindeEstructurasRepetitivas

3.1. SentenciasdeControl
LasSentenciasalgortmicassonungrupodeformasdetrabajo,quepermiten,mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la solucindeproblemas.Estassentenciasseclasificandeacuerdoconsucomplejidaden:

Secuenciales

Asignacin Entrada Salida

Tiposde Sentencias

Condicionales

Simples Mltiples

Cclicas

Hacerpara Hacermientras Repetirhasta

30

Capitulo III

SentenciasdeControl

3.2. SentenciasSecuenciales
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. Una estructura secuencial se representadelasiguienteforma:

Inicio Accion1 Accion2 . . AccionN Fin

Accin1

Accin2

Accin3

Asignacin
La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacinsepuedeclasificardelasiguienteforma: Simples Consisteenpasarunvalorconstateaunavariable(a=15)

Contador :Consisteenusarlacomounverificadordelnumerodevecesqueserealizaun proceso(a=a+1) Acumulador :Consisteenusarlacomounsumadorenunproceso(a=a+b) Detrabajo:Dondepuederecibirelresultadodeunaoperacinmatemticaqueinvolucre


muchasvariables(a=c+b*2/4). EntradaySalidadeInformacin Todoclculoqueserealizanenlacomputadorarequierenlaentradadedatosnecesarios para ejecutar las operaciones que posteriormente se convertirn en resultados es decir, salida. Lasoperacionesdeentradapermitenleerdeterminadosvaloresyasignarlosadeterminas variables. Esta entrada se conoce como operacin de lectura ( read ). La operacinde salidasedenominaescritura(write)

Lectura
31

Capitulo III

SentenciasdeControl

Lalecturaconsisteenrecibirdesdeundispositivodeentrada(p.ej.elteclado)unvalor. Estaoperacinserepresentaenunpseudocodigocomosigue: Lasaccionesdelecturadealgoritmosserepresentanporelformato:


Leer(listadevariablesdeentrada) Leer(a,b)

Dondeaybsonlasvariablesquerecibirnlosvalores

Escritura
Consisteenmandarporundispositivodesalida(p.ej.monitoroimpresora)unresultado omensaje.Esteprocesoserepresentaenunpseudocodigocomosigue: Lasaccionesdeescrituradealgoritmosserepresentanporelformato:
ImprimirEscribir(<Mensaje>,listadevariablesdesalida) Imprimir(Elresultadoes:,R)

Donde El resultado es:esunmensajequesedeseaaparezcayResunavariableque contieneunvalor.

Ejemplos
Lasiguienteinstruccindeentrada,obtienelaedaddeunapersonadesdeundispositivo deentrada,comoelteclado,yloalmacenaenlavariablellamadaedad:
LEER(edad)

La siguiente instruccin de entrada, obtiene tres nmeros desde un dispositivo de entrada,comoelteclado,ylosalmacenaenlasvariablesnum1,num2ynum3:


LEER(num1,num2,num3)

Lasiguienteinstruccindesalida,muestraelcontenidodelavariablesueldoNetoenun dispositivodesalidacomolapantalla:
IMPRIMIRsueldoNeto

La siguiente instruccin de salida, muestra el contenido de las variables montoPag y montoDesenundispositivodesalidacomolapantalla:


IMPRIMIRmontoPag,montoDes

32

Capitulo III

SentenciasdeControl

Ejercicios Resueltos
Ejercicio1
Algoritmoparasumardosnmeros

AnlisisdelProblema
Entradas: Salidas: Variables: valor1(VariableA) valor2(VariableB)

INICIO

Ingresedos#s

Lasumadelvalor1msvalor2(VariableResult) A,B,Resultdetiposdedatosenteros
A,B

ALGORITMOSUMA Variables A,B,Result ENTEROS INICIO Escribir(Ingresedos#s) Leer(A,B) Result (A+B) Escribir(Result) FINALG

Result (A+B)

Result

FIN

PruebadeEscritorio A B RESULT 5 6 11

SALIDA

Ejercicio2
RealizarunalgoritmoyDiagramadeFlujoparacalcularelreadeunrectngulocuyos datosbaseyalturaseleendesdetecladoyelresultadosevisualizaraenlapantalla.

INICIO

AlgoritmoRectngulo Variables area,base,altura enteros Inicio Escribir(Ingreselabaseyalturadeunarectngulo) Leer(base) Leer(altura) area (base*altura) Imprimir(rea) Fin_Alg

Ingreselabasey alturadeun rectngulo base altura

area (base*altura)

rea

Fin

33

Capitulo III

SentenciasdeControl

Ejercicio3
Algoritmoparaintercambiarlosvaloresalmacenadosena,bsinutilizarotravariable
AlgoritmoIntercambio Variables a,b entero Inicio Escribir('Ingresedosnmeros') Leer(a,b) b a*b a bdiva b bdiva Imprimir(a,b) Fin_Alg
INICIO

Ingresedos nmeros

A,B

b a*b a bdiva b bdiva

a,b

FIN

Ejercicio4
Convertirlasiguienteexpresinaritmticaaalgoritmos:Expr=5*(x+y)+a2
AlgoritmoExpresin Variables z,x,y,a enteros Inicio Escribir(Ingresetresvaloresdea,x,y) Leer(x,y,a) z ((5*(x+y))+(a*a)) Imprimir(Elresultadodelaexpresines:,z) FinAlg
INICIO

Ingrese tres valoresa,x,y x,y,a

z((5*(x+y))+(a*a))

Elresultadodelaexpresin es:,z

FIN

34

Capitulo III

SentenciasdeControl

Ejercicio5
Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dineroganaradespusdeunmessielbancopagaaraznde2%mensual.
Algoritmoinversion Variables Cap_inv,gan Real Inicio Escribir(Ingresesucapitalainvertir) Leer(cap_inv) gan(cap_inv*0.02) Imprimir(gan) Fin

Ejercicio6
UnalumnodeseasabercualsersucalificacinfinalenlamateriadeAlgoritmos.Dicha calificacinsecomponedelossiguientesporcentajes: 55%delpromediodesustrescalificacionesparciales. 30%delacalificacindelexamenfinal. 15%delacalificacindeuntrabajofinal.
AlgoritmoCalificacion Variables Calif1,calif2,calif3 entero prom,examenf,trabajof,promparcial,promexamenf,promtrabajof,califinal real Inicio Escribir(Ingrese3calificacionesparciales,examenfinalytrabajofinal) Leer(Calif1,calif2,calif3,examenf,trabajof) prom(Calif1,calif2,calif3)/3 promparcial(prom*0.55) promexamenf(examenf*0.30) promtrabajof(trabajof*0.15) califinal(promparcial+promexamenf+promtrabajof) Imprimir(califinal) Fin

Ejercicio7
Un vendedor recibe un sueldo base mas un 10% extra por comisin de sus ventas, el vendedor desea saber cuanto dinero obtendr por concepto de comisiones por las tres ventasquerealizaenelmesyeltotalquerecibirenelmestomandoencuentasusueldo baseycomisiones.
Algoritmoinversion Variables sueldob,ventas1,ventas2,ventas3,tot_ventas,comision,totalpago Real Inicio Escribir(Ingresesusueldobaseysuscomisionesextras) Leer(sueldob,ventas1,ventas2,ventas3) tot_ventas(ventas1+ventas2+ventas3)

35

Capitulo III

SentenciasdeControl

comision(tot_ventas*0.10) totalpago(sueldob+comision) Imprimir(totalpago,commission) Fin

Ejercicio8
Una tiendaofreceundescuentodel15%sobreeltotaldelacomprayunclientedesea sabercuantodeberpagarfinalmenteporsucompra.
Algoritmotienda Variables tcompra,desc,tpagoreal Inicio Escribir(Ingreselacantidadtotaldelacompra) Leer(tcompra) desc(tcompra*0.15) tpago(tcompradesc) Imprimir(tpago) Fin

Ejercicios Propuestos
Desarrolle los siguientes problemas a un lenguaje algortmico y diagramas de flujo aplicandolasfasesderesolucindeunAlgoritmo

1. Escribirunalgoritmoquecalculeyescribaelcuadradode25 2. Dada uncantidadenpesos,obtenerlaequivalenciaendlares,asumiendo quelaunidadcambiaraesundatodesconocido. 3. Calcularelnumerodepulsacionesqueunapersonadebetenerporcada10 segundos de ejercicio, si la formula es: num. pulsaciones = (220 edad)/10 4. Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobresusalarioanterior. 5. Enunhospitalexistentresreas:Ginecologa,Pediatra,Traumatologia.El presupuestoanualdelhospitalsereparteconformealasig.tabla: rea Ginecologa Traumatologia Pediatra Porcentajedelpresupuesto 40% 30% 30%

6. Obtenerlacantidaddedineroquerecibircadarea,paracualquiermonto presupuestal. 7. El dueo de una tienda compra un articulo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.

36

Capitulo III

SentenciasdeControl

8. Todos los lunes, mircoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la personatardaenrecorrerlarutaenunasemanacualquiera. 9. Un alumno desea sabercualsersupromediogeneralenlastresmaterias masdifcilesquecursaycualserelpromedioqueobtendrencadaunade ellas.Estasmateriasseevalancomosemuestraacontinuacin: LacalificacindeMatemticasseobtienedelasig.manera: Examen90% Promediodetareas10% Enestamateriasepidiuntotaldetrestareas. LacalificacindeFsicaseobtienedelasig.manera: Examen80% Promediodetareas20% Enestamateriasepidiuntotaldedostareas. LacalificacindeQumicaseobtienedelasig.manera: Examen85% Promediodetareas15% Enestamateriasepidiunpromediodetrestareas.

3.3. SentenciasdeDecisionoCondicionales
Son aquellas que permiten decidir algo dependiendo del valor que asuma, a lo cual deberejecutarseunaovariasaccionesrelacionadasconesevalor. Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen dos tipos bsicos, las simples y las mltiples. Lasestructurasselectivasodeseleccinseclasificanen: Estructuradeseleccinsimple(SI). Estructuradeseleccindoble(SISINO). Estructuradeseleccinmltiple(ENCASOSEA)

Estructura de Seleccin Simple SI


EnlaestructuradeseleccinsimpleSI,evalaunacondicinlgicay: SilacondicinesverdaderaseejecutalaaccinA.LaaccinApuedeseruna instruccinsimple(unasolainstruccin)ounainstruccin compuesta (un conjuntodeinstruccin). 37

Capitulo III

SentenciasdeControl

Silacondicinesfalsa,nosehacenada. Lacondicinpuedeserelaboradamediantelautilizacindeoperadoresde relacinascomooperadoreslgicosobooleanos

FLUJ ODECONTROLDEUNASENTENCIASIENTONCES

V Condicin

AccinA F

Nota:
Enelcasodeinstruccionescompuestas,estasserndelimitadasporinicioyfin. Pseudocdigo(accinsimple) SI(condicin)entonces instruccinA Pseudocdigo(accincompuesta) SI(condicin)entonces inicio instruccinA1 instruccinA2 . . . instruccinAn fin_si

38

Capitulo III

SentenciasdeControl

Ejemplo
Algoritmo para determinar si un nmero entero ingresado por teclado es positivo o negativoeimprimirelmensaje"FueunplacerServirlo".

AlgoritmoNmeros Variables N Entero Inicio Escribir(Ingreseunnmeroentero) Leer(n) Sin>0Entonces Imprimir('Numeropositivo') Sin<0Entonces Imprimir('Numeronegativo') Imprimir('Fueunplacerservirlo') Fin.

INICIO

Ingreseunnumeroentero N

N>0 Nmero Positivo

N<0 Nmero Negativo

Fueunplacer servirlo

FIN

39

Capitulo III

SentenciasdeControl

Estructura de Seleccin Doble SI SINO


LaestructuradeseleccindobleSISINOevalaunacondicinlgicay: Silacondicinesverdadera,ejecutalaaccinA. Silacondicinesfalsa,ejecutalaaccinB. Tanto la accin A como la accin B pueden ser acciones simples (una sla accin) o accionescompuestas(unconjuntodeacciones).

Nota:
Enelcasodeaccionescompuestas,estasserndelimitadasporinicioyfin.
DiagramadeFlujoSeleccinDoble Pseudocdigo(accionessimples) SI(condicin)entonces accinA casocontrario accinB
F Condicin

AccinA

AccinB

Pseudocdigo(acciones compuestas) SI(condicin)entonces inicio accinA1 accinA2 . . . accinAn fin_si CASOCONTRARIO inicio accinB1 accinB2 . . . accinBn fin_caso_contrario

40

Capitulo III

SentenciasdeControl

Por ejemplo, si se desea saber si una persona es mayor o menor de edad, podemos escribir:
AlgoritmoEdades Variables edad Entero Inicio Escribir(Ingreselaedaddeunapersona) Leer(edad) SI(edad>=18)entonces IMPRIMIR("Mayordeedad") CASOCONTRARIO IMPRIMIR("Menordeedad") Fin_si Fin_alg.
INICIO

Ingreselaedaddeuna
persona

Edad

Edad>=18

Menorde edad

Mayorde edad

FIN

Ejemplo
Unestudiantedeseasabersihaaprobadolaasignaturadeliteratura
AlgoritmoEstudiante Variables calif entero Inicio Escribir(Ingresesucalificacin) Leer(calif) Sicalif>=7Entonces Escribir('Aprobado') CASOCONTRARIO Escribir('Reprobado') Fin_si Fin_alg.
Aprobado

INICIO

Ingresesucalificacin Calif

Calif>=7 Reprobado

FIN

41

Capitulo III

SentenciasdeControl

3.4. SentenciasdeSeleccinAnidadasSI
SedicequeunaestructuraSI(oSISINO)estaanidadacuandoestacontenidadentro deotraestructuraSIodentrodeotraestructuraSISINO.Noexistelmiteencuantoal niveldeanidamiento. Por ejemplo, una estructura SI con tres niveles de anidamiento tendra el siguiente formato: SI(condicinC1)entonces
Inicio accinA1 SI(condicinC2)entonces inicio accinA2 SI( condicinC3)entonces accinA3 fin_si(c2) Fin_si(c1).

Engeneral,elanidamientopodraevitarseusandoeloperadorlgico"y".As,laanterior seleccin SI anidada puede descomponerse en tres estructuras de seleccin simple no anidadasconsecutivas,comosemuestraacontinuacin. SI(condicinC1) accinA1 SI(condicinC1ycondicinC2) accinA2 SI(condicinC1ycondicinC2ycondicinC3) accinA3

Ejemplo
Dadostresnmerosenteros.Determinarculeselmayor.
Algoritmomayor Variables mayor,a,b,centeros Inicio Escribir('Ingresetresnmerosenteros') Leer(a,b,c) SIa>bENTONCES inicio Sia>cEntonces Mayora CasoContrario mayorc Fin_Si CASOCONTARIO inicio

42

Capitulo III

SentenciasdeControl

Sib>cEntonces mayorb CasoContrario mayorc Fin_caso_contrario. Escribir('Elnmeromayores:',mayor) Fin_Si

INICIO Ingrese tres nmeros enteros a,b,c si a>b Casocontrario si a>c

Casocontrario si b>c

Casocontrario

mayor c

mayor b

mayor c

Mayor a

Elnmeromayor es:, mayor

FIN

Estructura de Seleccin Mltiple


La estructura de seleccin mltiple SEGUN permite elegir una la eleccin de o ms acciones accin de entre una lista de varias opciones, usando para ello una variable denominada selector. El selector se compara con una lista de constantes enteras o de carcterC1,C2,...,CnparacadaunadelascualeshayunaaccinA1,A2,...,Any: Sielselectorcoincideconunaconstantedelalista,seejecutalaaccin correspondienteadichaconstante. Sielselectornocoincideconningunaconstantedelalista,seejecutalaaccin Dfcorrespondienteal CASOCONTRARIO,siesqueexiste. Las acciones A1, A2, A3, ..., An pueden ser acciones simples( una sola accin) o accionescompuestas(unconjuntodeacciones).

43

Capitulo III

SentenciasdeControl

EnlaFigurasemuestraelpseudocdigodelaestructuradeseleccinmltiple.

Nota:
Enelcasodeaccionescompuestas,estasnonecesitanestarencerradasentrellaves.
SEGUN(selector)HACER INICIO CASOC1:accinA1 CASOC2:accinA2 CASOC3:accinA3 CASOCn:accinAn CASOCONTARIO accinDf FIN_SEGUN_SEA

SELECTOR

Sentencia1

Sentencia1

Sentencia1

Sentencia1

Sentencia1

SentenciaN

Ejemplo
Elabore un Algoritmo que en la variable result=10realicenlasrespectivasoperaciones. Elalgoritmodebeleeruncarcterytomarunadelassiguientesdeterminaciones: Sies'+'debesumarlavariableresultmas5 Sies''deberestarlavariableresultmenos5 Sies'*'debemultiplicarlavariableresultpor5 Sies'/'debedividirlavariablepara5
AlgoritmoDeterminacion Variables OperadorCaracter resultEntero Inicio result10 Escribir('IngreseunOperador') Leer(operador) SEGNSEAoperadorHACER '+':resultresult+5 '':resultresult5 '*':result result*5 '/':resultresult/5

44

Capitulo III

SentenciasdeControl

Fin_Caso ESCRIBIR(result) Fin_Alg


Inicio

result 10

Ingreseun Operador Operador

OPERADOR + * /

result result+5

result result 5

result result*5

result result/5

Result

FIN

Ejercicios Resueltos
Ejercicio1
Realizarunalgoritmoparadeterminarsiunnmeroingresadoportecladoesmltiplode otro.
INICIO

Algoritmomltiplo Variables a,bentero Inicio Escribir('Ingresedosnmerosenteros') Leer(a,b) Si((amodb)=0)((bmoda)=0) Entonces Escribir('Siesmltiplo') CasoContario Escribir('Noesmltiplo') Fin_Si. Fin_Alg

Ingresedos nmeros

SI

amodb=0 bmoda=0

NO

Siesmltiplo

Noes mltiplo

FIN

45

Capitulo III

SentenciasdeControl

Ejercicio2
Hacer un algoritmo que pida los tres lados de un tringulo, y diga s l Tringulo es Equiltero,IsscelesEscaleno.
Algoritmotringulo Variables L1,L1,L2ENTEROS Inicio Escribir(Ingresetresladosdeuntringulo) Leer(L1,L2,L3) SiL1=L2yL2=L3Entonces Escriba(Equiltero) CasoContrario SiL1=L2oL2=L3oL1=L3Entonces Escriba(Issceles) CasoContrario Escribir(Escaleno) Fin_Si Fin_Si Fin_Si Fin_Algoritmo

INICIO Ingrese tresladosde untriangulo

Casocontrario Casocontrario l1=l2 l2=l3 Escaleno Issceles l1=l2 y si

si

Equiltero

FIN

Ejercicio3
Diseeunalgoritmoquedeterminesiunnmeroesnegativo,positivoocero.
Algoritmo(Formato1) INICIO REALn LEERn SI(n>0) IMPRIMIR"Positivo"

46

Capitulo III

SentenciasdeControl

CASOCONTRARIO SI(n<0) IMPRIMIR"Negativo" CASOCONTRARIO IMPRIMIR"Cero" FIN Algoritmo(Formato2) INICIO REALn LEERn SI(n>0) IMPRIMIR"Positivo" CASOCONTRARIO SI(n<0) IMPRIMIR"Negativo" CASOCONTRARIO IMPRIMIR"Cero" FIN

Ejercicio4
Unascamisassevendena$10dlarescadaunasisecompranmsdetres,ya$12en los dems casos. Escriba un algoritmo que lea un nmero de entrada de camisas compradaseimprimaelcostoTotal.
AlgoritmoCamisas Variables Cantidad Entero Costo Real Inicio Escribir(IngreseElNmeroDeCamisasCompradas) Leer(Cantidad) SiCantidad>3Then Costo Cantidad*10 CasoContrario Costo Cantidad*12 Fin_Si Escribir(Cantidad,CamisasCuestan$,Costo) Fin_Alg.

Ejercicio5
Escribaunprogramaquerecibaelpesodeunacartaenonzascomoentradaeimprima elcostodelportecalculadosegnlareglasiguiente: Laprimeraonzacuesta$.25(dlares) Cadaonzaadicionalcuesta$.04.
Algoritmoonza Variables Onzas Entero Precio Real Inicio Escribir(ingreseelpezoenonzas) Leer(onzas) Si(onzas=1)entonces

47

Capitulo III

SentenciasdeControl

precio (onzas*25) Casocontrario precio (((onzas1)*0.4)+25) Fin_si Escribir(Elpreciototales,precio) Fin_Alg.

Ejercicio6
EnlaPondukaStateUniversity,losveteranosslopagan$30(dlares)porasignatura mientras que los dems ( regulares ) pagan $ 50 por asignatura . Escriba un algoritmo en el que el usuario introduce los datos del estudiante ( Vet o Reg) y el nmero de asignaturas . La salida debe indicar si el estudiante es de lacategora veteranooregulareindicarelnmerodemateriasyloscostosdelacolegiatura.
AlgoritmoUniversidad Variables a,b,ccaracter mat,pagEntero Inicio Escribir('INGRESELOSDATOSDELESTUDIANTE(VET(v)oREG(r))') Leer(c) Escribir('INGRESEELNUMERODEMATERIAS') Leer(mat) Si(c='v')Entonces Pagmat*30 Escribir('Tipoestudiante:Veterano') Escribir('Nmerodematerias:',mat) Escribir('PAGODECOLEGIATURA:',PAG) Fin_Si Si(c='r')Entonces Pagmat*50 Escribir('Tipoestudiante:Regular') Escribir('Nmerodematerias:',mat) Escribir('PAGODECOLEGIATURA:',PAG) Fin_Si Fin_Alg

Ejercicio7
Diseeunalgoritmoqueleatreslongitudesydeterminesiformanonountringulo.Si esuntringulodeterminedequetipodetringulosetrataentre:equiltero(sitienetres lados iguales), issceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales).Considerequeparaformaruntringuloserequiereque:"elladomayorsea menorquelasumadelosotrosdoslados.
Algoritmolongitudes Variables L1,L2,L3,suma,mayorEnteros INICIO Escribir(Ingreselaslongitudesdeuntriangulo) LEER( L1,L2,L3) mayor=L1 //Determinaelladomayor SI(L2>mayor) entonces mayorL2

48

Capitulo III

SentenciasdeControl

SI(L3>mayor) entonces mayorL3 suma( L1+L2+L3mayor) //Determinalasumadelosladosaexcepcindelladomayor SI(mayor<suma) entonces //Determinadequetipodetringulosetrata Inicio SI((L1=L2)y(L2=L3) ) entonces IMPRIMIR("Tringuloequiltero") casocontrario Si((L1=L2)o(L1=L3) o(L2=L3)) entonces IMPRIMIR("Tringuloissceles") Casocontrario IMPRIMIR("Tringuloescaleno") Fin_si Casocontrario IMPRIMIR("Noesuntringulo") FIN.

Ejercicio8
Diseeunalgoritmoqueleatresnmerosylosimprimademayoramenorydemenora mayor
Algoritmoorden Variables n1,n2,n3,mayor,menor,medioenteros INICIO Escribir(Ingresetresnmeros) LEER(n1,n2,n3) menorn1 //Determinaelmenor SI(n2<menor) entonces menorn2 SI(n3<menor) entonces menorn3 mayor=n1 //Determinaelmayor SI(n2>mayor) entonces mayorn2 SI(n3>mayor) entonces mayorn3 medio=(n1+n2+n3mayormenor) //Determinaelnmeromedio IMPRIMIR(menor,medio,mayor) //Imprimeenordenascendente IMPRIMIR(mayor,medio,menor) //Imprimeenordendescendente FIN

Ejercicio9
Imprimirelvalordelosnmerosromanos.
AlgoritmoNum_Rom VARIABLES ChCaracter INICIO Leer(ch) CASOQUEChSEA 'I':Escribir('NumeroUno')

49

Capitulo III

SentenciasdeControl

'V':Escribir('NumeroCinco') 'X':Escribir('NumeroDiez') 'L':Escribir('Numerocincuenta') 'C':Escribir('NumeroCien') 'D':Escribir('Numero500') 'M':Escribir('NumeroMil') Casocontrario Escribir('NoesnumeroRomano') Fin_Caso Fin_Alg

Ejercicio10
Escribir una sentencia CASE que dado un selector entero llamado nombre, imprima el primernombresinombre=1,elprimerApellidosiNombre=2yelsegundoApellidosi Nombreesigual=3
AlgoritmoNombre variables nombreEntero Inicio Leer(nombre) CASOQUEnombreSEA 1:Escribir('Mary') 2:Escribir('Lynn') 3:Escribir('Smith') Fin_Caso Fin_Alg.

Ejercicios Propuestos
EjerciciosIndividuales Desarrolle los siguientes problemas de sentencias Condicionales a un lenguaje algortmicoconsurespectivapruebaescritorioydiagramadeFlujo 1. Dado tres variables enteras num1,num2,num3, encuentre el mayor entre estostresnmerosyalmaceneenunavariableenterallamadamax. 2. EscribaunAlgoritmoqueleadosnmerosenteroscomoentradayescriba el mensaje " Signos Opuestos" solo si uno de los enteros es positivo y el otronegativo. 3. Escriba un Algoritmo que reciba como entrada dos enteros positivos distintos y escriba la diferencia entre el nmero mayor y el menor, asegrese de que su programa escriba 6 tanto cuando la entrada es 9 15 comocuandolaentradaes159 4. Elaborar un Algoritmoparainvertirunacifraalmacenadaenunavariable A de tal manera si ingresa 834 debe darle como salida 438 , el dato ingresadodebeestarenunrangode1y999. 50

Capitulo III

SentenciasdeControl

5. Dados tres nmeros ingresados por teclado, elaborar un Algoritmo para almacenarenunasolavariablelostresnmeroseimprimirlosapantalla. 6. En una Universidad Estatal, los cargos por colegiatura son de $50 (dlares) por materia, con un cargo mximo de $750 independientemente del nmero de asignaturas tomadas. As un estudiante que cursa 12 materias pagara $600, mientras que toma 21 pagaraelcargomximode $750.EscribaunAlgoritmoenelquelaentradaeselnmerodematerias ylacolegiaturaeslasalida. 7. Elaborarun Algoritmoquecalculesuedadactualen(ddmmaa). 8. Suponiendo que se ingresa una vocal por teclado, realice un algoritmo paradeterminarsiesabiertaocerrada. 9. Sedeseaingresarunnmeroportecladocorrespndienteaunacalificacin sedeseasabersuequivalencia: 1920:Sobresaliente 1618:MuyBuena 1415:Buena 1213:Regular 11menos:Insuficiente 10. Elaborarunprogramautilizandounmen: N:Nombredelcliente D:Direccin T:Telfono C:Ciudad F:Fin 11. ElAlgoritmodebepermitirelegirunaopcin,lacualsedebeasignarauna variabledetipocarcter.Elusuariopuedeintroducirlaletramaysculao minscula. 12. ElaboreunAlgoritmoqueleadosvariablesenterasayb.Elprogramadebe leeruncarcterytomarunadelassiguientesdeterminaciones: Sies'+'debesumarlasdosvariables Sies''deberestarlasdosvariables Sies'*'debemultiplicarlasdosvariables Sies'/'debedividirlasdosvariables Sies'%'debeobtenerelresiduodeladivisin. EjerciciosGrupales Desarrolle los siguientes problemas de sentencias Condicionales a un lenguaje algortmicoyaundiagramadeflujoconsurespectivapruebaescritorio 1. Calculareltotalqueunapersonadebepagarenunllantera,sielpreciode cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran5omas. 2. En un supermercado se hace una promocin, mediante la cual el cliente obtieneundescuentodependiendodeunnumeroqueseescogealazar.Si elnumeroescogidoesmenorque74eldescuentoesdel15%sobreeltotal 51

Capitulo III

SentenciasdeControl

de la compra, si es mayor o igual a 74 el descuento es del 20%. Obtener cuantodineroseledescuenta. 3. Calcularelnumerodepulsacionesquedebetenerunapersonaporcada10 segundosdeejercicioaerbicolaformulaqueseaplicacuandoelsexoes femeninoes: num.pulsaciones=(220edad)/10 ysielsexoemasculino: num.pulsaciones=(210edad)/10 4. Enunaescuelalacolegiaturadelosalumnossedeterminasegnelnumero demateriasquecursan.Elcostodetodaslasmateriaseselmismo. Se ha establecido un programa para estimular a los alumnos, el cual consiste en lo siguiente: si el promedio obtenido porunalumnoenel ultimo periodo es mayor o igual que 9, se le har un descuento del 30% sobre la colegiatura y no se le cobrara IVA si el promedio obtenidoesmenorque9deberpagarlacolegiaturacompleta,lacual incluyeel10%deIVA.Obtenercuantodebepagarunalumno. 5. El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que consiste en que los dueos de la empresa deben obligatoriamentedepositarenunacuentabancariaunporcentajedelsalario de los trabajadores adicionalmente los trabajadores pueden solicitar a la empresa que deposite directamente una cuota fija o un porcentaje de su salario en la cuenta del SAR, la cual le ser descontada de su pago. Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidadtotaldedineroqueestardepositadoaesacuentacadames,yel pagomensualquerecibir. El gobierno del estado de Mxico desea reforestar un bosque que mide determinado numero de hectreas. Si la superficie del terreno excede a 1 millndemetroscuadrados,entoncesdecidirsembrardelasig.manera: Porcentajedelasuperficiedelbosque Tipoderbol 70% pino 20% oyamel 10% cedro Si la superficie del terreno es menor o igual a un milln de metros cuadrados,entoncesdecidirsembrardelasig.manera: Porcentajedelasuperficiedelbosque Tipoderbol 50% pino 30% oyamel 20% cedro 6. Elgobiernodeseasaberelnumerodepinos,oyamelesycedrosquetendr quesembrarenelbosque,sisesabequeen10metroscuadradoscaben8 pinos, en 15 metros cuadrados caben 15 oyameles y en 18 metros 52

Capitulo III

SentenciasdeControl

cuadrados caben 10 cedros. Tambin se sabe que una hectrea equivale a 10milmetroscuadrados. 7. Una fbrica ha sido sometida a un programa de controldecontaminacin paralocualseefectaunarevisindelospuntosIMECAgeneradosporla fbrica. El programa de control de contaminacin consiste en medir los puntos IMECA que emite la fabrica en cinco das de una semana y si el promedioessuperioralos170puntosentoncestendrlasancindeparar suproduccinporunasemanayunamultadel50%delasgananciasdiarias cuando no se detiene la produccin. Si el promedio obtenido de puntos IMECA es de 170 o menor entonces no tendr ni sancin ni multa. El dueo de la fbrica desea saber cuanto dinero perder despus de ser sometidoalarevisin. 8. En un juego de preguntas a las que se responde Si o No gana quien respondacorrectamentelastrespreguntas.Siserespondemalacualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son: ColondescubriAmrica? LaindependenciadeMxicofueenelao1810? TheDoorsfueungrupoderockAmericano? 9. Unafruteraofrecelasmanzanascondescuentosegnlasiguientetabla: NUM.DEKILOSCOMPRADOS %DESCUENTO 0 2 0% 2.01 5 10% 5.0110 15% 10.01enadelante 20% Determinar cuanto pagar una persona que compre manzanas es esa frutera. 10. Una institucin educativa estableci un programa para estimular a los alumnosconbuenrendimientoacadmicoyqueconsisteenlosiguiente: Sielpromedioesde9.5omasyelalumnoesdepreparatoria, entoncesestepodrcursar55unidadesyseleharun25%de descuento. Sielpromedioesmayoroiguala9peromenorque9.5yel alumnoesdepreparatoria,entoncesestepodrcursar50unidades yseleharun10%dedescuento. Sielpromedioesmayorque7ymenorque9yelalumnoesde preparatoria,estepodrcursar50unidadesynotendrningn descuento. Sielpromedioesde7omenor,elnumerodemateriasreprobadas esde0a3yelalumnoesdepreparatoria,entoncespodrcursar 45unidadesynotendrdescuento.

53

Capitulo III

SentenciasdeControl
Sielpromedioesde7omenor,elnumerodemateriasreprobadas esde4omasyelalumnoesdepreparatoria,entoncespodr cursar40unidadesynotendrningndescuento. Sielpromedioesmayoroiguala9.5yelalumnoesde profesional,entoncespodrcursar55unidadesyseleharun 20%dedescuento. Sielpromedioesmenorde9.5yelalumnoesdeprofesional, entoncespodrcursar55unidadesynotendrdescuento.

Obtenereltotalquetendrquepagarunalumnosilacolegiaturaparaalumnos de profesional es de $300 por cada cinco unidades y para alumnos de preparatoriaesde$180porcadacincounidades. 11. UsandolasentenciaCasoque,elaboreunAlgoritmoqueleauncarctery escribalosiguiente: Sielcarcterrepresentaunnmero,elmensaje'nmero'. Sielcarcteresunaletradela'a'ala'z'letraminscula. Sielcarcteresunaletradela'A'ala'Z' letramayscula. Deotromodoescriba'Carcternovlido'. 12. UsandolasentenciaCASOQUEelaboreunAlgoritmoqueleauncarcter numricoydependiendodelcarcterdeberealizarlosiguiente: Sielcarcteres'5'debeescribirelnmero5 Sielcarcterestcomprendidoentre'6'y'9'esunavariablesedebe almacenarsuvalornumricomselsucesordelvalornumrico. Sielcarcterestcomprendidoentre'6'y'9'esunavariablesedebe almacenarsuvalornumricomenoselanteriordelvalornumrico.

3.5. SentenciasdeBuclesoLazosRepetitivos.
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario utilizarunmismoconjuntodeaccionesquesepuedanejecutarunacantidadespecificade veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en funcin de algn dato dentro del programa).Los ciclos se clasificanen: PARA/DESDE/HASTA/HAGA. MIENTRAS/HACER. REPETIR/HASTA

54

Capitulo III

SentenciasdeControl

Sentencia Para / Desde / Hasta / Haga


El cuerpo de un ciclo PARA es la lnea o grupos de lneas que se van a ejecutar un nmero especifico de veces. Y DE MODO AUTOMTICO CONTROLA EL NMERODEITERACIONESOPASOSATRAVSDELCUERPODELBUCLE
PARAVariableValorInicialHASTAvalorFinalHAGA Sentencia1 Sentencia2 . . SentenciaN Fin_Para
FijarlaVariableIndiceal ValorInicial

VardeControl LmiteInferior LmiteSuperior Si Sentencias

No

Al ejecutarse una sentencia PARA por primera vez, el valor inicial seasignaavariable quesedenominavariabledecontrol,yacontinuacinseejecutalasentenciadelinterior delbuclehastaquesecumplaelvalordellimitesuperior.

Ejemplo
EscribaunAlgoritmoparaimprimirlosnmerosdel1al100
Algoritmosuma Variables IndiceEntero Inicio ParairdesdeIndice1hasta100hacer Escribir(Indice) Fin_Para Fin_Alg.
INICIO

Indice1 hasta100

FIN Indice

55

Capitulo III

SentenciasdeControl

Ejemplo
EscribaunAlgoritmoparacalcularlasumade1+1/2+...+1/50
Algoritmosuma Variables IndiceEntero SumReal Inicio Sum0 ParairdesdeIndice1hasta50hacer Sum(sum+(1/Indice)) Fin_Para Escribir('LASUMATOTALES=',SUM) Fin_Alg.
INICIO Sum 0

Indice1 hasta50

Sum (sum+ (1/Indice))

Lasumatotal es= SUM

FIN

Ejemplo
AlgoritmoparaSumarlosnmerosdel1al100.
AlgoritmoSuma Variables Suma,IndiceEnteros Inicio Suma0 ParairdesdeIndice1hasta100hacer SumaSuma+Indice Escribir('LasumaTotales:',Suma) Fin_Para. Fin_Alg

BuclesAnidados Laestructuradebuclespuedenanidarseinternamente,esdecirsepuedesituarunbucle enelinteriordeotrobucle,AligualquesucedeconlosbuclesMIENTRAS\REPEAT UNTILesposibleponerunbucledentrodeotrobucle,cuandodeanidanbuclessedebe tenerencuidadoqueelbucleinteriorestcompletamentedentrodelbucleexterior.silos buclessecruzannosernvlidos. Ejemplos


ParaIVal_InHastanHaga ParaIVal_InHastanHaga Sentencia1 Sentencia2 Fin_Para Fin_Para.

56

Capitulo III

SentenciasdeControl

ParaIVal_InlHastaval_FinalHaga ParaJ Val_InlHastaval_FinalHaga PARAKVal_InlHastaval_FinalHaga Sentencia1 Sentencia2 Fin_Para Sentencia3 Fin_Para Sentencia4 Fin_Para

Ejemplo
Elaborarunalgoritmoparaobtenerlatablapopulardemultiplicardelosescolares.
AlgoritmoTabla_Multip I,j,Producto Enteros Inicio ParaIrdesdeI1hasta9Haga Escribir(Tabladel,I) ParaIrdesdeJ1hasta10Haga Producto I*J Escribir(I,*,J,=,Producto) Fin_Para Fin_Para Fin_Alg

Ejercicios Resueltos
Ejercicio1
ElaborarundiagramadeFlujoparacalcularlasumatoriadelasiguienteexpresinS=1! +2!+3!+4!+...+N!
AlgoritmoFactorial Variables I,Num,Facto,Suma Enteros Inicio Suma 0 Facto 1 Escribir(IngreseunNmero) Leer(Num) ParaIrdesdeI1hastaNumHaga Facto Facto*I SumaSuma+Facto Fin_Para Escribir(Suma) Fin_Alg

INICIO Suma 0 Facto 1 Ingreseunnmero num

I1hastaNum

Facto Facto*ISuma Suma+Facto

Suma

FIN

57

Capitulo III

SentenciasdeControl

Ejercicio2
Algoritmoquepermiteimprimirlasletrasdelabecedario(elcdigoASCIIdelaletra 'A'es65).
AlgoritmoAbecedario Variables IEntero ACaracter Inicio ParaIrdesdeIndice1hasta25Haga A(chr(65+i)) Escribir('LasletrasdelAbecedarioson:',A) Fin_para Fin_Alg

Ejercicio3
Leer500nmerosenterosyobtenercuantossonpositivos
Algoritmonumero Variables Num,pos,iEnteros Inicio Pos0 ParaIrdesdeIndice1hasta500Haga Escribir('Ingreseunnmero') Leer(num) Sinum>0Entonces PosPos+1 Fin_Si Escribir('Losnmerospositivosson',Pos) Fin_Para Fin_Alg.

Ejercicio4
b Disearunalgoritmoparaelevar(a ).Luegoimprimirelresultado Ejemplo:Entrada2,4Salida16 Entrada4,3Salida64
Algoritmoexponente Variables Base,Exp,resultEnteros Inicio Result1 Escribir('IngreselaBaseyelExponente') Leer(Base,Exp) ParaIrdesdeIndice1hastaExpHaga ResultResult*Base Escribir('Elresultadoes:',Result) Fin_Para Fin_Alg

58

Capitulo III

SentenciasdeControl

Ejercicio5
Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseo EstructuradodeAlgoritmos
Algoritmopromedio Variables Sum,calif,cEnteros Promreal Inicio Sum0 ParaIrdesdec=1hasta7Haga Escribir(Ingresesucalificacin,c) Leer(calif) Sum(sum+calif) Finpara prom(sum/7) Imprimir(prom) Fin.

Ejercicio6
Leer10nmeroseimprimirsolamentelosnmerospositivos
Algoritmopositivos Variables n,numEnteros Inicio ParaIrdesden=1hasta10Haga Escribir('Ingreseunnmeroentero) Leer(num) Si(num>0)entonces Imprimir(num) finsi Finpara Fin.

Ejercicio7
Leer20nmeroseimprimircuantossonpositivos,cuantosnegativosycuantosneutros.
Algoritmonmeros Variables cn,cp,cneg,num,xEnteros Inicio cn=0 cp=0 cneg=0 ParaIrdesdex=1hasta20Haga Escribir('Ingreseunnmeroentero) Leer(num) Sin( num=0)entonces cncn+1 Casocontrario Sinum>0entonces cpcp+1

59

Capitulo III

SentenciasdeControl

Casocontrario cnegcneg+1 Finsi Finsi Finpara Imprimir(cn,cp,cneg) Fin.

Ejercicio8
Leer15nmerosnegativosyconvertirlosapositivoseimprimirdichosnmeros.
Algoritmoconversion Variables num,x,posEnteros Inicio ParaIrdesdex=1hasta15Haga Leer(num) posnum*1 Imprimir(num,pos) Finpara Fin.

Ejercicio9
Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el multiplicando,elmultiplicadoryelproducto.
Algoritmotabla Variables num,x,resulEnteros Inicio Escribir('Ingreseelnmerodelatablademultiplicaragenerarse) Leer(num) ParaIrdesdex=1hasta 12Haga resul(num*x) Imprimir(num,*,X,=,resul) Finpara fin.

Ejercicio10
Supongaquesetieneunconjuntodecalificacionesdeungrupode40alumnos.Realizar un algoritmo para calcular la calificacin media y la calificacin mas baja de todo el grupo.
Algoritmocalificacin Variables sum,baja,calif,aEnteros mediareal Inicio sum=0 baja=9999

60

Capitulo III

SentenciasdeControl

ParaIrdesdea=1hasta40Haga Escribir('Ingresecalificacin) Leer(calif) sum(sum+calif) Si(calif<baja)entonces bajacalif finsi Finpara mediasum/2 Imprimir(media,baja) Fin

Ejercicios Propuestos
EjerciciosIndividuales DesarrollelossiguientesproblemasaunlenguajealgortmicoydiagramadeFlujo 1. 2. 3. 4. 5. 6. Calcularlasumadeloscuadradosdelos100primerosnmerosnaturales. Calcularlasumadecuatronmerosintroducidosporteclado. Calcularlasumadennmerosintroducidosporteclado. Calculareimprimirloscuadradosdel20al50 Calcularlamediaaritmticadennmerosingresadosporteclado Disearunalgoritmoparaimprimirlosnmerosimparesenelrangodel1 al100 7. Calcularlasumadelosnmerosenterosdel1al100 8. Imprimirtodoslosnmerosparesentre2y1000inclusive 9. Leer 100 nmeros. Determinar la media de los nmeros positivos y la mediadelosnmerosnegativos 10. Elaborar un diagrama de flujoquecalculetodaslasordenadasparesdela funcinY=f(x)=x3 +1elalgoritmodebeimprimirlaabcisaylaordenada paralosvalorescomprendidosentre0y30

EjerciciosGrupales DesarrollelossiguientesproblemasaunlenguajealgortmicoydiagramadeFlujo 1. Realizar un programa que lea 50 nmeros e imprima el nmero mayor . Ejemplo sea la serie : 2,3,1,5,8,4,2,6,3,5,6,7,5,7,8. La salida ser : El mayores8 2. SelanzaunapelotahaciaarribaconunavelocidadinicialVode96m/sla alturadelapelotasobreelniveldelsueloluegodetsegundosseencuentra 2 en h(t). Se sabe que h(t) = Vo.t 5t ( h est dado en metros y t en segundos ). Escriba un programa para producir una tabla que presente la alturadelapelotaparacadavalordetde1a8segundos. 3. Escriba un programa interactivo para calificar a un grupo de10alumnos .el programa debe leer el nombre y sus tres calificaciones para cada 61

Capitulo III

SentenciasdeControl

alumno,debecalcularelpromedioparacadaunoydespusdeterminarsi el alumno es aprobado o reprobado se requiere un promedio de almenos 60 para aprobar. Laprimerapartedelasalidadebeserelnombredel alumno ,tres calificaciones, promedio y un mensaje de aprobado o reprobado . La segunda parte debe dar el numero de alumnos que aprobaronyelnumerodelosqueobtuvieronunpromediodealmenos 80 4. Escriba un programa pascal utilizando el ciclo FOR que permita imprimir las letras del abecedario en forma descendente desde la 'Z' .. ' A',( el cdigoASCIIdelaletra'A'es65). 5. Supongamosqueunjardinerotenga30mlinealesdematerial(alambrede pa)paracercarunjardnrectangular,elreadeljardncumplelasiguiente frmulaX*(15X).EscribirunprogramaparadeterminarelvalordeXque produzca la mxima rea probando todos los valores enteros positivos entre10y15,lasalidadebeser: ValordexArea 10 50 11 44 12 . 13 . 14 . Elreamximaes: 6. 5! ( que se lee 'factorial 5') es igual al producto 5.4.3.2.1 Escriba un programa que calcule su factorial Cuando al correr este programa el usuariointroduce5lasalidadebeser:factorial5es120 7. Unapersonadeberealizarunmuestreocon50personasparadeterminarel promediodepesodelosnios,jvenes,adultosyviejosqueexistenensu zonahabitacional.Sedeterminanlascategorasconbaseenlasig,tabla: CATEGORIA EDAD Nios 012 Jvenes 1329 Adultos 3059 Viejos 60enadelante 8. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirn un 15% de descuento si compran mas de 10 kilos. Determinar cuantopagaracadaclienteycuantopercibirlatiendaporesascompras. 9. Enuncentrodeverificacindeautomvilessedeseasaberelpromediode puntos contaminantes de los primeros 25 automviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contaminoydelquemascontamino. 10. Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilmetrosdurante10das,paradeterminarsiesaptoparalapruebade5 62

Capitulo III

SentenciasdeControl

Kilmetros o debe buscar otra especialidad. Para considerarlo apto debe cumplirporlomenosunadelassiguientescondiciones: Queenningunadelaspruebashagauntiempomayora16minutos. Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos. Quesupromediodetiemposseamenoroiguala15minutos.

3.6. SentenciaMientrasHacer
Unbucleolazomientrasesunsegmentodeunalgoritmocuyasinstruccionesserepiten un nmero determinado de veces mientras la condicin sea verdadera. Se debe establecer mecanismo para determinar las tareas repetitivas. Este mecanismo es una condicin que puede serverdaderaofalsayquesecompruebaunavezacadapasoo iteracindelbucle(Totaldeinstruccionesqueserepitenenelbucle) Unbucleconstadetrespartes Decisin CuerpodelBucle Salidadelbucle
MIENTRAS(CONDICION)HACER sentencias CuerpodelBucle Fin:Mientras

CONDICION

Falso

Verdadero Sentencias

La condicin (expresin lgica) se evala antes y despus de cada ejecucin de la expresin lgica, si la condicin es verdadera se ejecuta el bucle , y se es falsa , el controlpasaalasentenciasiguiente.Mientraslacondicinseaverdaderaelbuclese ejecutar,estosignificaqueelbucleseejecutarindefinidamenteamenosque"ALGO" 63

Capitulo III

SentenciasdeControl

enel interior del bucle modifique la condicin haciendo quesuvalorpaseafalso,sila expresinnuncacambiaelvalorentoncesestamoshablandodeuncicloinfinito.

Ejemplo
imprimirlosnmerosdel1al10
AlgoritmoNmeros Variables numEntero Inicio Num0 Mientrasnum<=10Haga Num(Num+1) Imprimir(Num) Fin_Mientras Fin.

INICIO Num 0

No Num<=10

Si Num Num+1 FIN

NUM

Ejemplo
Sumarlosnmerosdel1al100.
AlgoritmoSuma Variables suma,numEntero Inicio Suma0 Num0 Mientrasnum<100Haga Num Num+1 SumaSuma+Num Fin_Mientras Imprimir('Lasumatotales:',Suma) Fin.

64

Capitulo III

SentenciasdeControl

Ejemplo
Algoritmoparaimprimirloscuadradosdelosnmerosdel1al10
AlgoritmoNmeros Variables numEntero Inicio Cont0 Num0 MientrasCont<=10Haga Numcont*cont Cont Cont+1 Imprimir(cont,Num) Fin_Mientras Fin.

Contadores
Los proceso repetitivosnecesitannormalmentecontarlossucesosoaccionesinternas delbucle.Unaformadecontrolarunbucleesmedianteuncontador.Uncontadoresuna variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteracin.Unbloquecontroladoporcontadorconstadetrespartes: Inicializacindelavariabledecontroldelbucle Comprobacindelvalordelavariabledecontroldelbucle Incrementodelvalordelavariabledecontroldelbucle. Ejemplo.Pseudocodigopararepetir50veceseimprimirsuvalor
AlgoritmoNmeros Variables contadorEntero Inicio Contador1{Inicializacindelcontador} Mientascontador>=50Hacer{Elbucleseejecuta50veces} Imprimir(Contador){Salidadel1,2,3,4,..50} Contador:=Contador+1{contadorseincrementa+1} Fin_Mientras

Acumulador
Un acumulador o totalizador es una variable cuya misin es almacenar cantidades variablesresultantesdesumassucesivas.Realizalamismafuncinqueuncontadorcon diferencia de que el incremento o decremento de cada suma es variable en lugar de constantecomoeselcasodelcontador.Unbloquecontroladoporacumuladorconsta: Inicializacindelavariabledecontroldelbucleencero Asignacindelavariablealamismavariablemaselvalordelavariablede controldelbucle. 65

Capitulo III

SentenciasdeControl

Ejemplo
Pseudocodigoparasumarlos10primerosnmeros
AlgoritmoNmeros Variables Sum,contEntero Inicio Cont0 Suma0 Mientrascont<=10Hacer Suma(suma+numero) numero(numero+1) Fin_Mientras Imprimir(Suma) Fin_Alg

Bucles Infinitos
Un peligro de un ciclo MIENTRAS es que la condicin nunca se satisfaga, los bucles infinitosnointencionadossedebenevitarnormalmente.

Ejemplo
contador:=10 Mientrascontador<>20Hacer Leer(numero){CicloInfinito} suma:=suma+numero contador:=contador+3 Fin_Mientras

Ejercicios Resueltos
Ejercicio1
Hacerunalgoritmoparaimprimirlosnmerosparesdel2al10
AlgoritmoPares Variables ParEntero Inicio Par2 Mientraspar<=10Hacer Imprimir(par) ParPar+2 Fin_Mientras Fin_Alg

Ejercicio2
Realice un Algoritmo en que el usuario introduzca enteros positivos entre 1 y 5. El programadebeinformaralusuariocuandohayaescritounenteroquehacequelasuma 66

Capitulo III

SentenciasdeControl

delosnmerosdadospasede21.AdemselmensajeMASDE21sedebeimprimirla sumayelltimoenterointroducido.
Algoritmoent_pos Variables sum,numEntero Inicio Sum0 Mientrassum<=21Haga Escribir('Ingreseunnumeroenteroentre1..5') Leer(num) Si((num>0)y(num<=5))Entonces sum:=sum+num CasoContrario Escribir('ErrorIngreseotronumero') Fin_si Imprimir('MASDE21') Imprimir('LaSumaes:',sum) Imprimir('ElNumeroes:',num) Fin.

Ejercicio3
Laspotenciasde2son1,2,4,8,16,32,64,etc.Paraobtenerlasiguientepotenciade2se multiplica la anterior por 2. Usando un ciclo MIENTRAS escriba un Programa que imprimalaprimerapotenciade2quepasemsde1000
AlgoritmoPotencia variables potEntero Inicio Pot1 Mientraspot<=1000Haga PotPot*2 Imprimir('Laprimerapotenciamayorque1000es',pot) Fin.

Ejercicio4
Escribaunalgoritmoparacalcularlasumade:1+1/2+1/3+1/4+1/5+..+1/50
AlgoritmoSuma Variables x,yEntero sum,contReal Inicio Suma0 Cont1 Mientrascont<=50Haga Sumasuma+1/cont Contcont+1 Fin_Mientras Escribir('Lasumaes:',suma) Fin_Alg

67

Capitulo III

SentenciasdeControl

Ejercicio5
Escriba un Algoritmo para calcular el valor mximo de una serie de 10 nmeros ingresadosporteclado.
AlgoritmoMaximo Variables N,max,contEntero Inicio Leer(n) Cont1 Maxn Mientrascont<10Haga Contcont+1 Leer(n) Sin>maxentonces Maxn Fin_Mientras Escribir('ELmayores:',Max) Fin_Alg

Ejercicios Propuestos
EjerciciosIndividuales DesarrollelossiguientesproblemasaunlenguajealgortmicoydiagramadeFlujo 1. Obtenerelpromediodecalificacionesdeungrupodenalumnos. 2. Calcularelpromediodeedadesdehombres,mujeresydetodoungrupode alumnos. 3. Encontrarelmenorvalordeunconjuntodennmerosdados. 4. Encontrarelmayorvalordeunconjuntodennmerosdados. 5. Determinarcuantoshombresycuantasmujeresseencuentranenungrupo denpersonas,suponiendoquelosdatossonextradosalumnoporalumno. 6. Realice un Algoritmo que dado un cierto nmero de monedas de 5,10,20,50sucres,imprimaeltotaldelasuma. 7. Determinar la media de una lista de nmeros positivos terminado con un nmeronegativodespusdelltimonumerovlido. 8. Calcular e imprimir la suma y el producto de los nmeros pares comprendidosentre20y400ambosinclusive 68

Capitulo III

SentenciasdeControl

9. Leer 100 nmeros. Determinar la media de los nmeros positivos y la mediadelosnmerosnegativos 10. Averiguarsidadosdosnmerosledosdelteclado,unoesdivisordelotro.

EjerciciosGrupales DesarrollelossiguientesproblemasaunlenguajealgortmicoydiagramadeFlujo 1. Unapersonadeseainvertirsudineroenunbanco,elcualleotorgaun2% deinters.Cualserlacantidaddedineroqueestapersonatendralcabo deunaosilagananciadecadamesesreinvertida?. 2. Unacompaadesegurostienecontratadosanvendedores.Cadaunohace tresventasalasemana.Supolticadepagosesqueunvendedorrecibeun sueldobase,yun10%extraporcomisionesdesusventas.Elgerentedesu compaadeseasabercuantodineroobtendrenlasemanacadavendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomandoencuentasusueldobaseysuscomisiones. 3. Enunaempresaserequierecalcularelsalariosemanaldecadaunodelosn obrerosquelaboranenella.Elsalarioseobtienedelasig.forma: Sielobrerotrabaja40horasomenosselepaga$20porhora Sitrabajamasde40horasselepaga$20porcadaunadelasprimeras 40horasy$25porcadahoraextra. 4. El Depto. de Seguridad Publica y Transito del D.F. desea saber, de los n autosqueentranalaciudaddeMxico,cuantosentranconcalcomanade cada color. Conociendo elultimo dgito de la placa de cada automvil se puededeterminarelcolordelacalcomanautilizandolasig.relacin: DGITO 1o2 3o4 5o6 7o8 9o0 COLOR amarilla rosa roja verde azul

5. Enunsupermercadouncajerocapturalospreciosdelosartculosquelos clientes compran e indica a cada clientecualeselmontodeloquedeben pagar.Alfinaldeldaleindicaasusupervisorcuantofueloquecobroen totalatodoslosclientesquepasaronporsucaja. 6. Cinco miembros de un club contra la obesidad desean saber cuanto han bajadoosubidodepesodesdelaultimavezquesereunieron.Paraestose deberealizarunritualdepesajeendondecadaunosepesaendiezbsculas 69

Capitulo III

SentenciasdeControl

distintas para as tener el promedio mas exacto de su peso. Si existe diferencia positiva entre este promedio de peso yelpesodelaultimavez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: SUBIO o BAJO y la cantidaddekilosquesubiobajodepeso. 7. Se desea obtener el promedio de g grupos que estn en un mismo ao escolar siendo que cada grupo puede tener n alumnos que cada alumno puede llevar m materias y que en todas las materias se promedian tres calificaciones para obtener el promedio de la materia. Lo que se desea desplegar es el promedio de los grupos, el promedio de cada grupo y el promediodecadaalumno.

8. Escriba un Algoritmo que cuente el nmero de cifras en un entero de entrada(hasta32.000)asparaunaentradade5837lasalidadebeser: 4cifras Asegresedequeelprogramafuncioneparalosnmeros0,1y9 paraelnmero0lasalidadebeser: 1cifra 9. Escribir un programa que pida al usuario escribir un entero diferente de ceroydespusimprimasurecproco.UseuncicloMientrasparaforzaral usuarioavolveraescribirelvalorcuandoescribe0porerror. 10. Escriba un programa para evaluar la funcin y = 4x2 16x + 15, donde x tomalosvaloresde1a2enpasosde1.Paracadaxlasalidadebedarel valor de y y el mensaje POSITIVO o el mensaje NO POSITIVO. El formatodelasalidadebeser: ValordeXValordeY 1.03.00 Positivo 1.12.24Postivo ... ... .. . 2.0 1.00NoPositivo

70

Capitulo III

SentenciasdeControl

3.7. SentenciaRepetir\Hasta
Un bucle o lazo REPETIR / HASTA es un segmento de un algoritmo cuyas instrucciones se repiten un nmero determinado de veces mientras la condicin sea FALSA,cuandolaexpresinsehagaVerdadera,saledellazo. AsescomosedebeescribirunasentenciaRepetir.
REPETIR Sentencia1 Sentencia2 . . SentenciaN HASTA(CONDICIN)

Sentencias1

Sentencias2

Sentencias3

Falso

CONDICION

Verdadero

Nota:
Debido a que HASTA delimita la sentencia, no es necesario poner Inicio y Fin. Elbloquedeinstruccionesseejecutaalmenosunavezyluegoseevalalacondicin. Adems si la expresin lgica o condicin es falsa, se vuelve a Repetir el bucle y se ejecutantodaslassentenciasysevuelveachequearlacondicin.Silaexpresinlgica esVerdadera,sesaledelcicloyseejecutanlasiguienteInstrucciones.

Ejemplo
Algoritmoparasumarlosnmerosdel1al10.
Algoritmosuma Variables suma,numeroEntero Inicio Suma0 Numero 0 REPETIR Numero Numero+1 Suma Suma+Numero HASTANumero=10 Escribir('Eltotales:',Suma) Fin_Alg

71

Capitulo III

SentenciasdeControl

El bucle s repite hasta que elvalordevariableNumeroseiguala10,loquesuceder despusde10ejecucionesdelcuerpodelbucle

Ejemplo
Algoritmoparaimprimirlosnmerosdel1al100
Algoritmonumeros Variables numeroEntero Inicio Numero 1 REPETIR Imprimir(Numero) Numero Numero+1 HASTANumero=101 Fin_Alg

Ejercicios Resueltos
Ejercicio1
Determinar la media de una lista de nmeros positivos terminada con un nmero negativodespusdelltimonmerovlido
Algoritmonum_Pos variables sum,a,nEnteros mediareal Inicio sum0 a0 REPETIR Escribir('Ingreseunnmero') Leer(n) Sin>0Entonces sumsum+n aa+1 Fin_Si HASTAn<0 Imprimir(Mediasum/a) Fin_Alg

72

Capitulo III

SentenciasdeControl

INICIO sum0 a 0

IngreseunNmero n

N>0

sumsum+n a a+1

Falso N<0 Verdadero Media

FIN

Ejercicio2
Sedesealeerportecladounnmerocomprendidoentre1y50(inclusive),ysedesea visualizarsielnmeroesparoimpar.
Algoritmonumero Variables NEntero Inicio Escribir('Ingreseunnmero') Leer(n) REPETIR Si(nmod2)=0Entonces Escribir('Nmeropar') Fin_Si Si(nmod2)<>0Entonces Escribir('Nmeroimpar') Fin_Si HASTA(n>=1)y(n<=50) Fin_alg

Ejercicio3
Algoritmoparahallarelpromediodeunalistadennmeros
Algoritmomedia Variables N,cont Entero X,suma,media Real Inicio Cont 1 Suma 0 Leer(n)

73

Capitulo III

SentenciasdeControl

REPETIR Leer(x) Sumasuma+x Contcont+1 HASTAcont>n Mediasuma/n Escribir(Lamediaes,media) Fin_Alg

Ejercicio4
Algoritmoparaobtenerlasumadelosnmerospareshasta100inclusive S=2+4+6+8,,+100
Algoritmopares Variables suma,Numero Reales Inicio Suma 0 Numero 4 REPETIR Sumasuma+Numero Numero Numero+1 HASTANumero>100 Escribir(Lasumaes:,suma) Fin_Alg

Ejercicio5
Escriba un programa que cuente el nmero de cifras en un entero de entrada (hasta 32.000) as para una entrada de 5837 la salida debe ser: 4 cifras. Asegrese de que el programa funcione para los nmeros 0,1 y 10.Paraelnmero0lasalidadebeser:1 cifra
Algoritmocifras variables aenteros Inicio Repetir Escribir('Ingreseunnmerodesde1..a32000') Leer(a) Hasta(a>=0)y(a<=32000) Si((a>=0)y(a<10))entonces Imprima('1cifra') Si((a>=10)and(a<=99))entonces Imprima('2cifras') Si((a>=100)and(a<=999))entonces Imprima('3cifras') Si((a>=1000)and(a<=9999))entonces Imprima('4cifras') Si((a>=10000)and(a<=32000))entonces Imprima('5cifra') Fin.

74

Capitulo III

SentenciasdeControl

Ejercicios Propuestos
EjerciciosGrupales: DesarrollelossiguientesproblemasaunlenguajealgortmicoydiagramadeFlujo 1. Determinar la cantidad semanal de dinero que recibir cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obreroexcedende40,elrestoseconvierteenhorasextrasquesepaganal dobledeunahoranormal,cuandonoexcedende8cuandolashorasextras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una horanormalyelrestoaltriple. 2. UnapersonaquevadecomprasalatiendaEnano,S.A.,decidellevarun control sobre lo que va comprando, para saber la cantidad de dinero que tendrquepagaralllegaralacaja.Latiendatieneunapromocindel20% dedescuentosobreaquellosartculoscuyaetiquetasearoja.Determinarla cantidaddedineroqueestapersonadeberpagar. 3. Un censador recopila ciertos datos aplicando encuestas para el ultimo Censo Nacional de Poblacin y Vivienda. Desea obtener de todas las personas que alcance a encuestar en un da, que porcentaje tiene estudios de primaria, secundaria, carrera tcnica, estudios profesionales y estudios deposgrado. 4. Un jefe de casilla desea determinar cuantas personas de cada una de las secciones que componen su zona asisten el da de las votaciones. Las secciones son: norte, sur y centro. Tambin desea determinar cual es la seccinconmayornumerodevotantes. 5. Unnegociodecopiastieneunlimitedeproduccindiariade10000copias si el tipo de impresin es offset y de 50 000 sieltipoesestndar.Sihay una solicitud de un el empleado tiene que verificar que las copias pendienteshastaelmomentoylascopiassolicitadasnoexcedandellimite deproduccin.Siellimitedeproduccinseexcedieraeltrabajosolicitado nopodraseraceptado.Elempleadonecesitallevarunbuencontroldelas copias solicitadas hasta el momento para decidir en forma rpida si los trabajosquesesoliciteneneldasedebenaceptarono. 6. Calcularlasumasiguiente:100+98+96+94+...+0enesteorden 7. LeerporcadaalumnodeDiseoestructuradodealgoritmossunumerode control y su calificacin en cada una de las 5 unidades de la materia. Al final que escriba el numero de control del alumno que obtuvo mayor promedio.Supongaquelosalumnostienendiferentespromedios.

75

Capitulo III

SentenciasdeControl

8. El profesor de una materia desea conocer la cantidaddesusalumnosque notienenderechoalexamendenivelacin.Diseeunalgoritmoquelealas calificacionesobtenidasenlas5unidadesporcadaunodelos40alumnosy escribalacantidaddeellosquenotienenderechoalexamendenivelacin. 9. Suponga que tiene usted una tienda y desea registrar las ventas en su computadora.Diseeunalgoritmoqueleaporcadacliente,elmontototal de su compra. Al final del da que escriba la cantidad total de ventas y el numerodeclientesatendidos. 10. Enunsupermercadounaamadecasaponeensucarritolosartculosque vatomandodelosestantes.Laseoraquiereasegurarsedequeelcajerole cobre bien lo que ella ha comprado, por lo que cada vez que toma un articulo anota su precio junto con la cantidad de artculos iguales que ha tomadoydeterminacuantodinerogastaraenesearticuloaestolesumalo queiragastandoenlosdemsartculos,hastaquedecidequeyatomotodo loquenecesitaba.Aydaleaestaseoraaobtenereltotaldesuscompras.

2.11.EleccinEstructurasRepetitivaAdecuada
Laeleccinadecuadadeestructurasrepetitivasesunadelaspartesmsimportantesen el diseo de un algoritmo. La repeticin de sentencias en el interior del bucle requiere definir las condiciones de terminacin delbucleconsumocuidadoparaevitarunbucle incorrectooinfinito. En un bucle Repetir Hasta , la secuencia de sentencias se ejecutar al menos una vez, mientras que en bucle Mientras no siempre se ejecutar el proceso del bucle y en ocasiones(condicinfalsa)no seejecutar.Enlapractica,elbucleMientrasseutiliza conmsfrecuenciaqueelbucleREPETIR. ElPARAsereservaparasituacionesenqueelnmeroderepeticionessepuedepredecir y enumerar fcilmente antes que comience el bucle. Un bucle for se puede reescribir fcilmente(normalmenteconunbucleMIENTRAS)utilizandootrasestructuras. Cuandonoseconocenconanticipacincuntasvecessetienequeejecutarunbucle,el usodelasestructurasMIENTRASeselmasindicado,inclusoauncuandoelbucleest controladoporunsimpleincrementoodecrementodeuncontadorentero. Es frecuente confundir estructuras SI ENTONCES con MIENTRAS, debido al hecho que muchos algoritmos tienen estructuras que implican bucles dentro de los cules se realizan estructurasdedecisinsecundarias. En conclusin podemos decir que para seleccionar un bucle correcto se debe tener en cuenta:

76

Capitulo III

SentenciasdeControl

1. Si el nmero de interacciones se conoce por adelantado, se debe utilizar PARA 2. Si el nmero de interacciones es indeterminado y el bucle no se debe ejecutar cuando la condicin sea falsa la primera vez, se debe utilizar MIENTRAS 3. Sielnmerodeinteraccionesesindeterminadayelbuclesedebeejecutar siemprealmenosunavez,utilizarREPETIRHASTA 4. Si el nmero de interacciones es indeterminada y debe cumplir una cierta condicin(Decisin)yelbuclesedebeejecutarsolounavez,utilizarSI ENTONCESCASOQUE/HAGA

Autoevaluacion Final
Diseeunalgoritmoyflujogramaconlassentenciasmasptimasqueseconsidereusted 1. Elaborar un Algoritmo que lea un carcter y almacene en una variable entera el nmero correspondiente en la tabla ASCII. El programa debe escribiralgunodelossiguientesmensajes: ' MAYOR ' Si la suma de los dgitos que componen el nmero almacenadoesmayora10 ' IGUAL ' Si la suma de los dgitos que componen el nmero almacenadoesiguala10 ' MENOR ' Si la suma de los dgitos que componen el nmero almacenadoesmenora10 SialcarcterledolecorrespondeunnmeroASCIImenora33o mayora126,sedebeescribirelmensaje:'CarcterdeControl'. Independientemente del mensaje escrito, se debe escribiralfinaldela ejecucindelprograma,elmensaje'FINALIZAMOS'. 2. Calcular todas las ordenadas impares de la funcin Y=f(x)= x 3 +2 . El algoritmo debe imprimir la abscisa y la ordenada para los valores comprendidosentre1y50 3. Escriba un algoritmo que calcule la suma de los cuadrados de los 100 2 2 2 2 2 enterosesdecirlaadicinS=1 +2 +3 +4 ++100
n 4. Escribaunalgoritmoqueleaundatonycalculelossiguientesvaloresn y n!

77

Capitulo III

SentenciasdeControl

5. Escribaunalgoritmoquelealosdatosa,nyrycalculealSumatoriade: n1 n Suma=ar yProducto=N!*2 6. Supongaquetieneunatiendaydesearegistrarsusventaspormediodeuna computadora.Diseeunpseudocdigoqueleaporcadacliente: a).elmontodelaventa, b).calculeeimprimaelIVA, c).calculeeimprimaeltotalapagar, d).lealacantidadconquepagaelcliente, e).calculeeimprimeelcambio. Alfinaldeldadeberimprimirlacantidaddedineroquedebehaberen lacaja. 7. Setieneunconjuntode1,000tarjetascadaunacontienelainformacindel censoparaunapersona: 1.Nmerodecenso, 2.Sexo 3.Edad 4.Estadocivil(a.soltero,b.Casado,c.Viudo,d.Divorciado) Disee un pseudocdigo estructurado que lea todos estos datos, e imprima el nmero de censo de todas las jvenes solteras que estn entre16y21aos. 8. Disee un pseudocdigo que lea el valor de un ngulo expresado en radianes y calcule e imprima el valor del seno de dicho ngulo. Se leer tambinelnmerodetrminosdelaserie.SEN(X)=X( X3 /3!)+( 7 X 5 /5!) (X /7!)+..... 9. Calcule lasumadelostrminosdelaserieFIBONACCIcuyosvaloresse encuentranentre100y10,000.

78

Capitulo IV

Arreglos,VectoresyMatrices

CAPITULO

Arreglos,VectoresyMatrices
4.1 4.2 4.3 4.4 Arreglos SentenciasSecuenciales SentenciasdeDecisinoSecuenciales SentenciasdeSeleccinAnidada

4.1. Arreglos
UnArregloesunaestructuradedatosquealmacenabajoelmismonombre(variable)a unacoleccindedatosdelmismotipo. Losarreglossecaracterizanpor: Almacenanloselementosenposicionescontiguasdememoria Tienenunmismonombredevariablequerepresentaatodosloselementos.Para hacerreferenciaaesoselementosesnecesarioutilizarunndicequeespecifica ellugarqueocupacadaelementodentrodelarchivo.

Unidimensionales(Vectores) Tipode Arreglos Bidimensionales(Matrices)

4.2. Vectores
Es un arreglo de N elementos organizados en una dimensin donde N recibe el nombredelongitudotamaodelvector.Parahacerreferenciaaunelementodelvector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual indica una posicinenparticulardelvector.Porejemplo: Vec[x]

Donde:
Vec x Nombredelarreglo Numerodedatosqueconstituyenelarreglo 79

Capitulo IV

Arreglos,VectoresyMatrices

Representacingrficadeunvector
Vec[1] Vec[2] Vec[3] Vec[4] 7 8 9 1 0

LlenadodeunVector
HacerparaI=1a10 Leervec[I] Finpara HacermientrasI<=10 Leervec[I] Finmientras I=1 Repetir Leervec[I] I=I+1 HastaqueI>10

Ejercicios Propuestos
1. Calcularelpromediode50valoresalmacenadosenunvector.Determinar adems cuantos son mayores que el promedio, imprimir el promedio, el numero de datos mayores queelpromedioyunalistadevaloresmayores queelpromedio. 2. Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y as sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante. 3. Llenar un vector de 20 elementos, imprimir la posicin y el valor del elementomayoralmacenadoenelvector.Supongaquetodosloselementos delvectorsondiferentes. 4. Almacenar 500 nmeros en un vector, elevar al cuadrado cada valor almacenadoenelvector,almacenarelresultadoenotrovector.Imprimirel vectororiginalyelvectorresultante. 5. Almacenar300nmerosenunvector,imprimircuantossonceros,cuantos sonnegativos,cuantospositivos.Imprimirademslasumadelosnegativos ylasumadelospositivos. 80

Capitulo IV

Arreglos,VectoresyMatrices

6. Almacenar 150 nmeros en un vector, almacenarlos en otro vector en ordeninversoalvectororiginaleimprimirelvectorresultante. 7. Se tienen almacenados en la memoria dos vectores M y N de cien elementoscadauno.HacerunalgoritmoqueescribalapalabraIgualessi ambosvectoressonigualesyDiferentessinoloson. 8. Sern iguales cuando en la misma posicin de ambosvectoressetengael mismovalorparatodosloselementos. 9. SetieneelvectorAcon100elementosalmacenados.Diseeunalgoritmo que escriba SI sielvectorestaordenadoascendentementeoNOsiel vectornoestaordenado 10. Diseeunalgoritmoqueleaunnumerocualquieraylobusqueenelvector X, el cual tiene almacenados 80 elementos. Escribir la posicin donde se encuentra almacenado el numero en el vector o el mensaje NO si no lo encuentra.Bsquedasecuencial. 11. DiseeunalgoritmoqueleadosvectoresAyBde20elementoscadauno ymultipliqueelprimerelementodeAconelultimoelementodeByluego el segundo elemento de A por el diecinueveavo elemento de B y as sucesivamente hasta llegar al veinteavo elemento de A por el primer elementodeB.Elresultado delamultiplicacinalmacenarloenunvector C. 12. DiseeunalgoritmoquealmaceneenunvectorllamadoFIB[100]los100 primerosnmerosdelaseriefibonacci.

5.3. Matriz
Es un arreglo de M * N elementos organizados en dos dimensiones donde M es el numerodefilasoreglonesyNelnumerodecolumnas. Para representar una matriz se necesita un nombre de matriz se necesita unnombrede matrizacompaadodedosndices. Mat[R,C] Donde R indica el rengln y C indica la columna, donde se encuentra almacenado el dato.

81

Capitulo IV

Arreglos,VectoresyMatrices

Representacingrficadeunamatriz
Mat[R,C] Filao Renglon [R]

1,1 2,1 3,1 4,1

1,2 2,2 3,2 4,2

1,3 2,3 3,3 4,3

1,4 2.4 3,4 4,4

Columna [C]

Llenadodeunamatriz
Porrenglones HacerparaR=1a5 HacerparaC=1a5 LeerMat[R,C] Finpara Finpara Porcolumnas HacerparaC=1a5 HacerparaR=1a5 LeerMat[R,C] Finpara Finpara

Nota
Parahacerelllenadodeunamatrizsedebendeusardosvariablesparalosndicesyse utilizan 2 ciclos uno para los renglones y otro para las columnas a estos ciclos se les llamaciclosanidados(unciclodentrodeotrociclo).

Ejercicios Propuestos
1. Hacer un algoritmo que almacene nmeros en una matriz de 5 * 6. Imprimirlasumadelosnmerosalmacenadosenlamatriz. 2. Hacerunalgoritmoquelleneunamatrizde10*10ydeterminelaposicin [rengln ,columna] del numero mayor almacenado en la matriz. Los nmerossondiferentes. 3. Hacerunalgoritmoquelleneunamatrizde7*7.Calcularlasumadecada renglnyalmacenarlaenunvector,lasumadecadacolumnayalmacenarla enotrovector. 82

Capitulo IV

Arreglos,VectoresyMatrices

4. Hacerunalgoritmoquelleneunamatrizde20*20.Sumarlascolumnase imprimirquecolumnatuvolamximasumaylasumadeesacolumna. 5. Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonalprincipalenunvector.Imprimirelvectorresultante. 6. Hacerunalgoritmoquelleneunamatrizde10*10yquealmaceneenla diagonalprincipalunosyenlasdemsposicionesceros. 7. Hacer un algoritmo que llene una matriz de6*8yquealmacenetodala matrizenunvector.Imprimirelvectorresultante. 8. Hacerunalgoritmoquelleneunamatrizde8*8,quealmacenelasumade los renglones y la suma de las columnas en un vector. Imprimir el vector resultante. 9. Hacerunalgoritmoquelleneunamatrizde5*6yqueimprimacuantosde los nmeros almacenados son ceros, cuantos son positivos y cuantos son negativos. 10. Diseeunpseudocdigoqueescribaelnumerodelahileracuyasumasea mayorquelasdemshileras.Supongaquetodaslashilerassumandiferente cantidad.

83

Bibliografa
1. JEAN Paul Tremblay, B. Bunt Richard "Introduccin a la ciencias de las computadoras(enfoquealgoritmico)"McGrawHill 2. JOYANESAguilarLuis"Metodologadelaprogramacin"McGrawHill 3. JOYANES Aguilar Luis"Problemasdemetodologadelaprogramacin" McGrawHill 4. CORREAUribeGuillermo"Desarrollodealgoritmosysusaplicacionesen Basic,PascalyC(3.Edicin)"McGrawHill 5. Levine Guillermo "Introduccin a la computacin y a la programacin estructurada"McGrawHill 6. JOYANES Aguilar Luis "Fundamentos de programacin, algoritmos y estructuradedatos"McGrawHill 7. JOYANES Aguilar Luis, Luis Rodrguez Baena y Matilde Fernndez Azuela"Fundamentosdeprogramacin,librodeproblemas"McgrawHill 8. Bores Rosario, Rosales Roman "Computacin. Metodologa, lgica computacionalyprogramacin"McGrawHill 9. LOZANOLetvin"Diagramacinyprogramacinestructuradaylibre"Mc GrawHill 10. LOPEZ Roman Leobardo "Programacin estructurada (enfoque algoritmico)"Computec

84

Anotaciones

85

Anotaciones

86

DerechosReservados

Todoslosderechosdeestematerialseencuentranreservados, estoimplicasancionescontracopia,plagiototaloparcial fotocopiadoyxerografiado.

EstaobrasetermindeeditarenAbrildel2007 MatrizOriginalMicrosoftWord2003 LIC.DIEGOROLANDOREALPEB. LIC.WASHINGTONFIERRO Copyright2007

87