You are on page 1of 26
SLDwteeadccion Oo 44 CeMpurecion sTerge lascencelos SantiVan Puchh cnewres Cu lhirval, 2cc0, JNIDAD 9 | sy Algoritmos putadoras es el desarrollo de al Un algoritmo es una serie de pasos para re solver un prob) ay, en esta Ww bimos los elementos minimos necesarios para construir los algoritmos. + Introduccién + Origenes del término algoritmo * Disefto de algoritmos + Caracteristicas de los algoritmos + Diagramas de flujo y pseudocédigo + Elementos para construir algoritmos Introduccién ala computacion U, algoritmo es una serie de pasos ordenados logicamente que permiten resolver un problem, En otras palabras, un algoritmo es la receta para elaborar o alcanzar algo. En la vida diaria podemos encos, eR AN Rene cade) trar muchos ejemplos. Veamos a cons, nuacidn tres de ellos. a) Receta de cocina Una receta de cocina ¢s un muy 10. Tener listos los ingredientes buen ejemplo. La figura 91a muesir; 20. Encender e! fuego zt 80. Colocar la sartén sobre el fuego Ja sarte 5 una receta para freir huevos. Como to das las recetas, primero pide los ingre. dientes necesarios y después (dentro del apartado “modo de prepararse”) in. dica qué hacer con ellos hasta conver. tirlos en comida. Observe qué impor. tante es que el orden de los pasos sea ldgico: si antes de poner el aceite pone los huevos en la sartén, tenga por segu ro que obtendrd huevos quemados. El segundo ejemplo es mostrado en la figura 9.1b donde aparecen las acti- vidades de una persona. Cada una de ellas esté estrictamente colocada en un horario especifico, acorde con las nece- sidades de esa persona. Por tiltimo se_presentan seis pasos de la operacién de un equipo de soni- do en la figura 9.1c. El orden en estos pasos ha sido marcado por el fabrican- te para asegurar a mejor calidad en lz reproduccion del sonido. Si usted los altera quizds no descomponga el apz- rato, pero puede no obtener lo mejor del mismo. Fig. 9.1 148 jenos encontrar algoritmos hasta en la actividad mas sencilla , “dar un paso”, por ejemplo 92): 19.2): lo, Apoyar el cuerpo sobre el pie izquierdo, 2o. Levantar el pie derecho, | 30, Avanzar el pie derecho, maa adedamile qr j 4o. Bajar el pie derecho So, Apoyar el cuerpo sobre el pie derecho 60. Levantar el pie izquierdo, se, Jo. Avanzar el pie izquierdo. 245 pdtebarlt ge wt ail 80, Bajar el pie izquierdo. Aqui podemos apreciar qué importante es seguir el orden marcado por el algoritmo, piense qué ocurriria si después de realizar el nuimero 2 se saltase al paso 6, A partir de “dar un paso” podemos definir otra tarea més complicada: caminar. Procedimiento para CAMINAR Repetir Dar un paso Hasta alcanzar la pared, Origenes del término algoritmo El famoso matemitico drabe Mohammed ben Musa (780-850), fundador del dlgebra, tuvo como peudénimo AlJwarizmi, De esta palabra se derivé tiempo después algorismo, cuyo significado es método de cdl. Durante el renacimiento se transformé en algoritmo por influencia del término arithmos, pala- bra que en griego significa numero. Los algoritmos han sido usados desde los tiempos de la antigua Babilonia, pero su fama se la deben a la computacion moderna. ? Introduccién a la computacién Disefio de algoritmos Disea |goritmo es preparar una estrategia para solutionar un problema. >, antes sin ntentar el disefio de un algoritmo se debe tener completam dido el problema y comprendida la solucion que se desea alcanzar. Ahora bien, para construir un algoritmo es necesario pensar qué pasos son necesarios para 3) canzar la solucidn, partiendo exclusivamente de los elementos disponibles Para tener esto mas claro disearemos, como ejemplo, un algoritmo para resolver la situacic ilustrada por la figura 9.3, donde vemos a un ciudadano que circulaba por la cartetera y de repen te suftid una ponchadura, Por fortuna cuenta con una Hlanta de refaccién y con la herramieny, necesatia, Primera parte: efectuar un andlisis de la situacién lo. Problema identificado: el ciudadano no puede proseguir su camino (debido al neumatico ponchado) y debe continuar el viaje 20. Solucién: cambiar la llanta ponchada por otra en buen estado. & A «CNaoritmos—SSSSS ” ————————— ar Segunda parte: disefiar una estrategia para obtener la solucién lo. Consideraciones iniciales: a llanta de refaccidn en buen estado. 4 herramienta necesaria (gato, llave ©) La hertamienta y la refaccién estan 1) Existe b) Existe le cruz, etcéte n la cajuela, d) Se tienen las laves de la cajuela. ¢) El carro ya fue estacionado (en 19 orilla de La carretera 20. Algoritmo para efectuar el cambio de Hlanta Paso 1, Bajar del carzo, Paso 2. Abrit la cajuela. Paso 3. Sacar llanta de refaccion y herramienta Paso 4. Colocar gato bajo el carro, Paso 5, Quitar tapon y aflojar tuercas (birlos) de la llanta dalada. Paso 6. Levantar carro con el gato. Paso 7. Quitar birlos y sacar llanta. Paso 8. Colocar la Ilanta de refaccisn y los birlos Paso 9, Bajar el carro Paso 10. Apretar los birlos y poner tapones. Paso 11, Guardar hérramienta y llanta en la cajuela Paso 12, Cerrar cajuela. ’uso 13, Subir al carto y continuar el viaje. No cabe duda que al seguir los trece pasos anteriores se puede cambiar la Hanta a cualquier carro, en cualquier momento. Caractertsticas de los algoritmos Todos los algoritmos deben poser las siguientes caracteristicas: + Finitud: el algoritmo debe alcanzar la solucin correcta en un limite de tiempo. + Precisién: las instrucciones de un algoritmo deben ser claras, precisas y no prestarse a in terpretaciones (es decir, debe evitarse la ambigtiedad). introduccién a la computacidn + Entradas y salidas claramente definidas: las entradas se tran las salidas, por ello un s) y cuales los datos i marén para obten algoritmo debe mostrar con claridad cudles serdn los resultados ciales (entradas © parimetros). + Efectividad: los pasos de un algoritmo deben conducir a la solucién del problema origin, Diagramas de flujo seudocodigo Los algoritmos se representan de dos formas diferentes: mediante seudocédigo o con diagramas g flujo. El seudocddigo consiste en redactar (en espafiol) cada paso del algoritmo, utilizando oracia, nes breves y sin incluir adjetivos y articulos, ‘I diagrama de flujo es la representacién grafica de un algoritmo. En un diagrama de flujo se utilizan figuras en forma de caja (figura 9.4), que se usan segtin corresponda a cada paso del algoritmo, Las figuras se conectan mediante flechas, indicindose la secuencia a seguir entre los pasos. La figura 9.5 representa los algoritmos de la figura 9.1 mediante diagramas de flujo. Podrd observarse que cada diagrama es muy sencillo. Con fines didécticos este texto utiliza ambas representa- ciones, aun cuando en la prictica lo més utilizado es el seu- docédigo. Igoritmos _ sh — °) Poner al minimo el volumen Encender el aparato Funcién deseada: CD. sintonizador, tocacintas iEsta encendido?, Encender el fuego Alustar nivel de volumen deseado Ajustar balance estereoténico Ajustar tonalidad del ecualizador Poner aceite en la sarten aceite? sa Esta Calentar caliente? elaceite ay b) Inicio Romper los huevos ) . sobre la sartén ) Levantarse Dejarios calentar dos minutos retirarios Bafarse Desayunar 154 Introduccion ala computacién ELEMENTOS PARA CONSTRUIR ALGORITMOS I odo mecanismo se construye a partir de piezas elementales (como los engranes y resortes ¢ la caja negra). Igual ocurze con los algoritmos, éstos tienen sus piezas elementales y cualquier py, blema se soluciona eméonando en forma adecuada esas piezas. Las piezas elementales que se usan para construir algoritmos son las siguientes: Variables: secipientes especiales para depositar datos. Control de entradas y salidas: indicaciones para permitir que los datos fluyan hacia el in. terior o hacia el exterior de la caja negra (que efectuard el proceso). Operaciones: la operacién de asignacién consiste en colocar un dato en el interior de una vi. riable, mientras que las operaciones matematicas son procesos elementales que transforman datos numéricos Comparaciones y selecciones: las comparaciones relacionan dos datos y sirven para impo- ner condiciones. Con ellas es posible tomar una decisién al considerar si la condicién resulto ver dadera o falsa. La metdfora del tren Hemos incluido esta seccién para tratar de facilitar la comprension de los algoritmos, si le resulta muy trivial puede pasar a las siguientes. Vamos a comparar los diagramas de flujo (y por tanto Los algoritmos) con un tren. Un ferrocarril tiene una via precisa que le indica el camino que debe seguir. En un viaje siem- pre hay una estacion de origen y una estacion de destino. El tren iniciard su recorrido en la esta- cidn de origen y pasar por todos los puntos donde le Hleve la via (sin poder evitarlos) hasta que finalmente llegue a su destino. Un diagrama es exactamente esto, el camino que debe seguirse para ir desde el inicio y Uegar hasta un fin (figura 9.6a). Pues bien, prosigamos con el tren. Un viaje del tren no tiene como propésito que los vagones den un paseo sino, por el contrario, deben transportar personas y objetos hacia diferentes lugares. Consideremos tinicamente personas. Cada pasajero compra un boleto que le da derecho a un asiento unico - parar los asientos con La 1 fio a su asie pue nos companteros. f iy utilizados) a lo larg de lay personas que estin en el tren lo abc ninar: el maguinista, los vigilantes, ca 74 tambien ciertos datos que estarin d mos ha ctuar los procedimientos y que dejarin de importar cuando acave. Sin embargo, los pasajeros son independientes de la linea ferroviaria y deberin abo viaje. Esto se hace en estaciones intermedias donde existe una seccidn especial ‘0s aborden el tren cuando Hegue y otru diferente por donde saigin los pasaie- ta sirve para entrada y salida de pasajeros, pero son ex eender di para que zos. (En Fig. 9.6 DF, ooo aS => auerstaro | ESTACION Introduccidn ala computacion Los algoritmos también requieren de un elemento que permita recibir datos desde el exterior de otro diferente que permita enviar datos hacia el exterior (Figura 9.6¢), La operacién de asignacin en el tren consistiré de indicarle al pasajero su lugar para que s¢ siente; y en el algoritmo la asignacién serd guardar el dato en la variable. Por tiltimo del destino del posibilidades. sremos que las vias llegan a tener cambios y el camino que tome el tren dependers jaje. Antes de llegar al cambio, el operador selecciona el camino comparando sy En los algoritmos las condiciones permiten decidir entre dos posibles flujos (seguin se cumpiy 6 no una comparacién), y cada uno tendrd procesos diferentes (figura 9.6) Un ejemplo de algoritmo escolar La figura 9.7 presenta un sencillo procedimiento de inscripcién, y nos sirve como primer ejemplo para entender como se eslabonan procesos elementales para hacer algoritmos. (Para facilitar su Recoger solicitud anilisis hemos puesto un mtimero a cada bloque.) de inscripcion Veamos con cuidado el diagrama: * Los bloques 1 y 5 delimitan el proceso (INICIO y FIN). + El bloque 2 indica que debe efectuarse una entrada de datos (RECOGER). + El bloque 3 indica un proceso que se verifica sobre el objeto recibido (LLENAR). + El bloque 4 indica que deberd efectuarse una salida de datos Entregat'sollctud (ENTREGAR). 3 4 Este caso de las inscripciones nos permite ampliar la compleji- dad del algoritmo (figura 9.8) Veamos cada linea: + Los bloques 1 y 6 delimitan el proceso (INICIO y FIN). + El bloque 2 indica que debe efectuarse una entrada de datos (RECOGER). + El bloque 3 indica un proceso que se verifica sobre el objeto recibido (LLENAR). + El bloque 4 indica que deberd efectuarse una salida de datos (ENTREGAR). + El bloque 5 sefiala una condicién (s1 algo ocurre ENTONCES efectuar una accién). * En el bloque 5.1 si la condicion se cumple entonces efecta un proceso (TRAMITAR). + En el bloque 5.2 si la condicidn no se cumple entonces efectiia otro proceso diferente (RECHAZAR). ~ Algoritmos A continuacion veremos con detalle cada uno de los elementos de los algoritmos, Variables Por variable entendemos un lugar! o rec piente donde se guardan datos. Recoger solicitud de inscripcion » Se le Hama curiadle porque los datos guar Lienar solicitua dados pueden ser cambiados en cualquier mo- 3 mento, Podemos hacer una analogia entre una va- riable y el buzén de una casa. El buzén es un recipiente donde se almacenan cartas (hasta el zadlas). El contenido del Entregar solicitud 4 momento de ser w buzén es variable, pues cada carta que recibe es diferente. La variable es un lugar donde se va a guardar un dato hasta Tramitar inscripcion Rechazar inscripeién _ 5. que sea uuilizado Para facilitar el ma- nejo de las variables se les pone un nombre. Este nombre puede ser una o varias letras 0 combinacion de letras y numeros.? El nombre de una variable también es conocido como identificador Las variables utilizadas en los algoritmos son muy similares a las varias algebraicas de las férmulas.+ Por ejemplo, recuerde la formula para calcular el drea de un rectangulo: a=bxh Las letras a 4 ¥ + indican que alli debemos colocar los valores correspondientes al rea, a la base y a la altura, respectivamente. En un programa ese lugar estata dentro de la memoria de la computadora, rencia det buzdn, cuando ef dato es leido no se sale de la variable (es como si leyese la carta dentro del bueén), y » se cambia al introduciese un dato nuevo (la carta anterior sale solo si entra una carta nueva). 3si el nombre de la variable consta de varias palabras, étas se separin con un “_" y no con espacio, por ejemplo PRECIO_POR_PIEZA, las pliticas com los amigos al deeir Fulano, Sutano o Men otamos sna persona, peto sin precisar alguien en particu 4Un uso coman de variables sata en no, que som palabras com las que de > Introduccidn ala computacion La formula permite calcular el drea (desco- nocida) a partir de los valores de las otras dos variables, sin importar el rectingulo de que se trate Al desarrolla sy programas po- demos imaginar las variables como casillas. algoritr Cada casilla tendré un nombre y serd diferen- te del nombre de otra (figura 9.9), En cada ca- silla se podré almacenar slo un dato a la vez, y para introducir o leer el dato en el interior de una casilla, se deberd hacerlo mediante su nombre. Algunos ejemplos de identificadores (nombres) para variables posibles son; EMPLEADOL PRECIO, X, Y, SUELDO_NETO, IVA, GRUPOSIA. Salida Este término significa que, al realizarse el algoritmo, se deberd entregar alguna informacién, En general, las salidas envian mensajes, valores © resultados al usuario (los datos pueden estar guardados en una variable o ser indicados explicitamente). Los simbolos utilizados en Jos diagramas de flujo para indicar la salida se muestran en la figu- ra 9.10 (puede usarse cualquiera de los dos). En el interior de la figura se indica la informacién que deberd salir. Los seudocddigos tienden a indicar la salida con palabras como IMPRIMIR, ESCRIBIR, ENTREGAR, ENVIAR 0 PRESENTAR, seguidas de la informacion que deberd salir. Un ejemplo muy sencillo de sali- da de datos, mostrado en la figura 9.11, corresponde a un saludo; la misma figura muestra lo que se ob- servard en la pantalla de una com- putadora al aplicar este algoritmo. Fig, 9.10 Es — 5? Entrada Goie termine ea que durante La yatlizicton del algoritmo se deber reco- alguna informacion Por eada dato que deba entrar, debe- ssarse una variable (tigura 9.12 \ Los simbolos utilizados en los di gamas de flujo para indicar la entrada &e muestras en la figura 9.13, (Puede e gura 9.1 ~ S| sarse cualquiera de los dos.) En el i ombre de or de la figura se coloca el ard la in- a variable donde se almacen formacion que entrard. Fig. 911 Los seudocddigos tienden a indicar la en- Sh trada con palabras como LEER, PEDIR, OBTE: NER, SOLICITAR 0 INTRODUCIR, seguidos de la . variable donde se almacenard la informacion. ‘ Pritdr Fig, 9.13 e un dato (por el identi- EI siguiente algoritmo (figura 9.14) nos pi ficador usado suponemos que serd el nombre de alguna persona), mis- mo que una vez proporcionado serd colocado en la casilla etiquetada (nc) como NOMBRE Si este algoritmo Jo desarrolla una computadora, ésta suspenderi lo que esté haciendo hasta que el usuario introduzca el dato solicitado.‘ Nombre - . - Este es otto ejemplo interesante (figura 9.15) donde se pide un dato (el identificador indica un nombre de persona) y enseguida se envia un saludo a esa persona. Fig. 9.14 vie un .nsaje para indicar la na tes de esperat respuesta cofeetuae una entrada 5 dducir. (Esto equivale a pregunt 60 Introduccién ala computacién Procesos Proceso significa transfor macién de unos datos en otros. Es muy comin que esos datos se encuentren aloja- dos en variables. El simbolo utilizado en los diagramas de flujo para indi- “Hola car proceso se muestra en la nernore figura 9.16. En el interior de figura se indica el proceso que deberd efectuarse. Fig, 9.15 Fig. 0.16 No obstante lo complejo de la transformacidn indicada por un proceso, todo se compone de asignaciones y operaciones matemiticas. e Asignacion Una asignacién consiste en determinar el valor de una variable. En otras palabras, la asignacién coloca un dato en el interior de la casilla etiquetada con el nombre de la variable. La asignacién puede ser directa, indicando el valor exacto, o a través de una expresién (una ecuacidn), Por ejemplo: ()a=3 Q)b=4 Q)c=Var+R (1) y (2) Son asignaciones directas del valor y (3) recurre a una expresi6n algebraica (figura 9.17). El contenido de @ y 6 fue determinado con exactitud, mientras que el contenido de ¢ depende de los valores almacenados en a y b. Algoritmos para indicar el proceso de asignacién en los algoritmos se recurre al simbolo “=", y algunas yecsal simbolo “<—", como se muestta en el siguiente ejemplo:® NOMBRE ~ ‘Juan Pérea” o NOMBRE < “Juan Pérez" (xo) Ambas formas indican lo mismo: a la variable NOMBRE se le asig- sel dato “Juan Pérez”. La figura 9.17 muestra el diagrama de flujo que corresponde a este igoritmo con tres asignaciones: + Acumuladores y contadores zl concepto de asignacién en los algoritmos permite construir una es- suctura muy importante: el acumulador. Un acumulador es una estructura que permite introducir, a una va- cuble, un nuevo valor, tomando en consideracion el valor que ya es- aba dentro de ella. Veamos esto con un ejemplo: SUMA = SUMA + 100 Fig. 9.17 ta expresiOn significa que el contenido de SUMA serd incrementado en 100, y el resultado se de- | posita nuevamente en SUMA. Es muy importante recordar que esta construccién sdlo tiene sentido dentro de los algoritmos, y que en dlgebra es una barbaridad. ‘Veamos qué pasa con el acumulador dentro de un pequefto algoritmo (figura 9.18) Inicio (1) SUMA = 50 (2) SUMA = SUMA + 100 (3) SUMA = SUMA x 2 Fin Fig. 9.18 aicar que en NUMERO se almacenari el valor 1. NUMERO = 1 NUMERO == | NUMERO <1 Hacer NUMERO igual aL Poner | en NUMERO. Sea NUMERO = 1 Introduccién ala computacion En la linea (1) se introduce el numero 50 en la variable SUMA. En la linea (2) se retoma el valor en SUMA (30) y se le suman 100, obteniéndose 150, que guardan nuévamente en SUMA En la linea (3) se toma nuevamente el valor en SUMA (150) y se multiplica por 2, obteniéng, 300, que se guardan nuevamente en SUMA. Como deducimos del eiemplo anterior, no sélo es posible la suma en los acumuladores, Los guientes también son acumuladores vilidos: A=Ax30 B=B+C F=D/F Un caso particular ¢s el contador, que es una estructura utilizada para llevar una cuenta A la variable utilizada se le suma una cantidad constante, que normalmente es +10 —I; por | ejemplo? | CONTADOR = CONTADOR + 1 | Si se tiene el siguiente algoritmo | Inicio CONTADOR = 5 CONTADOR = CONTADOR + 1 | CONTADOR = CONTADOR + 1 CONTADOR = CONTADOR * L CONTADOR = CONTADOR + 1 CONTADOR = CONTADOR + 1 Escribir CONTADOR Fin Al ejecutarse se escribird el niimero 10, pues el proceso de sumar 1 se ha repetido cinco veces, La utilidad de los contadores la apreciard claramente dentro de la seccién dedicada a las itera- ciones. 7k algunos libros usted puede encontrar mods diferentes para describir un contador. Las siguientes son formas equivalentes par it dicar que CONTADOR se inctementard en 1 CONTADOR = CONTADOR + | ‘Agregar | a CONTADOR Inevementar CONTADOR Algoritmos —————— » Operaciones matematicas js operaciones matematieas son procesos para la manipulacién de ntimeros, En los algoritmos encontramos dos niveles basicos de operaciones: aritméticas y funciones. Las operaciones aritméticas son suma, resta, multiplicacion, division, potencias, raiz cuadra- a, etcetera (+ LV ade Las operaciones con funciones son calculos con senos, cosenos, tangentes, logaritmos, etcéte- ya (sen, cos, tan, log....). | Por eiemplo, en la asignacin c= V a? ~ #2, la expresién utilizada incluye las operaciones de su- sm, potencia y raiz cuadrada, Otro ejemplo es y = sen (x) cuya operacién debe calcular el seno de.x Cuando se requiere de una operacin matemética en un algoritmo, ésta se indica (incluso con palabras) sin considerar si ya esta imple. mentada 0 no en algiin lenguaje en particular. Esta consideracion se efectuard después. ez» Base, altura ¢ Algunos ejemplos g J Con todos los elementos anteriores es posible desarro- fi- | llar algoritmos mas itiles. A continuacién mostramos un algoritmo para calcular el érea de un triéngulo. (Figura 9.19). 5 GC = — (GF-32) 9 | ) Inicio Leer BASE, ALTURA BASE X ALTURA == a Escribir AREA Fin AREA Otto algoritmo util es el siguiente, que nos permite convertir grados Fahrenheit a centigrados (figura 9.20). Inicio Leer GRADOS FAHRENHEIT 3° X (GRADOS FAHRENHEIT — 32) Escribir GRADOS_CENTIGRADOS Fin GRAD CENTIGRADOS Introduccién ala computacién Condiciones y selecciones * Condicion Es una situacidn que puede ser calificada como verdadera o falsa. En general las condiciones cop, paran dos datos, por ejemplo: EDAD> 18 (la EDAD ¢s mayor de 182) B#0 (¢B es diferente de 0?) A=D (Aes igual a D2) En algunas ocasiones la condicidn consta de sélo un dato que se puede calificar de falso 0 dadero, por ejemplo EsTOY_VIVO (el resultado siempre es verdad) * Seleccién Consiste en elegir entre dos acciones diferentes, considerando si se cumplié (0 no) una condicién, En nuestro ejemplo del cambio de neumitico, todo el proceso est condicionado a que algunz llanta se haya estropeado; de no ser asi todo el proceso seria inutil. Del mismo modo en los algo ritmos hay pasos que conviene se ejecuten sdlo si alguna condicion se cumple El simbolo utilizado en los diagramas de flujo para indicar la seleccién se muestra en la figura 9.21. En el interior de la figura se indica la condicién, en una de las ramas se marca con V o SI pata indicar que se tomard ese otro camino si resulta verdadera la condicidn, y en la rama opuesta se co- loca el signo F o NO para indicar que se tomar ese flujo en caso de resultar falsa la condicisn. Fig. 9.21 Los seudocddigos tienden a indicar las selecciones con la frase SI condicién ENTONCES accion En ocasiones se usa una frase mds completa: Sl co ndicion ENTONCES acciénl EN OTRO CASO accidn2 | De esta forma se esti | | gciendo: si una condi- 2) ») an se cumple, enton- os se efectuard algue yacciGn y en otro so se tomara un | curso diferente. Los tér- | minos condicién y accién com esponden a expresiones que | e sustituirén al momento de Lanta PONCHADA? EDAD >18 Cambiar ianta disefar el algoritmo. Veamos :igunos ejemplos ra 9.22) ,) Si EDAD 2 18 Entonces Votar (Si la edad de la persona es mayor o iguala—_¢) | 18 entonces podré votar, de lo contrario no votard) SUELDO, > 500 Impuesto = 15% ) Si LLANTA_PONCHADA Entonces Cam- biar_Llanta Si una Ilanta esté ponchada entonces deberd cambiarse, de lo contrario no es necesario cam- biarla). ) Si SUELDO > $500 Entonces IMPUESTO = 15% (Si el sueldo supera los $500 entonces se aplicaré un impuesto del 15%) Fig. 9.22 * Algunos ejemplos La seleccién hace mas poderosos los algoritmos, pues permite tomar decisiones. El siguiente algo- ritmo (figura 9.23) permite calcular el valor absoluto de un numero (recuerde que el valor absolu- 10 indica el valor del mimero, sin contemplar el signo). Introduccion ala computacion > 0 Entonces NUMERO En Otro Caso. x NUMERO Fin Observe lo siguiente: NUMERO 2 0 significa que “NUMERO és positivo” por lo tanto —1 X NUMERO indica que el valor serd positive (un auimero negativo multi- plicado por I se vuelve positivo). Otra utilidad tipica de la seleccién consiste en evita que se produzcan errores; por ejemplo, la division entre cero no estd definida matemdticamente, entonces mostra- remos un algoritmo que evita se efectie la division si su divisor es cero (figura 9.24). COCIENTI Inicio DIVIDENDO/ Leer DIVIDENDO, DIVISOR a | “IMPOSIBLE Si DIVIsOR # 0 Entonces olviDI® finteio: COCIENTE = DIVIDENDO / DIVISOR Escribir COCIENTE Fin En Otro Caso Escribir “IMPOSIBLE DIVIDIR” Fin Fig. 9.24 Algoritmos seraciones 1 repeticiones de una misma accién o de un grupo de acciones. A las iteraciones tambien se les noce Como ciclos o repeticiones. e Introduccion a los ciclos iteracion indica, de modo sencillo, que una misma accién se debe realizar varias veces. Por emplo, la actividad caminar ficilmente se puede describir como la repeticidn de dar un paso Tomemos otro caso, imagine que en estos momentos se va a comer un racimo de seis uvas que sene ef Sus manos. El proceso lo podriamos describir asi: Inicio Desprender una uva Llevarse la uva a la boca Comerse la uva Desprender una uva Llevarse la uva a la boca Comerse la uva Desprender una uva Llevarse la uva a la boca Comerse la uva Desprender una uva Llevarse la uva a la boca Comerse la uva Desprender una uva Llevarse la uva a la boca Comerse la uva | Desprender una uva Llevarse la uva a la boca Comerse la uva Fin Observe que el proceso fundamental consiste en tres pasos: (1) Desprender una uva, (2) Llevar- se la uva a la boca y (3) Comerse la uva; y que este mismo proceso es ejecutado seis veces. Si el ra- Introduccidn ala computacion cimo hubiese sido de 100 uvas (y se las fuera a comer todas), imaginese qué largo seria desc, todo el proceso, Utilizando el concepto de iteracién simplificamos la descripcidn del siguiente modo Inicio Repetir 6 Veces Inicio Desprender una uva Llevarse la uva a la boca Comerse la uva Fin Fin Y atin podemos hacer mas general la descripcién, sin limitarla a racimos de seis uvas: Inicio Mientras (haya uvas) Hacer Inicio Desprender una uva Llevarse la uva a la boca Comerse la uva Fin Fin ¢ Ciclos indeterminados Un ciclo es indeterminado cuando no existe un mimero exacto de repeticiones y el ciclo se detiene al cumplirse una condicién. En este tipo de ciclos resulta posible que la condicién se cumpla de inmediato y por tanto no haya repeticién alguna. Para efectuar ciclos indeterminados utilizaremos la estruc- tura llamada MIENTRAS. Con esta estructura slo habré repe- ticidn si la condicién resulta verdadera. La figura 9.25 muestra cémo se representa la estructura MIENTRAS en los diagramas de flujo. En el interior del rombo se coloca la condicién. El proceso a repetir se coloca en el rec- tdngulo de la rama verdadera. La flecha que sale del recténgulo Algoritmos. SS ——_ ¢ se conecta justo arriba de la condicién representa el ciclo (la repeticin), Por ultimo vemos gue la rama alsa muestra la salida del ciclo, eHay En seudocddigo esta estructura se indica mediante productos? esta forma MIENTRAS condicion HACER accién Es muy importante destacar que primero se evahia si la condicion es verdadera, y después se ejecuta la ac- cion. El proceso se repetird hasta que la condicién se vuelva falsa, Anadir el PRECIO al total Como ejemplo imaginemos el funcionamiento de la maquina registradora de un supermercado: por cada cliente la maquina sumara precios, siempre y cuando la cajera reciba productos para registrar; cuando se acaben los productos entonces imprimird la cuenta. Una des- cripcidn sencilla del trabajo de la maquina registradora es el siguiente (figura 9.26): MIENTRAS (haya productos) HACER LO SIGUIENTE Inicio Leer PRECIO Anadir PRECIO al TOTAL Fin Imprimir TOTAL ¢ Ciclos determinados Un ciclo es determinado cuando el grupo de instrucciones deja de repetirse después de un ni- mero exacto de eweltas. Para lograr este propdsito se utiliza un contador (seccién Acumuladores y contadores) que lleve la cuenta de los ciclos efectuados y una comparacién que determine cuando se alcance ¢l li- mite de repeticiones. De acuerdo con esto, podemos utilizar la estructura MIENTRAS para obtener ciclos determina- dos agregando un contador (dentro del grupo de instrucciones a repetir) y modificando la compa- racién para detectar el limite de repeticiones. En el siguiente algoritmo calcularemos la décima po- rencia de un mimero cualquiera (figura 9.27). — ? Introduccion ala computacion Inicio Leer NUMERO. CONTADOR = 1 POTENCIA = 1 Mientras CONTADOR < 10 Hacer Inicio POTENCIA = POTENCIA X NUMERO CONTADOR = CONTADOR + | CONTADOR = 1 Fin ribir POTENCIA, = Fin POTENCIA=1 ¢ Algunos ejemple ficontaDom A continuacién mostramos dos ejemplos en los cuales se utilizan ci- 10? clos indeterminados, es decir, se desconoce el total de repeticiones. v Al retomar el algoritmo para evitar se efectiie una divisién si el divisor es cero, lo modificaremos para que el divisor se vuelva a leer, POTENCIA = hasta que se introduzca un ntimero diferente de cero, POTENCIA x NUMERO Inicio Leer DIVIDENDO, Leer DIVISOR CONTADOR = Mientras DIVISOR = 0 Hacer CONTADOR + 1 Leer DIVISOR COCIENTE = DIVIDENDO / DIVISOR Escribir COCIENTE Fin Observe que si se introduce un valor de cero en la primera lectura de DIVISOR, la condicién (del MIENTRAS) resultard verdadera y por tanto la lectura se repetird hasta que se obtenga un valor que no sea cero. Como en este punto ya se asegurd que el divisor sea valido, la di- vision se efectia | El siguiente es un ejemplo mas interesante, consiste en un algorit- " mo para convertir un numero decimal a su equivalente binario, y se Fig.927 basa en el método de divisiones sucesivas (unidad 5); sin embargo, el resultado se imprimir al revés. Algoritmos Inicio Leer DECIMAL DIVIDENDO = DECIMAL COCIENTE = | Mientras COCIENTE # 0 Hacer Inicio oe COCIENTE = Cociente (entero) de 2 |DIVIDENDO. RESIDLO = Residuo de 2 DIVIDENDO Escribir RESIDUO DIVIDENDO = COCIENTE Fin Fin Observe que antes del ciclo MIENTRAS estd la linea | cOCIENTE = 1 que sirve para asegurar que el ciclo se inicie. | | Acontinuacién mostramos otros dos ejemplos, los cuales si | utilizan ciclos determinados, ¢s decir, se conoce exactamente el aii total de repeticiones UWA CONTABOR Por ejemplo, el algoritmo (figura 9.28) para calcular la ssuma de los cien primeros numeros (1 +2 + 3 +..+ 99 + 100) | “eel siguiente —— arose CONTADOR » 1 Inicio SUMA = 0. CONTADOR = | Mientras CONTADOR < 100 Hacer Inicio SUMA = SUMA + CONTADOR | CONTADOR = CONTADOR + | Fin Imprime SUMA Fin Como tiltimo ejemplo mostramos el algoritmo (figura 9.29) para imprimir los cien primeros nuimeros de la serie de Fibonacci (0, 1, 1, Teak 5, 8, 13, 21,...) 7 ~ rea thea un pIr ty SJeloflea- cor éaver Cr A-0 B= CONTADOR = 1 Mientras CONTADOR S 100 Hacer Inicio C=A+B CONTADOR = CONTADOR + I Fin Fin Ese 1 CONTADOR = CONTADOR + Pet eR Fig, 9.29 Introduccién ala computacion ‘Y

You might also like