Professional Documents
Culture Documents
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.
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.
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.
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
IntroduccinalosAlgoritmos
Introducirmonedas
Seguirhablando
Colgarlabocina
Fin
Sinadiecontesta
Colgarlabocina
Fin
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
Colgarlabocina
Eltelfono
repica
alguien
contesta
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
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).
Sedebenseusarsolamentelneasdeflujohorizontalesy/overticales.
Sedebeevitarelcrucedelneasutilizandolosconectores.
Sedebenusarconectoressolocuandoseanecesario.
Nodebenquedarlneasdeflujosinconectar.
Sedebentrazarlossmbolosdemaneraquesepuedanleerdearribahaciaabajo
ydeizquierdaaderecha.
Todotextoescritodentrodeunsmbolodeberserescritoclaramente,evitando
elusodemuchaspalabras.
14
Capitulo I
IntroduccinalosAlgoritmos
DIAGRAMA
DESCRIPCIN
Establece el INICIO y el FIN.
Volumen de DATOS.
TECLA
DO
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>
CabeceradelAlgoritmo
Constantes
Variables
Inicio
Expresionesy
Sentencias
Fin_Alg
Cabecera
Comienza con la palabra ALGORITMO, la cual est seguida por el nombre del
programacompleto,Ejemplo:Algoritmosuma
18
Capitulo II
EstructurasAlgortmicas
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
PorsuUso
DeTrabajo
Contadores
Acumuladores
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.
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.
negativos
51340 5
20 254
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(+,,*,/,^,.,,,,<,>..)
22
Capitulo II
EstructurasAlgortmicas
OperacionesdeAsignacin
Eselmododedarlevalorestipodedatoaunavariable.Laasignacindeunvalora
unaVariableserepresentaconel smbolo
NOMBREDELAVARIABLE
EXPRESIN
Ejemplos:
A,B,C,D Entero
valoresenteros
SignificaquealavariableA,B,C,Dselehaasignadoelsoportede
A
B
C
D
SignificaquealavariableAselehaasignadoelvalor5
LavariableBselehaasignadoelvalor16
LavariableCselehaasignadoelvalorde80
LavariableDselehaasignadoelvalor8
5
5+3+8
B*A
B/2
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
EstructurasAlgortmicas
Capitulo II
Ejemplo:
3<6
0>1
4=2
(42)<(34)
Verdadero
Falso
Falso
Falso
OperadoresLgicos
Losoperadoreslgicosobooleanosbsicosson
OPERADORSIGNIFICADO
no(not)
negacinde
Y(and)
interseccinde
O(Or)
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
Verdadero
(a<b)and(b<c)
(10<20)and(20<30)
VandV
V
25
Capitulo II
EstructurasAlgortmicas
PrioridadoPrecedenciadelosOperadores
LasExpresionesquetienedosomsoperandosrequierenunasreglasmatemticasque
permitandeterminarelordendelasoperacionesyestasson:
Lasoperacionesqueestnencerradasentreparntesisseevalanprimero.Si
existendiferentesparntesisanidados(Interioresunosaotros)lasexpresiones
msinternasseevalanprimero
Lasoperacionesaritmticasdentrodeunaexpresinsuelenseguirelsiguiente
ordendeprioridad:
1.()
2.^
3.*,/,Mod,Not
4.+,,And
5.>,<,>=,<=,<>,=,Or
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
EstructurasAlgortmicas
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
Arctan
(X)
Arco tangente de x
Entero o real
Real
Coseno de x (radianes)
Entero o real
Real
Calcula e x
Entero o real
Real
Redondea el valor de x al
entero ms prximo
Real
Entero
Calcula el cuadrado de x
Entero o real
Igual que x
Entero o real
Real
Cos (x)
Exp (x)
Round(x)
sqr (X)
Sqrt(X)
Real
Entero
Chr(x)
Entero o real
Carcter
Ord(x)
Devuelve el carcter de un
entero x
Carcter
Entero
Pred(x)
Devuelve un entero de un
carcter
Entero carcter o
booleano
Igual que x
Trunc(X)
Succ(x)
Devuelve el predecesor de
x
Igual que x
Entero carcter o
booleano
Devuelve el sucesor de 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
Tiposde
Sentencias
Condicionales
Cclicas
Asignacin
Entrada
Salida
Simples
Mltiples
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)
Ejemplos
Lasiguienteinstruccindeentrada,obtienelaedaddeunapersonadesdeundispositivo
deentrada,comoelteclado,yloalmacenaenlavariablellamadaedad:
LEER(edad)
Lasiguienteinstruccindesalida,muestraelcontenidodelavariablesueldoNetoenun
dispositivodesalidacomolapantalla:
IMPRIMIRsueldoNeto
32
Capitulo III
SentenciasdeControl
Ejercicios Resueltos
Ejercicio1
Algoritmoparasumardosnmeros
AnlisisdelProblema
INICIO
Entradas:
valor1(VariableA)
valor2(VariableB)
Salidas:
Lasumadelvalor1msvalor2(VariableResult)
Variables:
A,B,Resultdetiposdedatosenteros
Ingresedos#s
ALGORITMOSUMA
Variables
A,B,Result ENTEROS
INICIO
Escribir(Ingresedos#s)
Leer(A,B)
Result (A+B)
Escribir(Result)
FINALG
PruebadeEscritorio
A B
RESULT
5 6
11
A,B
Result (A+B)
Result
FIN
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)
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
Nota:
Enelcasodeaccionescompuestas,estasserndelimitadasporinicioyfin.
DiagramadeFlujoSeleccinDoble
Pseudocdigo(accionessimples)
SI(condicin)entonces
accinA
casocontrario
accinB
F
V
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.
INICIO
Ingresesucalificacin
Calif
Calif>=7
Aprobado
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
Casocontrario
Casocontrario
mayor c
a>b
si
Casocontrario
b>c
mayor b
mayor c
si
a>c
Mayor a
Elnmeromayor
es:, mayor
FIN
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
Siesmltiplo
NO
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
si
l1=l2
y
Casocontrario
si
l1=l2
l2=l3
Escaleno
Issceles
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
Capitulo III
SentenciasdeControl
Capitulo III
SentenciasdeControl
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
FijarlaVariableIndiceal
ValorInicial
VardeControl
LmiteInferior
LmiteSuperior
No
Si
Sentencias
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
Disearunalgoritmoparaelevar(ab).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
en h(t). Se sabe que h(t) = Vo.t 5t2 ( 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
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
Capitulo III
SentenciasdeControl
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
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
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
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
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
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
enterosesdecirlaadicinS=12 +22+32+42 ++1002
4. Escribaunalgoritmoqueleaundatonycalculelossiguientesvaloresnn y
n!
77
Capitulo III
SentenciasdeControl
5. Escribaunalgoritmoquelealosdatosa,nyrycalculealSumatoriade:
Suma=arn1
yProducto=N!*2n
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!)+(
X 5 /5!) (X7/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
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