Sei sulla pagina 1di 143

ALGORITMIA

Captulo 1:
1.1

Introduccin a los sistemas de Cmputo

Definicin de computadora

na computadora es una m!"uina electrnica di#ital capa$ de procesar informacin % producir datos de salida para lo cual re"uiere de ciertos datos de entrada. &l t'rmino di#ital alude al (ec(o de "ue la infor) macin almacenada % procesada por la computadora esta representada mediante cdi#os num'ricos *inarios formados por ceros % unos +, % 1- conocidos como *its. Lo sorprendente de las computadoras es "ue pueden reali$ar operaciones comple.as cuando sus circui) tos electrnicos solo pueden comparar dos *its o cam*iar un *it de , a 1. /Cmo es esto posi*le01 pues de*ido a las altas 2elocidades con "ue se e.ecutan estas operaciones sencillas. 3ara los inform!ticos (a% una diferencia entre datos e informacin. Dato 2endra a ser la representa) cin de al#4n (ec(o1 concepto o entidad real1 es la materia prima de la informacin. Informacin 2endra a ser el resultado del procesamiento de los datos. 3ara este curso no (aremos distincin entre dato e informacin sino "ue (a*laremos de datos de entrada % datos de salida. n sistema de procesamiento de la informacin in2olucra tres componentes: datos de entrada1 proce) sador % datos de salida1 como se muestra en la 5i#.1.1. &l procesador transforma los datos de entrada en datos de salida e.ecutando instrucciones precisas % detalladas "ue se denominan pro#ramas.

5i#ura 1.1 3roceso de informacin en una computadora na computadora esta compuesta por dos elementos fundamentales: 6ard7are % 8oft7are. &l 6ard7are es la parte fsica de la computadora. &s a"uello "ue podemos 2er % tocar. &sta for) mado por el monitor1 el teclado1 el ratn1 la unidad del sistema1 la impresora1 etc. &l 8oft7are es la parte l#ica de la computadora % esta formado por el con.unto de pro#ramas "ue controlan el funcionamiento de la computadora.

1.9

&l (ard7are

Daremos a"u una *re2e descripcin de las partes fundamentales del (ard7are sin entrar en detalles internos. 8in (acer distincin de tama:os1 cual"uier computadora1 puede descomponerse fsicamente en cuatro partes fundamentales: 3rocesador +llamado tam*i'n nit-. nidad Central de 3roceso o C3 1 del in#l's1 Central 3rocessin#

Memoria principal. Dispositi2os de entrada % salida &;8. Memoria au<iliar.

1.9.1 3rocesador o nidad Central de 3roceso


&l procesador es el cere*ro de la computadora1 el responsa*le de mantener en funcionamiento coordi) nado todas las partes de la computadora e.ecutando instrucciones precisas % detalladas "ue son los pro#ramas. &l procesador esta compuesto de dos partes fundamentales "ue son: La nidad Aritm'tica) L#ica % la nidad de Control. La nidad Aritm'tica)L#ica1 es la responsa*le de efectuar operaciones aritm'ticas +suma1 resta1 mul) tiplicacin % di2isin- % operaciones l#icas +comparaciones *ooleanas-. La nidad de Control1 es la responsa*le de la sincroni$acin de todas las acti2idades de la computado) ra. Decide cuando se o*tendr!n datos de los dispositi2os de entrada para ser lle2ados a la memoria1 cuando se efectuar!n c!lculos con los datos almacenados en la memoria % cuando se lle2ar!n datos de la memoria a los dispositi2os de salida.

1.9.9 Memoria principal


La memoria principal es el espacio donde se almacenan los datos e instrucciones "ue se re"uieren para la reali$acin de un proceso. &n caso "ue los datos e instrucciones no "uepan nte#ramente en la me) moria principal1 entonces ser!n car#ados (acia ella por etapas1 pero en todo caso1 cual"uier operacin se reali$a en *ase al contenido actual de la memoria principal. A la memoria principal se la conoce tam) *i'n como memoria RAM +Random Access Memor%1 Memoria de Acceso Aleatorio-. Las caractersticas m!s rele2antes de la memoria principal son las si#uientes: La memoria principal es un espacio de almacenamiento temporal por lo "ue los datos no #uar) dados en un medio de almacenamiento permanente se pierden al apa#ar la computadora o al salir un pro#rama de la memoria. &st! ntimamente li#ada al procesador por lo "ue el acceso a la memoria principal es mu% r!pido lo "ue le permite al procesador acceder a la memoria principal millones de 2eces por se#undo. &s de tama:o reducido en comparacin a la memoria secundaria La unidad m!s pe"ue:a de memoria es el *it. n *it puede almacenar un slo d#ito *inario1 , 1. Le si#ue a esto el *%te1 "ue esta compuesto de = *its. n *%te tiene la capacidad de almacenar un car!cter de informacin. &n cam*io para almacenar informacin num'rica se re"uiere de ma%or memoria "ue puede ser 91 > e incluso = *%tes consecuti2os1 dependiendo del tipo de dato num'rico. Con cada *%te de memoria se asocian dos cosas: direccin % contenido +la com*inacin de ceros % unos "ue puede almacenar-. &l procesador accede a una posicin de memoria en *ase a su direccin. 8iempre "ue una nue2a informacin se almacene en una posicin de memoria1 se destru%e la informa) cin actual almacenada en esa posicin % no se puede recuperar. La memoria principal puede su*di2idirse en: memoria ROM1 &3ROM1 RAM1 DRAM1 CMO8 % CAC6&. La memoria a "ue se (i$o referencia en la descripcin anterior se denomina memoria RAM +Random Ac) cess Memor%1 Memoria de Acceso Aleatorio-. 3ara una descripcin so*re los otros tipos de memoria puede recurrir a cual"uier literatura t'cnica al respecto.

1.9.? Dispositi2os de entrada;salida +&;8Tam*i'n conocidos como perif'ricos de &;8. &stos dispositi2os permiten comunicar la computadora con el usuario permitiendo el in#reso de datos a la computadora +dispositi2os de entrada- % la salida de in) formacin de la computadora +dispositi2os de salida-. &s decir1 los dispositi2os de &;8 son una interfa$ entre el usuario % la computadora. &ntre los dispositi2os de entrada m!s comunes se cuentan el teclado % el ratn. &<isten otros dispositi) 2os de entrada como el scanner1 el l!pi$ ptico1 etc. &ntre los dispositi2os de salida m!s comunes tenemos: la pantalla % la impresora. &<isten otros dispo) siti2os de salida como los tra$adores de #r!ficos1 #raficadores1 etc.

1.9.> Memoria au<iliar


8on dispositi2os en los "ue se puede almacenar datos % pro#ramas de forma permanente. &ntre los dis) positi2os m!s comunes de este tipo tenemos: los discos duros % los discos fle<i*les. &<isten otros dispo) siti2os de almacenamiento permanente como las unidades de cinta ma#n'tica1 los discos compactos1 los discos pticos1 etc. Las caractersticas m!s rele2antes de la memoria secundaria son las si#uientes: &s un espacio de almacenamiento permanente. n disco duro tiene un espacio de almacenamiento muc(simo mas #rande "ue el proporcionado por la memoria principal. As un disco duro de =, #i#a*%tes es muc(o m!s #rande la capacidad de almacenamiento de la memoria principal +asumiendo una memoria principal tpica de ?9 me) #a*%tes de RAM-. &l procesador no act4a directamente con la memoria secundaria por lo "ue el acceso a la memo) ria secundaria es lento.

5i#ura 1.9. Or#ani$acin fsica de una computadora

1.?

&l soft7are

&l 8oft7are es el con.unto de datos % pro#ramas "ue usa la computadora % se #uardan en al#4n disposi) ti2o del (ard7are como1 por e.emplo1 un disco duro. &l soft7are es intan#i*le +usted no lo puede tocar-. 8upon#a "ue tiene un disco fle<i*le conteniendo un pro#rama1 cuando usted *orra el pro#rama los !to) mos % mol'culas del disco son los mismos "ue antes1 pero a(ora el pro#rama %a no est!. 8e (a remo2i) do al#o intan#i*le sin alterar el medio tan#i*le en el "ue esta*a almacenado.

n pro#rama es un con.unto detallado de instrucciones "ue instru%en al procesador para reali$ar deter) minados procesos. Los datos pueden ser cual"uier informacin "ue necesite el pro#rama: caracteres1 n4meros1 im!#enes1 etc. 3ara efectos de la memoria de la computadora +principal % secundaria- no (a% nin#una distincin entre pro#ramas % datos.

1.?.1 8oft7are especfico o de aplicacin


8on pro#ramas "ue tienen una aplicacin especfica tales como la preparacin de nminas1 procesa) miento de te<to1 procesamiento de im!#enes1 procesamiento de audio1 etc. &s decir1 son pro#ramas "ue responden a una necesidad concreta % "ue a%udan a las persona a reali$ar sus tra*a.os. &l mercado del soft7are esta lleno de soft7are de aplicacin. Al#unos pro#ramas de apli) cacin conocidos son: Microsoft @ord1 Microsoft &<cel1 Microsoft 3o7er 3oint1 Ado*e 3(otos(op1 Corel Dra71 @inAip1 Internet &<plorer1 etc.

1.?.9 8oft7are de sistema


8on pro#ramas indispensa*les para el funcionamiento de la computadora. &stos pro#ramas son1 *!si) camente1 el sistema operati2o1 los compiladores e int'rpretes % los pro#ramas de utilidad. &l soft7are de sistema m!s importante es el sistema operati2o. &l sistema operati2o es una coleccin comple.a de muc(os pro#ramas % es el encar#ado de coordinar el funcionamiento de los componentes (ard7are % soft7are de un sistema de cmputo. &l sistema operati2o es responsa*le de iniciar la e.ecu) cin de otros pro#ramas proporcionando los recursos necesarios. Cuando un pro#rama esta en e.ecu) cin1 el sistema operati2o mane.a los detalles del (ard7are para dic(o pro#rama. 3or e.emplo1 cuando desde un pro#rama procesador de te<tos1 como Microsoft @ord1 usted decide #uardar el documento "ue (a ela*orado1 es el sistema operati2o el encar#ado de almacenar el documento como un arc(i2o en el disco duro o disco fle<i*le1 se#4n (a%a ele#ido. As pues1 entre muc(as otras cosas1 el sistema operati2o se encar#a del almacenamiento % recuperacin de arc(i2os. Los sistemas operati2os pueden ser: mo) nousuarios +un slo usuario- % multiusuarios +diferentes usuarios-1 atendiendo al n4mero de usuarios % monocar#a +una sola tarea- o multitarea +m4ltiples tareas-1 atendiendo al n4mero de tareas +procesos- "ue puede reali$ar simult!neamente Los sistemas operati2os modernos normalmente 2ienen con una interfa$ #r!fica de usuario "ue permite a los usuarios interactuar f!cilmente con el sistema operati2o mediante men4s1 conos1 el ratn % el te) clado. Como e.emplos de sistemas operati2os tenemos los si#uientes: ni<1 @indo7s B=1 @indo7s CT1 @indo7s D31 Linu<1 8olaris % 8%stemE. Los compiladores e int'rpretes son pro#ramas traductores "ue traducen un pro#rama escrito en un de) terminado len#ua.e de pro#ramacin al len#ua.e m!"uina "ue es el len#ua.e del procesador. Cada len) #ua.e de pro#ramacin tiene su propio compilador o int'rprete.

1.>

Len#ua.es de 3ro#ramacin

Len#ua.e: &s una serie de sm*olos "ue sir2en para transmitir uno o mas mensa.es +ideas- entre dos entidades diferentes. A la transmisin de mensa.es se le conoce com4nmente como comunicacin. La comunicacin es un proceso comple.o "ue re"uiere una serie de re#las simples1 pero indispensa*les para poderse lle2ar a ca*o. Las dos principales son las si#uientes: Los mensa.es de*en correr en un sentido a la 2e$. De*e for$osamente e<istir > elementos: &misor1 Receptor1 Medio de Comunicacin % Mensa.e. Len#ua.es de 3ro#ramacin &s un con.unto de sm*olos1 caracteres % re#las +pro#ramas- "ue le permiten a las personas comunicar) se con la computadora.

Los len#ua.es de pro#ramacin tienen un con.unto de instrucciones "ue nos permiten reali$ar operacio) nes de entrada ; salida1 calculo1 manipulacin de te<tos1 l#ica ; comparacin % almacenamiento ; recu) peracin. Los len#ua.es de pro#ramacin se clasifican en: Len#ua.e M!"uina: 8on a"uellos cu%as instrucciones son directamente entendi*les por la com) putadora % no necesitan traduccin posterior para "ue la C3 pueda comprender % e.ecutar el pro#rama. Las instrucciones en len#ua.e m!"uina se e<presan en t'rminos de la unidad de me) moria m!s pe"ue:a el *it +d#ito *inario , o 1-. Len#ua.e de Fa.o Ci2el +&nsam*lador-: &n este len#ua.e las instrucciones se escri*en en c) di#os alfa*'ticos conocidos como mnemot'cnicos para las operaciones % direcciones sim*licas. Len#ua.e de Alto Ci2el: Los len#ua.es de pro#ramacin de alto ni2el +FA8IC1 pascal1 co*ol1 for) tran1 C1 CGG1 etc.- son a"uellos en los "ue las instrucciones o sentencias a la computadora son escritas con pala*ras similares a los len#ua.es (umanos +en #eneral en in#les-1 lo "ue facilita la escritura % comprensin del pro#rama.

Capitulo 9:
9.1

Al#oritmos1 pro#ramas % conceptos fundamentales

Al#oritmo 2s. 3ro#ramas

n Al#oritmo es un con.unto ordenado % finito de pasos o instrucciones "ue conducen a la solucin de un pro*lema. La naturale$a de los pro*lemas 2ara con el !m*ito o con el conte<to donde est!n planteadosH as1 e<isten pro*lemas matem!ticos1 "umicos1 filosficos1 etc. 8e#4n esto la naturale$a de los al#orit) mos tam*i'n es 2ariada % no todos ellos pueden ser e.ecutados por la computadora. &n este curso con) sideramos a"uellos al#oritmos "ue e<presan soluciones usando re#las cuantitati2as cu%as instrucciones pueden ser introducidas en la computadora1 a este tipo de al#oritmos se denominan Al#oritmos Com) putacionales. &n la resolucin de un pro*lema con la computadora la parte pensante esta en el al#oritmo. As pues la eficacia de un pro#ramador no esta en conocer la (erramienta de pro#ramacin1 cosa necesaria1 sino en sa*er resol2er pro*lemas con la computadora para lo cual se re"uiere conocer un concepto conocido como metodolo#a de la pro#ramacin cu%o e.e central es el al#oritmo. na 2e$ "ue la solucin de un pro*lema (a sido e<presada mediante un al#oritmo el paso si#uiente es con2ertirlo a un pro#rama para lo cual se eli#e un len#ua.e de pro#ramacin. De modo "ue un pro#rama resulta ser la implementacin de un al#oritmo en un determinado len#ua.e de pro#ramacin. &sto si#nifi) ca1 por otro lado1 "ue un al#oritmo es independiente del len#ua.e de pro#ramacin.

5i#ura 9.1 3ro*lema1 al#oritmo % pro#rama

9.9

&l 8eudo cdi#o

&l seudo cdi#o es una (erramienta al#ortmica "ue permite escri*ir pseudo pro#ramas +una imitacin de un pro#rama real- utili$ando un len#ua.e de pseudo pro#ramacin "ue es una imitacin de los len#ua.es de pro#ramacin de alto ni2el. As1 un pseudocdi#o es una com*inacin de sm*olos +G1 )1 I1 ;1 J1 K1 KL1 M1 ML1 NL1 LL1 %1 o1 no-1 t'rminos +Leer1 Imprimir1 A*rir1 Cerrar1 6acer...Mientras1 Mientras...6acer1 3a) ra...Mientras1 etc- % otras caractersticas com4nmente utili$adas en uno o m!s len#ua.es de alto ni2el. Co e<isten re#las "ue determinen "ue es o no es un pseudocdi#o1 sino "ue 2ara de un pro#ramador a otro. &l o*.eti2o del pseudocdi#o es permitir al pro#ramador centrarse en los aspectos l#icos de la solucin e2itando las re#las de sinta<is de un len#ua.e de pro#ramacin. 3osteriormente el pseudocdi)

#o de*e ser traducido a pro#rama usando un len#ua.e de pro#ramacin de alto ni2el como Oa2a1 CGG1 C1 etc. &.emplo 9.1:) Dise:e un al#oritmo para preparar una limonada. ICICIO Llenar una .arra con un litro de a#ua &c(ar el .u#o de tres limones &c(ar cuatro cuc(aradas de a$4car Remo2er el a#ua (asta disol2er completamente el a$4car 5IC &.emplo 9.9:) Dise:e un al#oritmo "ue permita (allar la suma % el promedio de tres n4meros. ICICIO L&&R numero11 numero91 numero? suma L numero1 G numero9 G numero? promedio L suma ; ? IM3RIMIR suma1 promedio 5IC Cotas:

&l t'rmino L&&R si#nifica o*tener un dato de al#4n dispositi2o de entrada1 como el teclado1 % almacenar) lo en una 2aria*le. na 2aria*le es una locali$acin en la memoria "ue tiene un nom*re % cu%o contenido puede cam*iar a lo lar#o de la e.ecucin de un pro#rama. As numero11 numero9 % numero? son 2a) ria*les. &l t'rmino IM3RIMIR si#nifica mostrar el 2alor de una 2aria*le en al#4n dispositi2o de salida1 como la pantalla. 3ara una e<plicacin m!s detallada de estos conceptos 2ea Paria*les e Instrucciones F!sicas de 3ro) #ramacin m!s adelante en este mismo captulo.

9.9.9 Dia#ramas de flu.o


Dia#rama de 5lu.o: 8on sm*olos #r!ficos "ue representan a un al#oritmo. &stos sm*olos est!n estan) dari$ados1 teniendo cada uno un si#nificado uni2ersal. Al#unos de ellos son:

8QMFOLO D&8CRI3CIRC
Indica el inicio % el final de nuestro pro#rama dia#rama de flu.o

Indica la entrada % salida de datos 8m*olo de proceso % nos indica la asi#nacin de un 2alor en la memoria %;o la e.ecucin de una operacin aritm'tica 8m*olo de decisin indica la reali$acin de una comparacin de 2alores

8e utili$a para representar los su*pro#ramas

Conector dentro de p!#ina. Representa la continuidad del pro#rama dentro de la misma p!#ina Conector fuera de p!#ina. Representa la continuidad del dia#rama en otra p!#ina

Indica la salida de informacin por impresora

Indica la salida de informacin en la pantalla o monitor

Lneas de flu.o o direccin. Indican la secuencia en "ue se reali$ar las operaciones

&.emplo 1: &.emplificando el al#oritmo anterior. &l dia#rama de flu.o seria:

inicio
Declaracin de 2aria*les: Cumero11 numero91 nume) ro?1
In#rese el dato numero1

In#rese el dato numero9

In#rese el dato numero?

suma L suma ; ? suma L numero1 G numero9 G numero?

Imprime: 8uma % prome) dio

fin

&.emplo 9: 8e desea calcular el factorial del numero S.


inicio Indice1 fact 5act L 1

3ara indice L11 ..S

5act L fact I indice

Imprimir:fact

fin

9.? Conceptos 5undamentales


&l recurso fundamental utili$ado por un pro#rama es la memoria. &s en la memoria donde un pro#rama almacena sus datos e instrucciones. Los datos se almacenan en locali$aciones en la memoria denomi) nadas 2aria*les. Cada 2aria*le puede almacenar un solo tipo de dato +entero1 real1 caracter1 *ooleano1 etc.% re"uiere de un identificador para poder tener acceso a su contenido. &n esta parte del curso 2e) remos este % otros aspectos fundamentales.

9.?.1 Identificadores
n identificador es un nom*re "ue puede darse a una 2aria*le1 a una constante % en #eneral a cual"uier elemento de un pro#rama "ue necesite nom*rarse. Los len#ua.es de pro#ramacin imponen ciertas re#las para la creacin de identificadores. As1 por e.emplo1 en el len#ua.e C1 e<isten al#unas re#las: &l primer car!cter de*e ser una letra o un #uin *a.o1 % puede contener casi cual"uier com*ina) cin de letras1 n4meros1 % #uiones *a.os pero no puede tener caracteres especiales ni *lancos el cual se le considera como un caract'r. Co puede ser nin#una pala*ra reser2ada del len#ua.e C. As1 por e.emplo1 son 2!lidos los si#uientes identificadores:

SueldoBruto 8ueldo *ruto de un empleado Edad &dad de una persona numero_hijos C4mero de (i.os de un empleado DIAS_SEMANA_7 Com*re de un das de la semana

9.?.9 Tipos de Datos


Los datos son los o*.etos de informacin so*re los "ue act4a un pro#rama. n dato puede ser un simple car!cter como TaT1 un 2alor entero tal como ?U1 un n4mero real tal como 9.?>U o una cadena tal como Val#oritmiaV. &n #eneral puede ser cual"uier cantidad "ue represente una medida1 una ma#nitud1 etc.. A ni2el m!"uina los datos se representan internamente como una secuencia de *its +d#itos , % 1-. Los len#ua.es de alto ni2el e2itan estos mane.os internos mediante el concepto de tipo de dato. &n la ma%o) ra de los len#ua.es de pro#ramacin los tipos de datos se pueden clasificar como: Cum'ricos 8imples L#icos Alfanum'ricos +strin#Tipos de datos Arre#los +Pectores1 Matrices &structurados +Definidos por el usuarioRe#istros Arc(i2os

Tipos de Datos 8imples


Datos Cum'ricos: 3ermiten representar 2alores escalares de forma num'rica1 esto in clu%e a los n4meros enteros % los reales. &ste tipo de datos permiten reali$ar operaciones aritm'ticas co) munes. Datos L#icos: 8on a"uellos "ue solo pueden tener dos 2alores +cierto o falso- %a "ue repre) sentan el resultado de una comparacin entre otros datos +num'ricos o alfanum'ricos-. Datos Alfanum'ricos +8trin#-: &s una secuencia de caracteres alfanum'ricos "ue permiten re) presentar 2alores identifica*les de forma descripti2a1 esto inclu%e nom*res de personas1 direc) ciones1 etc. &s posi*le representar n4meros como alfanum'ricos1 pero estos pierden su propie) dad matem!tica1 es decir no es posi*le (acer operaciones con ellos. &ste tipo de datos se repre) sentan encerrados entre comillas.

9.?.? Paria*les
na 2aria*le es una localidad en la memoria principal "ue se relaciona con ella mediante una direccin1 en la "ue se almacena un dato "ue puede cam*iar a lo lar#o de la e.ecucin del pro#rama. na 2aria*le tiene asociada dos cosas fundamentales: un identificador % un tipo de dato. &l nom*re identifica de manera 4nica la locali$acin de memoria donde se almacena el dato. &l tipo de dato especi) fica la naturale$a del dato "ue puede almacenar la 2aria*le. 8e#4n el tipo de dato de la 2aria*le pode) mos tener 2aria*les enteras1 2aria*les reales1 2aria*les de caract'r1 2aria*les *ooleanas1 etc. &n el #r!fico si#uiente se muestran dos 2aria*les con sus contenidos en memoria. La 2aria*le llamada &dad +de tipo entero- cu%o contenido es 9E % la 2aria*le llamada Descuento +de tipo real- cu%o conteni) do es 9?.UE. &dad 9E Descuento 9?.UE

Instruccin

Tipo de Instruccin

L&&R 2aria*le &ntrada 9.?.> Constantes 2aria*le L e<presin Asi#nacin IM3RIMIR 2aria*le constantes a todos 8alida 8e denominan a"uellos 2alores "ue no cam*ian durante la e.ecucin de un pro#ra) ma. 8e#4n el tipo de dato podemos tener constantes enteras1 constantes reales1 constantes de car!cter % constantes de cadena. Constantes enteras 12, 20300, 15, et ! Constantes reales 3!1"1#, 23"5!"5#, et ! Constantes de car!cter $a$, $B$, $%$, $&$, $'$, et ! Constantes de cadena ()ola(, (Al*oritmos +om,uta ionales(, et ! Constantes l#icas -erdadero, .also Cormalmente los len#ua.es de pro#ramacin permiten dar nom*res a determinadas constantes. 3or e.emplo1 el n4mero de das de la semana +E- es un 2alor constante % puede reci*ir el nom*re C MDIA8.

9.?.U Instrucciones F!sicas de 3ro#ramacin


Las principales instrucciones *!sicas de pro#ramacin son las si#uientes: asi#nacin1 entrada % salida. Instruccin de asi#nacin: consiste en dar a una 2aria*le el 2alor de una e<presin1 el 2alor de otra 2aria*le o el 2alor de una constante. La asi#nacin tiene efecto destructi2o en el sentido "ue destru%e el 2alor pre2io de la 2aria*le "ue reci*e la asi#nacin. Instruccin de entrada: consiste en o*tener un dato de un dispositi2o de entrada1 como el te) clado1 leerlo de un arc(i2o1 etc. % almacenarlo en una 2aria*le. Instruccin de salida: consiste en mostrar el 2alor de una 2aria*le en un dispositi2o de salida como la pantalla1 una impresora1 o almacenarlo en un arc(i2o. Ta*la 9.? Instrucciones *!sicas de pro#ramacin

&.emplo 9.?:) Instrucciones de entrada % de salida La si#uiente instruccin de entrada1 o*tiene la edad de una persona desde un dispositi2o de entrada1 como el teclado1 % lo almacena en la 2aria*le llamada edad: L&&R edad La si#uiente instruccin de entrada1 o*tiene tres n4meros desde un dispositi2o de entrada1 co) mo el teclado1 % los almacena en las 2aria*les num11 num9 % num?: L&&R num11 num91 num? La si#uiente instruccin de salida1 muestra el contenido de la 2aria*le sueldoCeto en un dis) positi2o de salida como la pantalla: IM3RIMIR sueldoCeto La si#uiente instruccin de salida1 muestra el contenido de las 2aria*les monto3a# % monto) Des en un dispositi2o de salida como la pantalla: IM3RIMIR monto3a#1 montoDes &.emplo 9.>:) Instruccin de asi#nacin. La si#uiente instruccin de asi#nacin1 asi#na el 2alor constante 9U a la 2aria*le Wilometros: Wilometros L 9U Antes de la asi#nacin 8i asumimos "ue es la primera 2e$ "ue la 2aria*le Wilometros reci*e una asi#nacin1 entonces su 2alor actual es desconocido: Wilometros 0 Despu's de la asi#nacin: Xilmetros 9U La si#uiente instruccin de asi#nacin1 asi#na a la 2aria*le 2ara el 2alor de la 2aria*le 2ar*: 2ara L 2ar* Lue#o de esto1 am*as 2aria*les tienen el mismo 2alor. Antes de la asi#nacin

Asumamos "ue 2ara % 2ar* tienen actualmente los 2alores mostrados 2ar* 19

2ara 1U Despu's de la asi#nacin 2ara toma el 2alor de 2ar*1 lue#o de lo cual am*as 2aria*les tienen el mismo 2alor. Cote "ue el 2alor anterior de 2ara se destru%e de forma irrecupera*le. montoFru 1?U, 2ar* 19 montoDes 1U, 2ara 19 montoDes La si#uiente instruccin de asi#nacin1 calcula el 2alor de la e<presin del lado derec(o % lo asi#na a la 2aria*le monto3a#: monto3a# L montoFru ) montoDes Operador 8i#nificado Antes de la asi#nacin G 8uma ) Resta montoFru % montoDes tienen los 2alores mostrados % "ue monto3a# I Asumamos "ue actualmente Multiplicacin tiene un 2alor desconocido al no (a*er reci*ido nin#una asi#nacin anterior: ; Di2isin J Residuo de di2isin montoFru 1?U, entera montoDes 1U, monto3a# 0 Despu's de la asi#nacin

9.> &<presiones Aritm'ticas


na e<presin aritm'tica es un con.unto de 2aria*les %;o constantes unidas o relacionadas por par'nte) sis % operadores aritm'ticos. Los operadores aritm'ticos son los si#uientes: Ta*la 9.> Operadores aritm'ticos

&n todos los len#ua.es e<isten los operadores G1 ). I % ; entre otros1 mientras "ue el operador J es pro) pio de C1 CGG % Oa2a. Cotas 1. 8i en una operacin am*os operandos son enteros1 entonces el resultado de la operacin es un entero. 9. 8i en una operacin uno o am*os operandos son reales1 entonces el resultado de la operacin es un real. ?. &l operador ; produce un cociente entero si los dos operandos son enteros. &sto si#nifica "ue se pierde la parte decimal si la di2isin no es e<acta. &sta es una consecuencia de la nota 1. >. &l operador ; produce un cociente real si uno o los dos operandos son reales. &sta es una con) secuencia de la nota 9. U. Todas las e<presiones entre par'ntesis se e2al4an primero. Las e<presiones con par'ntesis ani) dados se e2al4an de dentro a fuera1 el par'ntesis mas interno se e2al4a primero. S. Dentro de una misma e<presin los operadores se e2al4an en el si#uiente orden. 1. Y &<ponenciacin 9. I1 ;1 mod Multiplicacin1 di2isin1 modulo ?. G1 ) 8uma % resta. E. Los operadores en una misma e<presin con i#ual ni2el de prioridad se e2al4an de i$"uierda a derec(a. 3or e.emplo: E ; 9 es i#ual a ? % no ?.U como lo es matem!ticamente. &sto de*ido a "ue E % 9 son enteros % al di2idir dos enteros se pierde la parte fraccionaria1 no se redondea. &n cam*io: E., ; 9 es i#ual a ?.U %a "ue si uno o los dos operandos son reales1 entonces el resultado es real. &n este caso E., es real. &.emplo 9.U:) &<presiones aritm'ticas. sueldoFru L sueldoFas G ,.1UImontoPen numero L centenasI1,, G decenasI1, G unidades e L aI*I* ; ? G +aIa G *- ; +* G c&.emplo 9.S:) Dise:e un al#oritmo "ue determine el cociente % el residuo de una di2isin entera. PARIAFL&8 &CT&RO m1 m ICICIO L&&R m1 n cociente L m;n residuo L mJn IM3RIMIR residuo1 cociente 5IC

8i#nificado Cota: O*ser2e "ue m;n es entero de*ido a "ue am*as 2aria*les son enteras.

9.U &<presiones L#icas


na e<presin l#ica o *ooleana es un con.unto de 2aria*les %;o constantes unidas mediante operadores l#icos % operadores relacionales. na e<presin l#ica solo puede tomar uno de dos 2alores: 2erdadero o falso. Las e<presiones l#icas son ampliamente utili$adas en las estructuras selecti2as % las estructuras repetiti2as. &n la ta*la 9.> se muestran los operadores relacionales % en la ta*la 9.U se muestran los operadores l#icos: Ta*la 9.> Operadores relacionales Operador K KL M ML == =!

ma%or ma%or o i#ual "ue menor menor o i#ual "ue i#ual a diferente de

Operador no +not% +ando +or-

8i#nificado ne#acin con.uncin dis%uncin

Ta*la 9.U Operadores l#icos

&.emplo 9.E:) &<presar las si#uientes condiciones como e<presiones l#icas: a. F es ma%or "ue 9. *. M es menor i#ual "ue U pero ma%or "ue 9U. c. 3 es i#ual a S ma%or "ue Z. d. C es par menor "ue U,. e. M es ma%or "ue A1 F % C. f. A esta en el inter2alo de > a 1,,. #. T es i#ual a 91 ? >. a. F K 9 *. + M ML U - % + M K 9U c. + 3 LL S - o + 3 K Z d. + + C J 9 - LL , - % + C M U, e. + M K A - % + M K F - % + M K C f. + A KL > - % + A ML 1,, #. + T LL 9 - o + T LL ? - o + TLL > &stos operadores se utili$an para esta*lecer relaciones entre 2alores l#icos. &stos 2alores pueden ser resultado de una e<presin relacional.

Capitulo ?:
?.1

8olucin de pro*lemas con la computadora

Introduccin

&timol#icamente1 la pala*ra pro*lema deri2a del #rie#o pro*allein % si#nifica al#o lan$ado (acia delan) te. n pro*lema es un asunto o un con.unto de cuestiones "ue se plantean para ser resueltas. La natura) le$a de los pro*lemas 2ara con el !m*ito o con el conte<to donde est!n planteadosH as1 e<isten pro*le) mas matem!ticos1 "umicos1 filosficos1 etc. Consideramos a"u slo a"uellos pro*lemas cu%a solucin se puede calcular utili$ando una serie de re#las introducidas en la computadora. Co e<iste un m'todo uni2ersal "ue permita resol2er cual"uier pro*lema. &n #eneral1 la resolucin de pro*lemas es un proceso creati2o donde el conocimiento1 la (a*ilidad % la e<periencia tienen un papel importante. &l proceder de manera sistem!tica +so*re todo si se trata de pro*lemas comple.os- puede a%udar en la solucin. &n #eneral1 la solucin de pro*lemas con la computadora se puede di2idir en tres etapas: An!lisis del pro*lema Dise:o del al#oritmo Implementacin del al#oritmo en la computadora

?.9

Definicin del 3ro*lema

&sta fase est! dada por el enunciado del pro*lema1 el cual re"uiere una definicin clara % precisa. &s importante "ue se cono$ca lo "ue se desea "ue realice la computadoraH mientras esto no se cono$ca del todo no tiene muc(o caso continuar con la si#uiente etapa.

?.?

An!lisis del 3ro*lema

&l an!lisis del pro*lema es la se#unda fase en la resolucin de un pro*lema con la computadora. &l o*.e) ti2o del an!lisis es comprender % definir claramente la naturale$a del pro*lema. &n esta etapa es funda) mental esta*lecer con claridad "ue (ar! el pro#rama "ue se pretende construir. Co se puede a*ordar una solucin mientras no se sepa a donde se "uiere lle#ar. 3ara poder definir el pro*lema con precisin se re"uiere especificar con detalle cuales ser!n los datos de entrada % cuales los datos de salida. La forma como se procesar! la informacin de entrada para produ) cir los datos de salida es tarea de la etapa del dise:o del al#oritmoH pero1 en esta etapa puede esta*le) cerse un es*o$o de la solucin. As pues1 el an!lisis del pro*lema comprende los si#uientes aspectos: Definicin del pro*lema. &specificaciones de entrada. &specificaciones de salida. na recomendacin mu% practica es el "ue nos pon#amos en el lu#ar de la computadora % analicemos "ue es lo "ue necesitamos "ue nos ordenen % en "ue secuencia para producir los resultados esperados.

?.>

Dise:o del Al#oritmo

&n esta etapa se constru%e un al#oritmo "ue resuel2a el pro*lema anali$ado1 utili$ando una (erramienta al#ortmica como el pseudocdi#o. A"u se decide como (ar! el al#oritmo para producir los datos de salida so*re la *ase de los datos de entrada. &sto puede re"uerir de acciones secuenciales1 tomas de decisiones % repeticiones de procesos.

3ara un dise:o eficiente del al#oritmo es importante a*ordar la solucin mediante una metodolo#a de dise:o. na estrate#ia popular consiste en aplicar el dic(o romano Vdi2ide % 2encer!sV. &ste m'todo consiste en di2idir el pro*lema en su*pro*lemas m!s simples1 para facilitar la comprensin % solucin del pro*lema. 8i al#4n su*pro*lema toda2a es comple.o puede a su 2e$ su*di2irse en otros su*pro*le) mas. &ste proceso de su*di2isin puede continuar (asta o*tener su*pro*lemas simples de resol2er. A esta metodolo#a de dise:o se conoce como el m'todo del dise:o modular descendente1 de*ido a "ue cada su*pro*lema puede resol2erse mediante un mdulo de pro#rama.

5i#ura 9.1 Dise:o descendente Las caractersticas de un *uen al#oritmo son: De*e tener un punto particular de inicio. De*e ser definido1 no de*e permitir do*les interpretaciones. De*e ser #eneral1 es decir1 soportar la ma%ora de las 2ariantes "ue se puedan presentar en la definicin del pro*lema. De*e ser finito en tama:o % tiempo de e.ecucin.

?.U

3rue*a % Depuracin

Los errores (umanos dentro de la pro#ramacin de computadoras son muc(os % aumentan considera) *lemente con la comple.idad del pro*lema. &l proceso de identificar % eliminar errores1 para dar paso a una solucin sin errores se le llama depuracin. La depuracin o prue*a resulta una tarea tan creati2a como el mismo desarrollo de la solucin1 por ello se de*e considerar con el mismo inter's % entusiasmo. Resulta con2eniente o*ser2ar los si#uientes principios al reali$ar una depuracin1 %a "ue de este tra*a.o depende el '<ito de nuestra solucin.

?.S

Documentacin

&s la #ua o comunicacin escrita es sus 2ariadas formas1 %a sea en enunciados1 procedimientos1 di*u) .os o dia#ramas. A menudo un pro#rama escrito por una persona1 es usado por otra. 3or ello la documentacin sir2e para a%udar a comprender o usar un pro#rama o para facilitar futuras modificaciones +mantenimiento-. La documentacin se di2ide en tres partes: Documentacin Interna: 8on los comentarios o mensa.e "ue se a:aden al cdi#o fuente para (acer mas claro el entendimiento de un proceso. Documentacin &<terna: 8e define en un documento escrito los si#uientes puntos: Descripcin del 3ro*lema Com*re del Autor Al#oritmo +dia#rama de flu.o o seudo cdi#o-

Diccionario de Datos Cdi#o 5uente +pro#rama Manual del suario: Descri*e paso a paso la manera como funciona el pro#rama1 con el fin de "ue el usuario o*ten#a el resultado deseado.

?.E

Mantenimiento

8e lle2a aca*o despu's de terminado el pro#rama1 cuando se detecta "ue es necesario (acer al#4n cam*io1 a.uste o complementacin al pro#rama para "ue si#a tra*a.ando de manera correcta. 3ara po) der reali$ar este tra*a.o se re"uiere "ue el pro#rama este correctamente documentado.

?.=

Implementacin del Al#oritmo en la Computadora

&sta etapa es relati2amente mec!nica % consiste en codificar el al#oritmo si#uiendo las re#las sint!cticas % sem!nticas de un determinado len#ua.e de pro#ramacin. Al resultado de la codificacin se denomina cdi#o fuente o pro#rama fuente. Lue#o de ello el pro#rama fuente de*e ser e.ecutado % pro*ado para 2erificar si los resultados o*tenidos son los esperados. La 2erificacin del pro#rama se efect4a con una amplia 2ariedad de datos de entrada1 llamados datos de test o datos de prue*a1 "ue determinar!n si el pro#rama tiene errores +V*u#sV-. Los datos de prue*a comprenden: 2alores normales de entrada1 2alores e<tremos de entrada "ue comprue*en los lmites del pro#rama % 2alores de entrada "ue comprue*en aspectos especiales del pro#rama. 8i los resultados o*tenidos no son los esperados se procede a depurar el pro#rama. La depuracin consiste en encontrar los errores del pro#rama para efectuar las correcciones pertinentes. As pues1 la implementacin de un al#oritmo en la computadora comprende los si#uientes aspectos: Codificacin del al#oritmo. Perificacin % depuracin de la solucin. &.emplo ?.1 Definicin del pro*lema 8e desea calcular el factorial de un n4mero. Afortunadamente para todos nos "ueda claro "ue es +por su definicin- el factorial de un n4mero. An!lisis del pro*lema De la lectura del pro*lema encontramos los si#uientes datos de entrada % datos de salida: Datos de entrada:

&l n4mero al "ue se le "uiere calcular su factorial Datos de salida: &l n4mero al "ue se le "uiere calcular su factorial &l factorial del n4mero

Dise:o del al#oritmo 3rimer dise:o descendente &n un primer momento el pro*lema puede descomponerse de manera *astante #eneral. &n este caso se (a descompuesto en tres pasos. Inicio 1.Leer el n4mero al "ue se le desea calcular el factorial n 9. C!lculo del factorial ?.Imprimir n % factorial 5in Refinamiento 3ara refinar nuestro al#oritmo es necesario recordar % plantear el modelo matem!tico de la funcin del factorial. 5actorial L 1 si n es i#ual a cero. 5actorial L 1 I 9 I ? I [.I n 8i n K ,

Lue#o de un refinamiento en el su*pro*lema C!lculo del factorial lle#amos al si#uiente dise:o: Inicio 1. Leer n 9. factorial L 1 ;; iniciali$amos la 2aria*le factorial 9. mientras i K n ;; mientras se cumpla "ue i M n 9.1 factorial L factorial I i ;; multiplicamos el factorial por i 9.9 i L i G 1 ;; incremento de la 2aria*le ndice i ?. Imprimir n % factorial 5in 3rue*a % depuracin na prue*a para depurar el al#oritmo es reali$ar la prue*a de escritorio. &sta consiste ir asi#nando 2alo) res a las 2aria*les1 de acuerdo al al#oritmo durante toda su e.ecucin. n i factorial factorial I i S 0 1 1 1 1 9 1 9 ? 9 S > S 9>

U S

9> 19,

19, E9,

E en este momento la condicin no se cumple % se sale del ciclo por lo "ue imprime los "ue tienen las Imprimir n % factorial "ue son S % E9, Documentacin La documentacin interna1 son los comentarios "ue se a#re#aron al al#oritmo % "ue se implementaran en el cdi#o cuando este se reali$ara. La documentacin e<terna seria escri*ir un documento "ue indi) "ue al usuario como utili$ar el pro#rama1 inclu%endo los pasos "ue se si#uieron para resol2er el pro*le) ma.

Mantenimiento &l mantenimiento consistira en "ue1 una 2e$ "ue se tiene el pro#rama % "ue por al#4n moti2o se "uiere modificar %;o "ue se "uiera "ue el pro#rama realice otras tareas1 se procedera a reali$ar los cam*ios %;o adecuaciones necesarias. Con la documentacin esta tarea ser! suficiente para "ue esta la*or la pueda reali$ar cual"uier persona "ue ten#a conocimientos de pro#ramacin.

Capitulo >:
>.1 Asi#nacin

&structuras secuenciales % de &;8

Asi#nacin: La asi#nacin consiste1 en el paso de 2alores o resultados a una $ona de la memoria. Di) c(a $ona ser! reconocida con el nom*re de la 2aria*le "ue reci*e el 2alor. La asi#nacin se puede clasi) ficar de la si#uiente forma: 8imples: Consiste en pasar un 2alor constate a una 2aria*le +aL1U Contador: Consiste en usarla como un 2erificador del numero de 2eces "ue se reali$a un proce) so +aLaG1 Acumulador: Consiste en usarla como un sumador en un proceso +aLaG* De tra*a.o: Donde puede reci*ir el resultado de una operacin matem!tica "ue in2olucre mu) c(as 2aria*les +aLcG*I9;>-.

>.9

8ecuenciales

La estructura secuencial es a"uella en la "ue una accin +instruccin- si#ue a otra en secuencia. Las tareas se suceden de tal modo "ue la salida de una es la entrada de la si#uiente % as sucesi2amente (asta el fin del proceso. na estructura secuencial se representa de la si#uiente forma: Inicio Accion1 Accion9 . . AccionC 5in

La estructura secuencial tiene una entrada % una salida. &n la 5i#ura ?.1 se muestra el dia#rama de flu.o % el seudo cdi#o de una estructura secuencial.

Dia#rama de 5lu.o 8eudo cdi#o Inicio . . accin 1 accin 9 accin 5in ? . .

>.? &ntrada +LecturaLectura: La lectura consiste en reci*ir desde un dispositi2o de entrada +por e.emplo el teclado- un 2alor. &sta operacin se representa en un seudo cdi#o como si#ue: Leer a1 * Donde \a] % \*] son las 2aria*les "ue reci*ir!n los 2alores

>.> 8alida +&scritura&scritura: Consiste en mandar por un dispositi2o de salida +por e.emplo monitor o impresora- un resul) tado o mensa.e. &ste proceso se representa en un seudo cdi#o como si#ue: &scri*e \&l resultado es:]1 R Donde \&l resultado es:] es un mensa.e "ue se desea apare$ca % R es una 2aria*le "ue contiene un 2alor.

>.U &.ercicios
&.ercicio 1: Dise:e un seudo cdi#o "ue (alle el !rea % el permetro de un rect!n#ulo. Considere las si#uientes frmulas: !rea L *ase < altura1 permetro L 9 < +*aseGaltura-. Al#oritmo ICICIO R&AL *ase1 altura1 area1 perimetro L&&R *ase1 altura area L *aseIaltura perimetro L 9I+*aseGaltura- IM3RIMIR area1 perimetro 5IC &.ercicio 9: Dise:e un seudo cdi#o para con2ertir una lon#itud dada en centmetros a pies. Considere "ue: 1 pie L ?,.>= centmetros.

Al#oritmo ICICIO R&AL cpies1 ccent L&&R ccent cpies L ccent;?,.>= IM3RIMIR cpies 5IC &.ercicio ?: Dise:e un seudo cdi#o para con2ertir una lon#itud dada en pies a centmetros. Considere "ue: 1 pie L ?,.>= centmetros. Al#oritmo ICICIO R&AL cpies1 ccent L&&R cpies ccent L cpiesI?,.>= IM3RIMIR ccent 5IC &.ercicio >: na institucin *en'fica europea (a reci*ido tres donaciones en soles1 dlares % marcos. La donacin ser! repartida en tres ru*ros: S,J para la implementacin de un centro de salud1 >,J para un comedor de ni:os % el resto para #astos administrati2os. Dise:e un al#oritmo "ue determine el monto en euros "ue le corresponde a cada ru*ro. Considere "ue: 1 dlar L ?.U9 soles1 1 dlar L 9.,= marcos1 1 dlar L 1.,E euros. Al#oritmo ICICIO R&AL c soles1 cdolares1 c marcos1 ceuros1 ru*ro11 ru*ro91 ru*ro? L&&R csoles1 cdolares1 cmarcos ;; Determina el total en euros ceuros L +csoles;?.U9 G cdolares G cmarcos;9.,=-I1.,E ;; Determina el monto de cada ru*ro ru*ro1 L ceurosI,.S, ru*ro9 L ceurosI,.>, ru*ro? L ceurosI,.9, IM3RIMIR ru*ro11 ru*ro91 ru*ro? 5IC &.ercicio U: &n una competencia atl'tica de 2elocidad el tiempo se mide en minutos1 se#undos % cent') simas de se#undo %1 el espacio recorrido se mide en metros. Dise:e un al#oritmo para determinar la 2elocidad promedio de un atleta en Wm;(r. Considere "ue: 1 (ora L S, minutos1 1 minuto L S, se#undos1 1 se#undo L 1,, cent'simas de se#undo1 1 Wilmetro L 1,,, metros. Al#oritmo ICICIO &CT&RO tmin1 tse#1 tcs#1 espmt R&AL t(or1 2elWm(r L&&R tmin1 tse#1 tcs#1 espmt

;; Determina el tiempo total empleado en (oras t(or L tmin;S, G tse#;?S,, G tcs#;?S,,,, ?9 1, ;; Determina el espacio recorrido en Wilmetros >U U ?9> espWm L espmt;1,,, ;; Determina la 2elocidad en Wm;(r EU 1, 2elWm(r L espWm;t(or S S EU IM3RIMIR 2elWm(r = 1, 5IC = , &.ercicio S: Dise:e un al#oritmo "ue determine la cifra de las unidades de un n4mero entero positi2o. 8olucin 1 An!lisis 3uede compro*arse "ue la cifra de las unidades de un n4mero es i#ual al resto de la di2isin del n4mero entre 1,. O*ser2e para ello las si#uientes di2isiones:

3odemos concluir entonces "ue: unidades L numero J 1, 8iendo J el operador residuo. &ste operador permite o*tener el residuo de una di2isin1 as como ; per) mite o*tener el cociente. Al#oritmo ICICIO &CT&RO numero1 unidades L&&R numero unidades L numero J 1, IM3RIMIR unidades 5IC 8olucin 9

An!lisis &l residuo de una di2isin entera puede o*tenerse tam*i'n sin recurrir al operador J1 de la si#uiente forma:

unidades L numero ) +numero ; 1,- I 1, O*ser2e para esto "ue en la di2isin +numero;1,- los operandos son enteros por lo "ue el cociente ser! un entero. As por e.emplo1 si numero es i#ual a ?9>U1 la di2isin +numero;1,- produce ?9>1 aun"ue matem!ticamente sea ?9>.UH es decir1 se descarta la parte decimal.

Al#oritmo ?9 1, >U ICICIO U ?9> &CT&RO numero1 unidades ?9 1, > L&&R numero > ?9 unidades L numero ) +numero;1,-I1, IM3RIMIR unidades ?9 1, 9 5IC ? &.ercicio E: Dise:e un al#oritmo "ue determine la suma de las cifras de un n4mero entero positi2o de > cifras. An!lisis ?9 1,, >U , 3ara o*tener las cifras de un n4mero podemos proceder mediante di2isiones sucesi2as entre 1,. 3ara el 9> ? efecto1 considere el caso de un n4mero C i#ual a ?9>U: U 9> 1,, U >U 9 >U 1, U >

&n la se#unda % tercera di2isin el di2idendo es el cociente de la di2isin anterior. Las cifras se o*tienen como: unidad L CJ1, cociente L C;1, decena L cocienteJ1, cociente L cociente;1, centena L cocienteJ1, millar L cociente;1, O*ser2e "ue a cam*io de la 2aria*le cociente puede usarse la misma 2aria*le C %a "ue lo "ue interesa es "ue C #uarde el nue2o di2idendo para la pr<ima di2isin. As: unidad L CJ1, C L C;1, decena L CJ1, C L C;1, centena L CJ1, millar L C;1, 3or otro lado1 considerando "ue el n4mero tiene > cifras1 tam*i'n podran o*tenerse las cifras por di2i) siones sucesi2as entre 1,,,1 1,, % 1,. As:

Zue puede e<presarse como:

millar L C;1,,, resto L CJ1,,, centena L resto;1,, resto L restoJ1,, decena L resto;1, unidad L restoJ1, Al#oritmo ICICIO &CT&RO C1 suma1 millar1 centena1 decena1 unidad1 resto L&&R C millar L C;1,,, resto L CJ1,,, centena L resto;1,, resto L restoJ1,, decena L resto;1, unidad L restoJ1, suma L unidad G decena G centena G millar IM3RIMIR suma 5IC &.ercicio =: Dise:e un al#oritmo "ue lea la (ora actual del da 66:MM:88 % determine cuantas (oras1 minutos % se#undos restan para culminar el da. Al#oritmo ICICIO &CT&RO (or11 min11 se#11 (or91 min91 se#91 se#res1 resto L&&R (or11 min11 se#1 ;; Determina la cantidad de se#undos "ue restan para culminar el da se#res L =S>,, ) +(or1I?S,, G min1IS, G se#1;; Determina cuantas (oras1 minutos % se#undos restan para culminar el da (or9 L se#res;?S,, resto L se#resJ?S,, min9 L resto;S, se#9 L restoJS, IM3RIMIR (or91 min91 se#9 5IC

&.ercicio B: Dise:e un al#oritmo para sumar dos tiempos dados en (oras1 minutos % se#undos. Al#oritmo ICICIO &CT&RO (or11 min11 se#11 (or91 min91 se#91 (or?1 min?1 se#?1 totse#1 resto L&&R (or11 min11 se#11 (or91 min91 se#9 ;; Determina la cantidad total de se#undos entre los dos tiempos totse# L +(or1G(or9-I?S,, G +min1Gmin9-IS, G +se#1Gse#9;; Con2ierte totse# a (oras1 minutos % se#undos (or? L totse#;?S,, resto L totse#J?S,, min? L resto;S, se#? L restoJS, IM3RIMIR (or?1 min?1 se#? 5IC &.ercicio 1,: &l sueldo neto de un 2endedor se calcula como la suma de un sueldo *!sico de 8;.9U, m!s el 19J del monto total 2endido. Dise:e un al#oritmo "ue determine el sueldo neto de un 2endedor sa*iendo "ue (i$o tres 2entas en el mes. Al#oritmo ICICIO R&AL 2enta11 2enta91 2enta?1 2entatot1 comision1 sueldoneto L&&R 2enta11 2enta91 2enta? 2entatot L 2enta1 G 2enta9 G 2enta? comision L ,.19I2entatot sueldoneto L 9U, G comision IM3RIMIR sueldoneto 5IC &.ercicio 11: Dise:e un al#oritmo "ue determine el porcenta.e de 2arones % de mu.eres "ue (a% en un saln de clases. Al#oritmo ICICIO R&AL porc2ar1 porcmu. &CT&RO 2arones1 mu.eres1 total L&&R 2arones1 mu.eres total L 2arones G mu.eres porc2ar L 2aronesI1,,.,;total porcmu. L mu.eresI1,,.,;total IM3RIMIR porc2ar1 porcmu. 5IC

&.ercicio 19: &n pases de (a*la in#lesa es com4n dar la estatura de una persona como la suma de una cantidad entera de pies m!s una cantidad entera de pul#adas. As1 la estatura de una persona podra ser ?T 9V + ? pies 9 pul#adas -. Dise:e un al#oritmo "ue determine la estatura de una persona en metros1 conociendo su estatura en el formato in#l's. Considere "ue: 1 pie L 19 pl#1 1 pl# L 9.U> cm1 1 m L 1,, cm.

Al#oritmo ICICIO R&AL estmt &CT&RO cpies1 cpl#s L&&R cpies1 cpl#s estmt L ++cpiesI19 G cpl#s-I9.U>-;1,, IM3RIMIR estmt 5IC &.ercicio 1?: Dise:e un al#oritmo "ue e<prese la capacidad de un disco duro en me#a*%tes1 Wilo*%tes % *%tes1 conociendo la capacidad del disco en #i#a*%tes. Considere "ue: 1 Wilo*%te L 1,9> *%tes1 1 me#a) *%te L 1,9> Wilo*%te1 1 #i#a*%te L 1,9> me#a*%tes. Al#oritmo ICICIO R&AL c#i#a*%te1 cme#a*%te1 cWilo*%te1 c*%te L&&R c#i#a*%te cme#a*%te L c#i#a*%teI1,9> cWilo*%te L cme#a*%teI1,9> c*%te L cWilo*%teI1,9> IM3RIMIR cme#a*%te1 cWilo*%te1 c*%te 5IC

Capitulo U:
U.1

&structuras de 8eleccin

Introduccin

&n la solucin de la ma%ora de los pro*lemas al#ortmicos se re"uieren efectuar tomas de decisiones "ue conducen a la e.ecucin de una o m!s acciones dependiendo de la 2erdad o falsedad de una o m!s condiciones. Como consecuencia de esto se producen cam*ios en el flu.o de control del pro#rama. Dic(o flu.o de control implica rutas "ue de*en ser seleccionadas. 3ara esto1 se utili$an ciertas estructuras de pro#ramacin conocidas como estructuras selecti2as o estructuras de decisin. Las estructuras selecti2as o de seleccin se clasifican en: &structura de seleccin simple +8I-. &structura de seleccin do*le +8I ) 8ICO-. &structura de seleccin m4ltiple +&C CA8O ) 8&A-

U.9

&structura de 8eleccin 8imple 8I

En la estructura de seleccin simple SI, evala una condicin lgica y:


8i la condicin es 2erdadera se e.ecuta la accin A. La accin A puede ser una accin simple +una sola accin- o una accin compuesta +un con.unto de acciones-.

8i la condicin es falsa1 no se (ace nada.


Cota.) &n el caso de acciones compuestas1 estas ser!n encerradas entre lla2es.

Dia#rama de 5lu.o 8eudo cdi#o +accin simple- 8I+ condicin -

accin A

8eudo cdi#o +accin compuesta- 8I+ condicin -^ accin A1 accin A9 . . . accin An _ 5i#ura U.1 &structura de 8eleccin 8imple 3or e.emplo1 si se desea cam*iar el si#no de un n4mero 4nicamente en caso "ue sea ne#ati2o1 podemos escri*ir: 8I+ numero M , numero L )1 I numero 8i el n4mero no es ne#ati2o1 simplemente esta estructura se pasara por alto % se continuara en la si) #uiente instruccin despu's del 8I.

U.? &structura de 8eleccin Do*le 8I ) 8ICO


La estructura de seleccin do*le 8I ) 8ICO e2al4a una condicin l#ica %: 8i la condicin es 2erdadera1 e.ecuta la accin A. 8i la condicin es falsa1 e.ecuta la accin F. Tanto la accin A como la accin F pueden ser acciones simples +una sola accin- o acciones compues) tas +un con.unto de acciones-. Cota.) &n el caso de acciones compuestas1 estas ser!n encerradas entre lla2es. Dia#rama de 5lu.o 8eudo cdi#o +acciones simples- 8I+condicin-

accinA 8ICO accin F

8eudo cdi#o+acciones compuestas8I+condicin-^

Operador K KL M ML == =!

8i#nificado ma%or ma%or o i#ual "ue menor menor o i#ual "ue i#ual a diferente de

accin A1 accin A9 . . . accin An _ 8ICO^ accin F1 accin F9 . . . accin Fn _

Operador no % o

8i#nificado ne#acin con.uncin dis%uncin

5i#ura U.9 &structura de 8eleccin Do*le 3or e.emplo1 si se desea sa*er si una persona es ma%or o menor de edad1 podemos escri*ir: 8I+ edad KL 1= IM3RIMIR VMa%or de edadV 8ICO IM3RIMIR VMenor de edadV &sto imprime VMa%or de edadV si la persona tiene 1= a:os m!s e imprime VMenor de edadV si la perso) na tiene menos de 1= a:os. &n cual"uiera de los casos1 despu's de efectuar la impresin1 se e.ecutar! la primera instruccin "ue si#ue a la estructura 8I...8ICO.

U.>

Operadores L#icos % Relacionales

3ara e<presar condiciones como en el caso de las condiciones de las estructuras selecti2as1 se re"uie) ren de operadores relacionales % operadores l#icos1 "ue se muestran en las ta*las 1 % 91 respecti2a) mente. Dic(as condiciones solo puede tomar uno de los si#uientes 2alores: 2erdadero o falso. Ta*la 1 Operadores relacionales

Ta*la 9 Operadores l#icos

&.emplo U.1: &n una pla%a de estacionamiento co*ran 8;. 9.U por (ora o fraccin. Dise:e un al#oritmo "ue determine cuanto de*e pa#ar un cliente por el estacionamiento de su 2e(culo1 conociendo el tiempo de estacionamiento en (oras % minutos.

Al#oritmo ICICIO &CT&RO (oras1 minutos R&AL pa#o L&&R (oras1 minutos 8I+ minutos K , (oras L (oras G 1 pa#o L (oras I 9.U IM3RIMIR pa#o 5IC &.emplo U.9: Dise:e un al#oritmo "ue determine si un n4mero es o no1 par positi2o Al#oritmo ICICIO R&AL n L&&R n 8I+ +nJ9LL,- % +nK,- IM3RIMIR V&l n4mero es par positi2oV 8ICO IM3RIMIR V&l n4mero no es par positi2oV 5IC &.emplo U.?: Dise:e un al#oritmo "ue determine el ma%or 2alor de cuatro n4meros a1 *1 c1 d. Al#oritmo ICICIO R&AL a1 *1 c1 d1 ma%or L&&R a1 *1 c1 d ma%or L a 8I+ * K ma%or ma%or L * 8I+ c K ma%or ma%or Lc 8I+ d K ma%or ma%or L d IM3RIMIR ma%or 5IC

Observacin
&n caso "ue los cuatro n4meros sean i#uales entre s1 el al#oritmo da como ma%or a cual"uiera de los cuatro. &.emplo U.>: na tienda (a puesto en oferta la 2enta al por ma%or de cierto producto1 ofreciendo un descuento del 1UJ por la compra de m!s de ? docenas % 1,J en caso contrario. Adem!s por la compra de m!s de ? docenas se o*se"uia una unidad del producto por cada docena en e<ceso so*re ?. Dise:e un al#oritmo "ue determine el monto de la compra1 el monto del descuento1 el monto a pa#ar % el n4me) ro de unidades de o*se"uio por la compra de cierta cantidad de docenas del producto. ICICIO R&AL montopa#1 montocom1 montodes1 precio &CT&RO docenas1 o*se"uio L&&R docenas1 precio montocom L docenasIprecio 8I+ docenas K ? -^ montodes L ,.1UImontocom o*se"uio L docenas)? _ 8ICO^ montodes L ,.1,Imontocom o*se"uio L , _ montopa# L montocom ) montodes IM3RIMIR montocom1 montodes1 montopa# 5IC

U.U

8eleccin Do*le en Cascada

8e dice "ue 2arias estructuras de seleccin do*le est!n en cascada cuando la instruccin "ue si#ue a un 8ICO es otro 8I a e<cepcin del 4ltimo 8ICO. Co (a% lmite en cuanto al n4mero de estructuras de se) leccin do*le "ue pueden ponerse en cascada. &n las fi#uras U.? % U.> se muestran dos formas de seleccin do*le en cascada. 5uncionamiento Las condiciones se e2al4an en orden descendente pasando de una a otra si la anterior resulta falsa. &n el momento "ue se encuentra una condicin 2erdadera1 se efect4a la accin correspondiente a dic(a condicin % se corta el resto de la estructura. 8i todas las condiciones resultan falsas se efect4a la accin correspondiente al 4ltimo 8ICO Cota. &n el caso de acciones compuestas1 estas ser!n encerradas entre lla2es. 8I+ condicin C1 accin A1 8ICO 8I+ condicin C9 accin A9 8ICO

SI( condicin ! "

accin A? . . . 8ICO accin An 5i#ura U.? 8eleccin do*le en cascada: 5orma 1 8I+ condicin C1 accin A1 8ICO 8I+ condicin C9 accin A9 8ICO 8I+ condicin C? accin A? . . . 8ICO accin An 5i#ura U.> 8eleccin do*le en cascada: 5orma 9 &.emplo U.U: Dise:e un al#oritmo "ue determine si un n4mero es ne#ati2o1 positi2o o cero. Al#oritmo +5ormato 1-

ICICIO R&AL n L&&R n 8I+ n K , IM3RIMIR V3ositi2oV 8ICO 8I+ n M , IM3RIMIR VCe#ati2oV 8ICO IM3RIMIR VCeroV 5IC Al#oritmo +5ormato 9ICICIO R&AL n L&&R n 8I+ n K , IM3RIMIR V3ositi2oV 8ICO 8I+ n M , IM3RIMIR VCe#ati2oV 8ICO IM3RIMIR VCeroV 5IC

E.emplo U.S: Considerando "ue las estaciones del a:o se numeran como 1 para prima2era1 9 para 2e) rano1
? para oto:o % > para in2iernoH dise:e un al#oritmo "ue determine el nom*re de la estacin del a:o conociendo el n4mero de la estacin. Al#oritmo ICICIO &CT&RO numero CAD&CA nom*re L&&R numero 8I+ numero LL 1 nom*re L V3rima2eraV 8ICO 8I+ numero LL 9 nom*re L VPeranoV 8ICO 8I+ numero LL ? nom*re L VOto:oV 8ICO nom*re L VIn2iernoV IM3RIMIR nom*re 5IC

U.S

&structuras de 8eleccin Anidadas

8e dice "ue una estructura 8I +o 8I)8ICO- esta anidada cuando esta contenida dentro de otra estructura 8I o dentro de otra estructura 8I)8ICO. Co e<iste lmite en cuanto al ni2el de anidamiento. 3or e.emplo1 una estructura 8I con tres ni2eles de anidamiento tendra el si#uiente formato:

8I+ condicin C1 -^ accin A1 8I+ condicin C9 -^ accin A9 8I+ condicin C? accin A? _ _ &n #eneral1 el anidamiento podra e2itarse usando el operador l#ico V%V. As1 la anterior seleccin 8I anidada puede descomponerse en tres estructuras de seleccin simple no anidadas consecuti2as1 como se muestra a continuacin. 8I+ condicin C1 accin A1 8I+ condicin C1 % condicin C9 accin A9 8I+ condicin C1 % condicin C9 % condicin C? accin A? La estructura de seleccin do*le en cascada es un caso especial de la estructura 8I..8ICO anidada.

&.emplo U.E: Dise:e un al#oritmo "ue lea un n4mero de tres cifras % determine si es o no capic4a. n n4mero es capic4a si es i#ual al re2's del n4mero. O*ser2acin O*ser2e "ue al ser el n4mero de tres cifras1 para ser capic4a es suficiente compro*ar "ue la cifra de las unidades sea i#ual a la cifra de las centenas. Al#oritmo ICICIO &CT&RO numero1 unidad1 centena L&&R numero 8I+numero KL 1,, `` numero ML BBB -^ unidad L numeroJ1, centena L numero;1,, 8I+ unidad LL centena IM3RIMIR V&l n4mero es capic4aV 8ICO IM3RIMIR V&l n4mero no es capic4aV _ 8ICO IM3RIMIR V&l n4mero no tiene tres cifrasV 5IC

U.E

&structura de 8eleccin M4ltiple 8&G C

La estructura de seleccin m4ltiple 8&G C permite ele#ir una ruta de entre 2arias rutas posi*les1 usando para ello una 2aria*le denominada selector. &l selector se compara con una lista de constantes enteras o de car!cter C11 C91 ...1 Cn para cada una de las cuales (a% una accin A11 A91 ...1 An %: 8i el selector coincide con una constante de la lista1 se e.ecuta la accin correspondiente a dic(a constante. 8i el selector no coincide con nin#una constante de la lista1 se e.ecuta la accin Df correspon) diente al 8ICO1 si es "ue e<iste. Las acciones A11 A91 A?1 ...1 An pueden ser acciones simples+ una sola accin- o acciones compuestas +un con.unto de acciones-. &n la 5i#ura U.? se muestra el seudo cdi#o de la estructura de seleccin m4ltiple. Cota.) &n el caso de acciones compuestas1 estas no necesitan estar encerradas entre lla2es.

8&G C + selector ^ CA8O C1 : accin A1 CA8O C9 : accin A9 CA8O C? : accin A? . . . CA8O Cn : accin An 8ICO : accin Df _ 5i#ura U.? &structura de seleccin m4ltiple: seudo cdi#o &.emplo U.=: Resuel2a el e.emplo U.S usando seleccin m4ltiple. Al#oritmo

ICICIO &CT&RO numero CAD&CA nom*re L&&R numero 8&G C+numero-^ CA8O 1 : nom*re L V3rima2eraV CA8O 9 : nom*re L VPeranoV CA8O ? : nom*re L VOto:oV 8ICO : nom*re L VIn2iernoV _ IM3RIMIR nom*re 5IC

U.= &.ercicios
&.ercicio 1: Dise:e un al#oritmo "ue califi"ue el punta.e o*tenido en el lan$amiento de tres dados en funcin a la cantidad seis o*tenidos1 de acuerdo a lo si#uiente: ) 8eis en los tres dados1 e<celente. ) 8eis en dos dados1 mu% *ien. ) 8eis en un dado1 re#ular. ) Cin#4n seis1 p'simo. Al#oritmo ICICIO ;; Declaracin de 2aria*les &CT&RO d11 d91 d? ;; &ntrada de datos L&&R d11 d91 d? ;; O*tencin de la calificacin

8I+ d1 G d9 G d? LL 1= IM3RIMIR V&<celenteV 8ICO 8I+ d1Gd9 LL 19 d1Gd? LL 19 d9Gd? LL 19 IM3RIMIR VMu% *i'nV 8ICO 8I+ d1 LL S d9 LL S d? LL S IM3RIMIR VRe#ularV 8ICO IM3RIMIR V3'simoV 5IC &.ercicio 9: na compa:a dedicada al al"uiler de autom2iles co*ra a?, (asta un m!<imo de ?,, Xm. de distancia recorrida. 3ara m!s de ?,, Xm. % (asta 1,,, Xm.1 co*ra a?, m!s un monto adicional de a ,.1U por cada Wilmetro en e<ceso so*re ?,,. 3ara m!s de 1,,, Xm. co*ra a?, m!s un monto adicional de a ,.1, por cada Wilmetro en e<ceso so*re 1,,,. Los precios %a inclu%en el 1=J del impuesto #eneral a las 2entas1 IGP. Dise:e un al#oritmo "ue determine el monto a pa#ar por el al"uiler de un 2e(culo % el monto incluido del impuesto. Al#oritmo ICICIO ;; Declaracin de 2aria*les R&AL Wilomrec1 montofi.o1 montoadic1 montopa#1 montoi#2 R&AL IGP L ,.1= ;; &ntrada de datos L&&R Wilomrec ;; C!lculo de montos montofi.o L ?,IWilomrec 8I+ Wilomrec ML ?,, montoadic L , 8ICO 8I+ Wilomrec ML 1,,, montoadic L ,.1UI+Wilomrec)?,,8ICO montoadic L ,.1UIE,, G ,.1,I+Wilomrec)1,,,montopa# L montofi.o G montoadic montoi#2 L IGPImontopa# ;+1GIGP;; 8alida de resultados IM3RIMIR monto3a#1 montoI#2 5IC &.ercicio ?: Dise:e un al#oritmo "ue determine "uienes son contempor!neos entre Ouan1 Mario % 3edro. Al#oritmo ICICIO &CT&RO .uan1 mario1 pedro L&&R .uan1 mario1 pedro 8I+ .uan LL mario % mario LL pedro IM3RIMIR VLos tres son contempor!neosV 8ICO 8I+ .uan LL mario IM3RIMIR VOuan % Mario son contempor!neosV 8ICO 8I+ .uan LL pedro IM3RIMIR VOuan % 3edro son contempor!neosV

8ICO 8I+ mario LL pedro IM3RIMIR VMario % 3edro son contempor!neosV 8ICO IM3RIMIR VLos tres tienen edades diferentes entre sV 5IC &.ercicio >: &l promedio de pr!cticas de un curso se calcula en *ase a cuatro pr!cticas calificadas de las cuales se elimina la nota menor % se promedian las tres notas m!s altas. Dise:e un al#oritmo "ue deter) mine la nota eliminada % el promedio de pr!cticas de un estudiante. Al#oritmo ICICIO R&AL pc11 pc91 pc?1 pc>1 pcmenor1 promedio L&&R pc11 pc91 pc?1 pc> ;; Determina la nota menor pcmenor L pc1 8I+ pc9 M pcmenor pcmenor L pc9 8I+ pc? M pcmenor pcmenor L pc? 8I+ pc> M pcmenor pcmenor L pc> ;; Determina el promedio descontando la nota menor promedio L +pc1 G pc9 G pc? G pc> ) pcmenor -;? IM3RIMIR promedio1 pcmenor 5IC &.ercicio U: Dise:e un al#oritmo "ue lea tres lon#itudes % determine si forman o no un tri!n#ulo. 8i es un tri!n#ulo determine de "ue tipo de tri!n#ulo se trata entre: e"uil!tero +si tiene tres lados i#uales-1 issce) les +si tiene dos lados i#uales- o escaleno +si tiene tres lados desi#uales-. Considere "ue para formar un tri!n#ulo se re"uiere "ue: Vel lado ma%or sea menor "ue la suma de los otros dos ladosV. Al#oritmo ICICIO R&AL L11 L91 L?1 suma L&&R L11 L91 L? ;; Determina el lado ma%or ma%or L L1 8I+ L9 K ma%or ma%or L L9 8I+ L? K ma%or ma%or L L? ;; Determina la suma de los lados a e<cepcin del lado ma%or suma L L1 G L9 G L? ) ma%or ;; Determina de "ue tipo de tri!n#ulo se trata 8I+ ma%or M suma -^ 8I+ + L1 LL L9 - % + L9 LL L? - -

IM3RIMIR VTri!n#ulo e"uil!teroV 8ICO 8I+ + L1 LL L9 - o + L1 LL L? - o + L9 LL L? - IM3RIMIR VTri!n#ulo isscelesV 8ICO IM3RIMIR VTri!n#ulo escalenoV _ 8ICO IM3RIMIR VCo es un tri!n#uloV 5IC &.ercicio S: Dise:e un al#oritmo "ue lea tres n4meros enteros % determine el menor 2alor positi2o. 8i los n4meros positi2os son i#uales1 dar como menor a cual"uiera de ellos. Al#oritmo ICICIO &CT&RO a1 *1 c L&&R a1 *1 c 8I+ a K , -^ ;; A"u a1 * % c podran ser positi2os menor L a 8I+ * K , % * M menor menor L * 8I+ c K , % c M menor menor L c IM3RIMIR menor _ 8ICO 8I+ * K , -^ ;; A"u slo * % c podran ser positi2os menor L * 8I+ c K , % c M menor menor L c IM3RIMIR menor _ 8ICO 8I+ c K , -^ ;; A"u slo c podra ser positi2o menor L c IM3RIMIR menor _ 8ICO IM3RIMIR VCo (a% n4meros positi2osV 5IC &.ercicio E: Dise:e un al#oritmo "ue lea tres n4meros % los imprima de ma%or a menor % de menor a ma%or.

Al#oritmo ICICIO R&AL n11 n91 n?1 ma%or1 menor1 medio L&&R n11 n91 n? ;; Determina el menor menor L n1 8I+ n9 M menor menor L n9 8I+ n? M menor -

menor L n? ;; Determina el ma%or ma%or L n1 8I+ n9 K ma%or ma%or L n9 8I+ n? K ma%or ma%or L n? ;; Determina el medio medio L n1Gn9Gn?)ma%or)menor ;; Imprime en orden ascendente IM3RIMIR menor1 medio1 ma%or ;; Imprime en orden descendente IM3RIMIR ma%or1 medio1 menor 5IC &.ercicio =: Dise:e un al#oritmo para o*tener el #rado de eficiencia de un operario de una f!*rica de tornillos1 de acuerdo a las si#uientes condiciones1 "ue se le imponen para un perodo de prue*a: ) Menos de 9,, tornillos defectuosos. ) M!s de 1,,,, tornillos producidos. &l #rado de eficiencia se determina de la si#uiente manera: ) 8i no cumple nin#una de las condiciones1 #rado U. ) 8i slo cumple la primera condicin1 #rado S. ) 8i slo cumple la se#unda condicin1 #rado E. ) 8i cumple las dos condiciones1 #rado =. Al#oritmo 1 ICICIO &CT&RO torpro1 tordef1 #rado L&&R torpro1 tordef ;; Determina el #rado de eficiencia 8I+ tordef M 9,, -^ 8I+ torpro K 1,,,, #rado L = 8ICO #rado L S _ 8ICO^ 8I+ torpro K 1,,,, #rado L E 8ICO #rado L U _ IM3RIMIR #rado 5IC Al#oritmo 9

ICICIO &CT&RO torpro1 tordef1 #rado L&&R torpro1 tordef ;; Determina el #rado de eficiencia 8I+ tordef M 9,, % torpro K 1,,,, #rado L = 8ICO 8I+ tordef M 9,, #rado L S 8ICO 8I+ torpro K 1,,,, #rado L E 8ICO #rado L U IM3RIMIR #rado 5IC &.ercicio B: 8e cuenta con los 2otos o*tenidos por Ouan1 3edro % Maria en una eleccin democr!tica a la presidencia de un clu*. 3ara #anar la eleccin se de*e o*tener como mnimo el U,J de los 2otos m!s 1. &n caso "ue no (a%a un #anador se repite la eleccin en una se#unda 2uelta. Pan a la se#unda 2uelta los dos "ue o*ten#an la m!s alta 2otacin 1 los tres en caso de producirse un empate do*le +entre los dos con menor 2otacin- o un empate triple. Dise:e un al#oritmo "ue determine el resultado de la elec) cin.

Al#oritmo ICICIO &CT&RO 2.uan1 2pedro1 2maria L&&R 2.uan1 2pedro1 2maria ;; Determina la 2otacin total 2total L 2.uan G 2pedro G 2maria ;; Determina la 2otacin m!<ima 2ma< L 2.uan 8I+ 2pedro K 2ma< 2ma< L 2pedro 8I+ 2maria K 2ma< - 2ma< L 2maria ;; Determina el resultado de la eleccin 8I+ 2ma< K 2total;9 G 1 -^ ;; 6a% #anador 8I+ 2.uan LL 2ma< IM3RIMIR VGan OuanV 8ICO 8I+ 2pedro LL 2ma< IM3RIMIR VGan 3edroV 8ICO IM3RIMIR VGan MaraV _ 8ICO^ ;; Co (a% #anador 8I+ 2.uan M 2pedro % 2.uan M 2maria IM3RIMIR VDe*e (a*er se#unda 2uelta entre 3edro % MaraV 8ICO 8I+ 2pedro M 2.uan % 2pedro M 2maria IM3RIMIR VDe*e (a*er se#unda 2uelta entre Ouan % MaraV 8ICO 8I+ 2maria M 2.uan % 2maria M 2pedro IM3RIMIR VDe*e (a*er se#unda 2uelta entre Ouan % 3edroV

8ICO IM3RIMIR VDe*e (a*er se#unda 2uelta entre los tresV _ 5IC &.ercicio 1,: Dise:e un al#oritmo "ue lea un n4mero entero de ? cifras1 % forme el ma%or n4mero posi) *le con las cifras del n4mero in#resado. &l n4mero formado de*e tener el mismo si#no "ue el n4mero in#resado.

Al#oritmo ICICIO &CT&RO num11 num91 numau<1 uni1 dec1 cen1 menor1 ma%or1 medio L&&R num1 8I+ + num1 KL 1,, % num1 ML BBB - % + num1 KL )BBB % num1 ML )1,, - -^ ;; Guarda el n4mero en una 2aria*le au<iliar para preser2ar el si#no numau< L num1 ;; Cam*ia el si#no de num1 en caso de ser ne#ati2o 8I+ num1 M , num1 L )num1 ;; Determina las cifras del n4mero cen L num1;1,, dec L +num1J1,,-;1, uni L +num1J1,,-J1, ;; Determina la cifra menor menor L cen 8I+ dec M menor menor L dec 8I+ uni M menor menor L uni ;; Determina la cifra ma%or ma%or L cen 8I+ dec K ma%or ma%or L dec 8I+ uni K ma%or ma%or L uni ;; Determina la cifra del medio medio L cenGdecGuni)ma%or)menor ;; 5orma el nue2o n4mero 8I+ numau< K , num9 L ma%orI1,, G medioI1, G menor 8ICO num9 L )1I+menorI1,, G medioI1, G ma%orI1,,-M ;; Imprime el nue2o n4mero IM3RIMIR num9 _ 8ICO IM3RIMIR V&l n4mero no tiene tres cifrasV 5IC

Capitulo S:
9.1

&structuras de Repeticin +Cclicas-

Introduccin

8e llaman pro*lemas repetiti2os o cclicos a a"uellos en cu%a solucin es necesario utili$ar un mismo con.unto de acciones "ue se puedan e.ecutar una cantidad especfica de 2eces. &sta cantidad puede ser fi.a +pre2iamente determinada por el pro#ramador- o puede ser 2aria*le +estar en funcin de al#4n dato dentro del pro#rama-.Los ciclos se clasifican en: Ciclos con un C4mero Determinado de Iteraciones +6acer)3ara8on a"uellos en "ue el n4mero de iteraciones se conoce antes de e.ecutarse el ciclo. La forma de esta estructura es la si#uiente: 6acer para P.C L L.I a L.8 Accion1 Accion9 . . . AccionC 5in)para Donde: P.C Paria*le de control del ciclo L.I Lmite inferir L.8 Lmite superior &n este ciclo la 2aria*le de control toma el 2alor inicial del ciclo % el ciclo se repite (asta "ue la 2aria*le de control lle#ue al lmite superior. 3ro*lemas +6acer para1- Calcular el promedio de un alumno "ue tiene E calificaciones en la materia de Dise:o &structura) do de Al#oritmos. Inicio 8umL, Leer Com 6acer para c L 1 a E Leer calif 8um L sum G calif 5in)para prom L sum ;E Imprimir prom 5in. 9- Leer 1, n4meros % o*tener su cu*o % su cuarta. Inicio 6acer para n L 1 a 1, Leer num cu*o L num I num I num cuarta L cu*o I num Imprimir cu*o1 cuarta 5in)para 5in.
PCLLI 2cL2cG1 5 Cuerpo del ciclo P PCLL8

?- Leer 1, n4meros e imprimir solamente los n4meros positi2os. Inicio 6acer para n L 1 a 1, Leer num 8i num K , entonces Imprimir num fin)si 5in)para 5in. >- Leer 9, n4meros e imprimir cu!ntos son positi2os1 cu!ntos ne#ati2os % cu!ntos neutros. Inicio cn L , cp L , cne# L, 6acer para < L 1 a 9, Leer num 8in num L , entonces cn L cn G 1 si no 8i num K , entonces cp L cp G 1 si no cne# L cne# G 1 5in)si 5in)si 5in)para Imprimir cn1 cp1 cne# 5in. U- Leer 1U n4meros ne#ati2os % con2ertirlos a positi2os e imprimir dic(os n4meros. Inicio 6acer para < L 1 a 1U Leer num pos L num I )1 Imprimir num1 pos 5in)para 5in. S- 8upon#a "ue se tiene un con.unto de calificaciones de un #rupo de >, alumnos. Reali$ar un al#oritmo para calcular la calificacin media % la calificacin mas *a.a de todo el #rupo. Inicio sum L , *a.a L BBBB 6acer para a L 1 a >, Leer calif sum L sum G calif 8i calif M *a.a entonces *a.a L calif fin)si 5in)para media L sum ; 9 Imprimir media1 *a.a fin

E- Calcular e imprimir la ta*la de multiplicar de un n4mero cual"uiera. Imprimir el multiplicando1 el multiplicador % el producto. Inicio Leer num 6acer para D L 1 a 1, resul L num I < Imprimir num1 \ I \1 D1 \ L \1 resul 5in)para fin =- 8imular el comportamiento de un relo. di#ital1 imprimiendo la (ora1 minutos % se#undos de un da desde las ,:,,:,, (oras (asta las 9?:UB:UB (oras. Inicio 6acer para ( L 1 a 9? 6acer para m L 1 a UB 6acer para s L 1 a UB Imprimir (1 m1 s 5in)para 5in)para 5in)para fin. 3ro*lemas 3ropuestos 1- na persona de*e reali$ar un muestreo con U, personas para determinar el promedio de peso de los ni:os1 .2enes1 adultos % 2ie.os "ue e<isten en su $ona (a*itacional. 8e determinan las ca) te#oras con *ase en la si#uiente ta*la: CAT&GORQA &DAD Ci:os , ) 19 O2enes 1? ) 9B Adultos ?, ) UB Pie.os S, en adelante 9- Al cerrar un e<pendio de naran.as1 1U clientes "ue aun no (an pa#ado reci*ir!n un 1UJ de des) cuento si compran m!s de 1, Wilos. Determinar cuanto pa#ara cada cliente % cuanto perci*ir! la tienda por esas compras. ?- &n un centro de 2erificacin de autom2iles se desea sa*er el promedio de puntos contaminan) tes de los primeros 9U autom2iles "ue lle#uen. Asimismo se desea sa*er los puntos contami) nantes del carro "ue menos contamino % del "ue mas contamino. >- n entrenador le (a propuesto a un atleta recorrer una ruta de cinco Wilmetros durante 1, das1 para determinar si es apto para la prue*a de U Xilmetros o de*e *uscar otra especialidad. 3ara considerarlo apto de*e cumplir por lo menos una de las si#uientes condiciones: ) Zue en nin#una de las prue*as (a#a un tiempo ma%or a 1S minutos. ) Zue al menos en una de las prue*as realice un tiempo ma%or a 1S minutos. ) Zue su promedio de tiempos sea menor o i#ual a 1U minutos. U- n Aolo#o pretende determinar el porcenta.e de animales "ue (a% en las si#uientes tres cate) #oras de edades: de , a 1 a:o1 de m!s de 1 a:o % menos de ? % de ? o m!s a:os. &l $ool#ico toda2a no esta se#uro del animal "ue 2a a estudiar. 8i se decide por elefantes solo tomara una muestra de 9, de ellosH si se decide por las .irafas1 tomara 1U muestras1 % si son c(impanc's to) mara >,.

Ciclos con un Cumero Indeterminado de Iteraciones 6acer)Mientras1 Repetir)6asta-

8on a"uellos en "ue el n4mero de iteraciones no se conoce con e<actitud1 %a "ue esta dado en funcin de un dato dentro del pro#rama. 6acer)Mientras: &sta es una estructura "ue repetir! un proceso durante \C] 2eces1 donde \C] puede ser fi.o o 2aria*le. 3ara esto1 la instruccin se 2ale de una condicin "ue es la "ue de*e cumplirse para "ue se si#a e.ecutando. Cuando la condicin %a no se cumple1 entonces %a no se e.ecuta el proceso. La forma de esta estructura es la si#uiente:

6acer mientras McondicinK Accion1 Accion9 . . AccionC 5in)mientras

condicin

8 Cuerpo del ciclo

3ro*lemas +6acer Mientras1- na compa:a de se#uros tiene contratados a n 2endedores. Cada uno (ace tres 2entas a la semana. 8u poltica de pa#os es "ue un 2endedor reci*e un sueldo *ase1 % un 1,J e<tra por comisiones de sus 2entas. &l #erente de su compa:a desea sa*er cuanto dinero o*tendr! en la semana cada 2endedor por concepto de comisiones por las tres 2entas reali$adas1 % cuanto to) mando en cuenta su sueldo *ase % sus comisiones. 9- &n una empresa se re"uiere calcular el salario semanal de cada uno de los n o*reros "ue la*o) ran en ella. &l salario se o*tiene de la si#uiente forma: 8i el o*rero tra*a.a >, (oras o menos se le pa#a a9, por (ora 8i tra*a.a m!s de >, (oras se le pa#a a9, por cada una de las primeras >, (oras % a9U por cada (ora e<tra. ?- Determinar cuantos (om*res % cuantas mu.eres se encuentran en un #rupo de n personas1 su) poniendo "ue los datos son e<trados alumno por alumno. >- &l Departamento. de 8e#uridad 3u*lica % Tr!nsito del D5. desea sa*er1 de los n autos "ue en) tran a la ciudad de M'<ico1 cuantos entran con calcomana de cada color. Conociendo el 4ltimo d#ito de la placa de cada autom2il se puede determinar el color de la calcomana utili$ando la si#uiente relacin: DQGITO COLOR 1 o 9 amarilla ? o > rosa U o S ro.a E o = 2erde B o , a$ul U- O*tener el promedio de calificaciones de un #rupo de n alumnos. S- na persona desea in2ertir su dinero en un *anco1 el cual le otor#a un 9J de inter's. Cual ser! la cantidad de dinero "ue esta persona tendr! al ca*o de un a:o si la #anancia de cada mes es rein2ertida0 E- Calcular el promedio de edades de (om*res1 mu.eres % de todo un #rupo de alumnos.

=- &ncontrar el menor 2alor de un con.unto de n n4meros dados. B- &ncontrar el ma%or 2alor de un con.unto de n n4meros dados. 1,&n un supermercado un ca.ero captura los precios de los artculos "ue los clientes compran e indica a cada cliente cual es el monto de lo "ue de*en pa#ar. Al final del da le indica a su super) 2isor cuanto fue lo "ue co*ro en total a todos los clientes "ue pasaron por su ca.a. 11Cinco miem*ros de un clu* contra la o*esidad desean sa*er cuanto (an *a.ado o su*ido de peso desde la ultima 2e$ "ue se reunieron. 3ara esto se de*e reali$ar un ritual de pesa.e en donde cada uno se pesa en die$ *!sculas distintas para as tener el promedio mas e<acto de su peso. 8i e<iste diferencia positi2a entre este promedio de peso % el peso de la ultima 2e$ "ue se reunieron1 si#nifica "ue su*ieron de peso. 3ero si la diferencia es ne#ati2a1 si#nifica "ue *a.aron. Lo "ue el pro*lema re"uiere es "ue por cada persona se imprima un letrero "ue di#a: \8 FIO] o \FAOO] % la cantidad de Wilos "ue su*i o *a.o de peso.

198e desea o*tener el promedio de # #rupos "ue est!n en un mismo a:o escolarH siendo "ue cada #rupo puede tener n alumnos "ue cada alumno puede lle2ar m materias % "ue en todas las mate) rias se promedian tres calificaciones para o*tener el promedio de la materia. Lo "ue se desea desple#ar es el promedio de los #rupos1 el promedio de cada #rupo % el promedio de cada alum) no.

Repetir)6asta: &sta es una estructura similar en al#unas caractersticas1 a la anterior. Repite un proceso una cantidad de 2eces1 pero a diferencia del 6acer)Mientras1 el Repetir)6asta lo (ace (asta "ue la condicin se cumple % no mientras1 como en el 6acer)Mientras. 3or otra parte1 esta estructura permite reali$ar el proceso cuando menos una 2e$1 %a "ue la condicin se e2al4a al fi) nal del proceso1 mientras "ue en el 6acer)Mientras puede ser "ue nunca lle#ue a entrar si la condicin no se cumple desde un principio. La forma de esta estructura es la si#uiente: Repetir Accion1 Accion9 . . AccionC 6asta McondicinK
8i condicin

Cuerpo del ciclo SI

Co

3ro*lemas Repetir ) 6asta 1- &n una tienda de descuento las personas "ue 2an a pa#ar el importe de su compra lle#an a la ca.a % sacan una *olita de color1 "ue les dir! "ue descuento tendr!n so*re el total de su compra. Determinar la cantidad "ue pa#ara cada cliente desde "ue la tienda a*re (asta "ue cierra. 8e sa*e "ue si el color de la *olita es ro.o el cliente o*tendr! un >,J de descuentoH si es amarilla un 9UJ % si es *lanca no o*tendr! descuento. 9- &n un supermercado una ama de casa pone en su carrito los artculos "ue 2a tomando de los estantes. La se:ora "uiere ase#urarse de "ue el ca.ero le co*re *ien lo "ue ella (a comprado1 por lo "ue cada 2e$ "ue toma un articulo anota su precio .unto con la cantidad de artculos i#ua) les "ue (a tomado % determina cuanto dinero #astara en ese articuloH a esto le suma lo "ue ira

#astando en los dem!s artculos1 (asta "ue decide "ue %a tomo todo lo "ue necesita*a. A%4dale a esta se:ora a o*tener el total de sus compras. ?- un teatro otor#a descuentos se#4n la edad del cliente. determinar la cantidad de dinero "ue el teatro de.a de perci*ir por cada una de las cate#oras. Tomar en cuenta "ue los ni:os menores de U a:os no pueden entrar al teatro % "ue e<iste un precio 4nico en los asientos. Los descuen) tos se (acen tomando en cuenta el si#uiente cuadro: &dad Descuento Cate#ora 1 U ) 1> ?U J Cate#ora 9 1U ) 1B 9U J Cate#ora ? 9, ) >U 1, J Cate#ora > >S ) SU 9U J Cate#ora U SS en adelante ?U J

3ro*lemas 3ropuestos 1- La presin1 2olumen % temperatura de una masa de aire se relacionan por la formula: masa = presin I 2olumen ,.?E I +temperatura # >S,-

Calcular el promedio de masa de aire de los neum!ticos de n 2e(culos "ue est!n en compostu) ra en un ser2icio de alineacin % *alanceo. Los 2e(culos pueden ser motocicletas o autom2iles. 9- Determinar la cantidad semanal de dinero "ue reci*ir! cada uno de los n o*reros de una empre) sa. 8e sa*e "ue cuando las (oras "ue tra*a.o un o*rero e<ceden de >,1 el resto se con2ierte en (oras e<tras "ue se pa#an al do*le de una (ora normal1 cuando no e<ceden de =H cuando las (oras e<tras e<ceden de = se pa#an las primeras = al do*le de lo "ue se pa#a por una (ora normal % el resto al triple. ?- &n una #ran.a se re"uiere sa*er al#una informacin para determinar el precio de 2enta por cada Wilo de (ue2o. &s importante determinar el promedio de calidad de las n #allinas "ue (a% en la #ran.a. La calidad de cada #allina se o*tiene se#4n la formula: calidad = peso de la #allina I altura de la #allina n4mero de (ue2os "ue pone

5inalmente para fi.ar el precio del Wilo de (ue2o1 se toma como *ase la si#uiente ta*la: 3R&CIO TOTAL D& CALIDAD 3&8O 3OR XILO D& 6 &PO ma%or o i#ual "ue 1U 1.9 I promedio de calidad ma%or "ue = % menor "ue 1U 1.,, I promedio de calidad menor o i#ual "ue = ,.=, I promedio de calidad >- &n la C!mara de Diputados se le2anta una encuesta con todos los inte#rantes con el fin de de) terminar "ue porcenta.e de los n diputados est! a fa2or del Tratado de Li*re Comercio1 "ue por) centa.e est! en contra % "ue porcenta.e se a*stiene de opinar. U- na persona "ue 2a de compras a la tienda \&nano1 8.A.]1 decide lle2ar un control so*re lo "ue 2a comprando1 para sa*er la cantidad de dinero "ue tendr! "ue pa#ar al lle#ar a la ca.a. La tien) da tiene una promocin del 9,J de descuento so*re a"uellos artculos cu%a eti"ueta sea ro.a. Determinar la cantidad de dinero "ue esta persona de*er! pa#ar. S- n censador recopila ciertos datos aplicando encuestas para el 4ltimo Censo Cacional de 3o*la) cin % Pi2ienda. Desea o*tener de todas las personas "ue alcance a encuestar en un da1 "ue porcenta.e tiene estudios de primaria1 secundaria1 carrera t'cnica1 estudios profesionales % estu) dios de post#rado.

E- n .efe de casilla desea determinar cuantas personas de cada una de las secciones "ue compo) nen su $ona asisten el da de las 2otaciones. Las secciones son: norte1 sur % centro. Tam*i'n desea determinar cu!l es la seccin con ma%or n4mero de 2otantes. =- n ne#ocio de copias tiene un limite de produccin diaria de 1, ,,, copias si el tipo de impresin es offset % de U, ,,, si el tipo es est!ndar. 8i (a% una solicitud de un el empleado tiene "ue 2eri) ficar "ue las copias pendientes (asta el momento % las copias solicitadas no e<cedan del limite de produccin. 8i el lmite de produccin se e<cediera el tra*a.o solicitado no podra ser acepta) do. &l empleado necesita lle2ar un *uen control de las copias solicitadas (asta el momento para decidir en forma r!pida si los tra*a.os "ue se soliciten en el da se de*en aceptar o no. B- Calcular la suma si#uiente: 1,, G B= G BS G B> G . . . G , en este orden 1,Leer U, calificaciones de un #rupo de alumnos. Calcule % escri*a el porcenta.e de repro*a) dos. Tomando en cuenta "ue la calificacin mnima apro*atoria es de E,. 11Leer por cada alumno de Dise:o estructurado de al#oritmos su n4mero de control % su califi) cacin en cada una de las U unidades de la materia. Al final "ue escri*a el n4mero de control del alumno "ue o*tu2o ma%or promedio. 8upon#a "ue los alumnos tienen diferentes promedios. 19&l profesor de una materia desea conocer la cantidad de sus alumnos "ue no tienen derec(o al e<amen de ni2elacin. Dise:e un al#oritmo "ue lea las calificaciones o*tenidas en las U unidades por cada uno de los >, alumnos % escri*a la cantidad de ellos "ue no tienen derec(o al e<amen de ni2elacin. 1?Leer los 9U,1,,, 2otos otor#ados a los ? candidatos a #o*ernador e imprimir el numero del candidato #anador % su cantidad de 2otos. 1>8upon#a "ue tiene usted una tienda % desea re#istrar las 2entas en su computadora. Dise:e un al#oritmo "ue lea por cada cliente1 el monto total de su compra. Al final del da "ue escri*a la cantidad total de 2entas % el numero de clientes atendidos.

Capitulo E:
E.1

MAC&OO D& MRD LO8

Definicin1 5uncin % Manipulacin

n pro*lema comple.o se puede di2idir en pe"ue:os su*pro*lemas m!s sencillos. &stos su*pro*lemas se conocen como \Mdulos] % su complementacin en un len#ua.e se llama su*pro#rama +procedimien) tos % funciones-. n su*pro#rama reali$a las mismas acciones "ue un pro#rama1 sin em*ar#o1 un su*pro#rama lo utili$a solamente un pro#rama para un propsito especifico. n su*pro#rama reci*e datos de un pro#rama % le de2uel2e resultados +el pro#rama \llama] o \in2oca] al su*pro#rama1 este e.ecuta una tarea especifica % de2uel2e el \control] al pro#rama "ue lo llamo-. 5uncin: na funcin en matem!ticas1 es una operacin "ue toma uno o mas 2alores +ar#umentos- % de2uel2e un resultado +2alor de la funcin para los ar#umentos dados-. 3or e.emplo: < 5+<- = 1#<
9

Donde: 5 L Com*re de la funcin < L Ar#umento +tam*i'n conocido como par!metro formal-

9- Definicin de funciones: na definicin de funcin se presenta de la si#uiente manera:

Dise:e un al#oritmo "ue 5uncin nom*rebfuncion +p11 p91 [1 pn- lea un n4mero % mediante una funcin re#rese el 2alor de 1 si el n4me) ro esInicio positi2o % )1 si es ne#ati2o-. Flo"ue de instrucciones 5in Donde: 5uncin: &s la pala*ra cla2e "ue nos indica una definicin de funcin. Com*rebfuncion: &s el identificador con el cual se reconoce a la funcin en el cuerpo del al#oritmo principal. 311p91[1pn &s el #rupo de par!metros "ue define a la funcin. Llamado a una funcin Cuando definimos una funcin slo le indicamos al al#oritmo "ue esta funcin e<iste1 pero una definicin de funcin no implica la reali$acin de las instrucciones "ue la constitu%en. 3ara (acer uso de una fun) cin1 el al#oritmo principal la de*e llamar. 3or e.emplo: 5uncin 5+DInicio 5 L D ;+1 G DY95in Inicio Imprimir \&ste es el al#oritmo principal] Leer C R L 5+C- llamado de la funcin Imprimir \&l resultado de la funcin es:]1R 5in 3ro*lemas 3ropuestos 1- Dise:e un al#oritmo "ue llene una matri$ de 1, I 1, % determine: A- &l n4mero ma%or almacenado en la matri$ F- &l n4mero ma%or almacenado en cada ren#ln C- La columna "ue tu2o la m!<ima suma D- &l ren#ln "ue tu2o la m!<ima suma Dise:a una funcin para cada inciso.

Potrebbero piacerti anche