Está en la página 1de 90
Facultad Ciencias de fa Educacion ALGORITMOS Indice Presentacién, i Objetivos del Modulo 2 Objetivos Generales: 2 Objetivos Especiticos. 2 Metodologia de Trabajo y Evaluacion 3 Introduccion a los Algoritmo, a 4 LL, Fundamentos. 4 12, Metodologia para la solucién de problemas por medio de la computadora...5 13. Tipos de Algoritmos. 6 Algoritmos Cualitativos: 7 Algoritimos Cuantitativos 12 1.4, Técnicas para la formulacién de algoritmos 4 Pseudocédigo 14 Diagrama de Fljo 4 Recomendaciones para el disefio de Diagramas de Flujo. 4 1.5 Ejercicios Practieos....... nnn nnn so IT Estructuras Algoritmicas 18 21. Variables, Constantes y Operadores, Is Cabecera 18, Seccién de identificacién de variables y constantes. 19 21. Tipos de Dat05.ennnn cer anil Datos Numticos. 2 Datos Légicos n Datos de Caricter 2 Datos de Cadena (String) 2 23. Operadores 23 Bjercicios Pricticos. 29 Sentencias de Control... .oenn ee 3.1, Sentencias de Control 30 32, Sentencias Secuenciales. 31 Asignacion, Ejercicios Resueltos, 3 Bjercicios Propuestos....... sanacanca naa aa/36 3.3. Sentencias de Decision 0 Condicionales 37 Estructura de Seleccién Simple SI 37 Estructura de Seleccion Doble SI - SINO. 40 3.4. Sentencias de Seleccién Anidadas SI a Estructura de Seleceién Mittiple sninnunnnnnnen ood Ejercicios Resueltos. 45 Ejercicios Propuestos. 50 35. _ Sentencias de Bucles 0 Lazos Repetitivos, 34 Sentencia Para / Desde / Hasta / Haga 55 Ejercicios Resueltos. 7 Ejetcicios Propuestos.... 36 Contadores Acunlador Bucles Infinitos, Ejercicios Resueltos. Bjercicios Propuestos, 3.7, Sentencia Repetir \Hasta .. Bjercicios Resueltos, Ejercicios Propuestos, 2.11, Eleccién Estructura Repetitiva Adecuada... Autoevaluacion Final Atreglos, Vectores y Matrices 41. Arreglos. 42. Vectores Ejercicios Propuestos, 53. Matiz. Ejercicios Propuestos... Bibliografia Anotaciones, Derechos Reservados. 61 3 65 65 66 66 68. 7 n 3 16 1 9 0 80. 81 82 84 85 87 Presentacion El desarrollo vertiginoso de las computadoras ha hecho que cada tipo de persona comiencen tener acceso a la programacion de sus propias miquinas, facilitando asi el estudio y desarrollo de programas para la solucién de problemas particulares en las empresas, oficinas y en mismo hogar. La necesidad de implementar metodologias para el aprendizaje de la programacion en diferentes lenguajes.y paquetes de utilidad, obliga al cuestionamiento sobre el desarrollo de la logica estructurada en las personas commines obligindose, asi, a pensar sobre la forma de ejecucion de cualquier accién tanto humana como mecanica o de sistemas. El desarrollo del médulo de algoritmos y flujogramas es un tema findamental en el disefio de programas por lo cual el alummo debe tener buenas bases que le sirvan para poder desarrollar de manera facil y rapida sus programas Este médulo de Algoritmos y Flujogramas le servira de apoyo al maestro, en su labor cotidiana de aprendizaje y al estudiante le facilitara desarrollar su capacidad analitica y creadota, para de esta manera mejorar su destreza en la elaboracién de algoritmos que sirven como base para la codificacién de los diferentes programas que tendri que desarrollar a lo largo de su carrera Se recomienda que el estudio de este material se lo realice en grupos, elaborando los ejercicios que se muestran en la Guia de Estudio. Exitos en este médulo que solo trata de dar un enfoque actual y personal de las maravillosas capacidades que se puede lograr, domtinando esta temitica Los Autores, Objetivos del Modulo Objetivos Generales = Comprender la naturaleza de los algoritmos y flujogramas y su aplicacién en la programacion sobre computadoras, Objetivos Especificos * Crear enel estudiante la necesidad y agilidad para pensar en forma logica y ordenada con el fin de resolver problemas en forma eficiente + Despertar en el estudiante el espiritu de programar * Dar las bases fiandamentales.para el desarrollo de cualquier tipo de programacion simple, estructurada y orientada a Objetos como Pascal, C++ , Visual Net Metodologia de Trabajo y Evaluacion La propuesta metodolégica se basa en un modelo educativo centrado en el alumno y en los grupos colaborativos. En este sentido el participante es el responsable de su proceso de aprendizaje: debe interactuar con los contenidos del médulo mediante el sistema de estudio a distancia, desarrollar su juicio critico y tener la iniciativa de aprender continuamente todo aquello que le sea esencial durante el proceso para cumplir con las intenciones del médulo de Algoritmos y fujogramas. Asi mismo, el participante debe realizar actividades con otros compafieros, de tal forma que entre ellos, construyen diferentes. experiencias de aprendizaje que enriquezcan los contenidos y el desarrollo de distintas habilidades, por ejemplo, uso de las tecnologias, trabajo cooperativo, espacios discusién de ideas, sintesis y anilisis, juicio critico, entre otras. Durante el desarrollo de este modulo, tienen especial importancia actividades como: * La entrega de trabajos individuales y grupales por escrito, que se indicaran en Jos encuentros establecidos de clases presenciales. + Exposicion de los trabajos grupales y de los trabajos de investigacion. utilizando herramientas tecnolégicas pedagégicas que usted conozca y domine * La elaboracién de las Autoevaluaciones y seleccidn de temas para investigacién. ¥¥ auto-estuidio por parte de los alumnos, y aplicacidn de evaluaciones practicas para reforzar el conocimiento adquiido por el alumno + Ampliacién de los temas por parte del facilitador Capitulo | | Introduccion a los Algoritmos CAPITULO 1 Introduccion a los Algoritmos Fundamentos ‘Metodologia para la Solucién de Algoritmos Tipos de algoritmos ‘Técnicas para la formulacion de Algoritmos. Ejercicios Pricticos 1.1. Fundamentos Un elemento bisico para el fimeionamiento del computador es el Software, el cual est formado por una serie de instrucciones y datos que permiten el aprovechamiento de los diversos recursos de la computadora, para resolver gran cantidad de problemas. El software esti constituido por programas los cuales son un conjtunto detallado de instrucciones que instruyen al procesador para realizar determinados procesos patticulares. Los datos pueden ser cualquier informacién que necesite el programa: caracteres, miimeros, imigenes, ete Por otto lado tn computador es incapaz de hacer cosas por st propia iniciativa, hace iimicamente lo que se le ordene para lo cual es necesario especificarle detalladamente paso a paso de que manera debe ejecutar un conjunto de ordenes. Este proceso de ensefiar al computador se conoce como programacién: y su producto es el programa. Un programa se eseribe en un lenguaje de programacion el eval proporciona la interfaz hombre méquina, Asi pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programacién y los programadores son los esctitores y disefiadores de programas. Un programador a su vez da solucién a un problema ‘mediante la resolucion de algoritmos 6 diagramas de fujo, et ALGORETNO Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a Ja solicién de un problema especifico. La naturaleza de los problemas varian con el ambito 0 con el contexto donde estan planteados; asi, existen problemas matematicos, quimicos, flos6ficos, ete, Segiin esto In naturaleza de los algoritmos también es variada -ynno todos ellos pueden ser ejecutados por la computadora, La palabra algoritmo aparecié por primera vez en el diccionario en 1957; antes se encontraba como la palabra algorismo, que significa, proceso de hacer cilculos aritméticos utilizando niimeros arabigos, Capitulo! | Introduccion a los Algoritmos Enh edad media, los abacistas utilizaban el abaco para hacer sus céleulos, mientras que Jos algoristas lo hacian con los algorismos. Para esta época, no se sabia a ciencia cierta cual era el origen de la palabra algorismo, los lingitistas intentaron hacer una aproximacién, usando combinaciones de palabras como algirios (sin dolor) y arithmos (nuimero), otros decian que la palabra provenia del "Rey Algor de Castile” Finalmente, los historiadores de la matemitica encontraron el verdadero origen de la palabra algorismo: proviene del nombre del autor de un famoso libro persa, Abu Jafar ‘Mohammed ibn Musa al-Khowériami, literalmente "Padre de Ja'far, Mohanimed, hijo de Moses, nativo de Khowérizm. Al-Khowarizm esoribié un libro may famoso que senté Tas bases del dlgebra 1.2. Metodologia para la solucién de problemas por medio de la computadora Definicién del Problema’ Esta fase esta dada por el enunciado del problema y consiste es estudiar el problema planteado dividiendo e tantas partes como sea posible, para obtener una idea clara y concisa sobre lo que se desea obtener como resultado, Es importante que se conozea Jo que se desea que realice Ia computadora; mientras esto no se conozea del todo no tiene mucho caso continnar con la siguiente etapa Andlisis del Problema. Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir Los datos de entrada CCual es la informacion que se desea producir (salida) Los métodos y formulas que se necesitan para procesar los datos, Datos Proceso Enurada Una recomendacién muy practica es el que nos pongamos en el lugar de la computadora 'y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados Disetto del Algoritmo. Consiste en describir las secuencias ordenadas de pasos que conducen a la solucién de un problema dado. Las caracteristicas de un buen algoritmo son: Capitulo! | Introduccion a los Algoritmos ‘Ser algoritmo: Tiene que consistir en una secuencia de instrucciones claras y finitas, es decir debe estar compuesto por un nimero determinado de pasos que tiene fin sin importar el nimmero de anstruceiones a utilizar ‘Ser correcto: F) algoritmo ha de resolver el problema planteado en todas sus facetas, teniendo en cuenta todas las posibles situaciones que puedan plantearse y no debe penmitir dobles interpretaciones ‘Sor legible. Donde cada secuencia de un algoritm debe ser definida en forma precisa, de tal manera que las acciones a ejecutar en cada tmo, estén rigurosamente —especificadas y no admitan ambiguedad. ‘Ser eficiente: tocos los pasos, instrucciones u operaciones deben optimizarse de manera ue se obtenga la solucion mis. corta y eficiente de resolver el problema planteado Codificacién : La codificacién es la operacién de escribir la solucién del problema (de acuerdo a la logica dal diagrama de flujo o pseudocodigo), en tna serie de instruceiones detalladas, en un eddigo reconocible por la computadora, la serie de instruceiones detalladas se le conoce como cédigo fuente, el cual se eseribe en un lenguaje de programacién o lenguaje de alto nivel. Prueba y Depuracién; Los errores humanos dentro de la programacion de computadoras son nmichos y aumentan considerablemente con la complejidad del problema, El proceso de identificar y eliminar errores, para dar paso a una solucion sin errores se le llama depuracién, La depuracién o prueba resulta una tarea tan ereativa como el mismo desarrollo de Ia solucién, por ello se debe considerar con el mismo interés y entusiasmo, Resulta conveniente observar los siguientes principios al realizar una depuracién, ya que de este trabajo depende el éxito de nuestra solucion. 1.3. Tipos de Algoritmos El concepto de algoritmo se aplica a muchas situaciones cotidianas, Por ejemplo, cuando se quiere explicar a una persona, la ubicacién de una casa o edificio, generalmente se le describe la ruta que debe seguir desde wn determinado punto para legar a la direccion deseada, en otras palabras, se Ie proporciona un algoritmo que le permite Hegar a al destino sin ningtin inconveniente, Una receta de cocina también puede considerarse como un algoritmo para elaborar una comida. Los planos de un modelo a escala, indican el orden y la forma en que deben ser tnidas las piezas para construir el modelo. En este contexto existen dos tipos de algoritinos computacionales, + Algoritinos Cualitativos + Algoritmos Cuantitativos Capitulo! | Introduccion a los Algoritmos Algoritmos Cualitativos: ‘Son aquellos en los que se describen cualquier accién 0 conjunto de acciones uflzando palabras. pero siempre enmareadas en tres estructuras findamentales que son 1. Secuencias de acciones 2. Decisién de accién 3. Ciclos de acciones ‘Secuencias de acefones’ Para escribir una secuencia de ordenes 0 acciones todo To que tiene que hacer es colocar uma nueva orden o una nueva aceién después de la iltima que haya colocado, De esta manera se entiende Ja secuencialidad y la ordinalidad en la ejecucion de esas acciones, Ejemplo: Eiercicio para cambiar un foco quemando por tno revo. ‘Situar una escalera bajo el foco quemado Elegir un nuevo foco ‘Subir fv escalera hasta alcanaar el foco Girar ef foco on seatido antiboracio hasta sacarlo Colocar ef nuev foco en ef mismo lugar Girar en sentido herario hasta que quede apretado Bajar de Ia escalera Puede usted notar que para utilizar la estructura de secuencia (que @ veces parece ser todo lo que tenemos que hacer es ir colocando una accién tras otra ¥, por supuesto, racionales en el orden de dichas acciones, el orden de los factores si altera el resultado en los diseiios de algoritinos. Decisién de aocién: Son condiciones que nos permite que podamos decidir cule el camino légico correcto a tomar para resolver tn problema eficientemente ‘Vamos @ desarrollar el mismo algoritmo, para ello vamos a incorporar una lineas de decision que nos peritan tener un algoritmo mas genérico y que nos petmita lograr mejor el objetivo, asi: 1. Situar una esealera bajo el foco quemado 2. Blesir un nuevo foco ‘Sila potencia no es igual a la de! quemado Entonces (Pregunta) Descartar effoco elesido (accién verdudera) Caso contrario legis un nuevo foco. (acciéa falsa) 3. Subir fa escalera hasta aleanzar el foco 44. Girar ef 9¢0 on seatido aatihorario hasta sacarlo 5. Colocar ef nuevo foco en el mismo hngar 6. Girar en sentido horario hasta que quede apretado 7 Bajar dela escalera Capitulo! | Introduccion a los Algoritmos Ya puede usted notar que mestro algoritmo ha cambiado wn poco y por lo tanto ahora tiene unas condiciones que le permiten ser una secuencia de acciones mas racional y analiza mas detalladamente las situaciones posibles. Adicionalmente usted puede notar que una decisién completa involuera Una pregunta que evalia una condicién Un conjunto de aeciones a realizar en caso de que la condicién sea verdadera Un conjunto de acciones a realizar en caso de que la condicién sea falsa Gidlos de acciones. No es was que la estructura que nos permite repetir una o varias acciones una cantidad definida de veces. Para identacién de acciones repetitivas usted puede representar con la palabra Mientras! Hasta o Repetit/Hlasta, bloques que establece en relacién con tna condiciin el inicio de un conjunto de acciones que se repiten precisamente Mientras esa condicién lo permita La estructura Mientras (por efectos de clarificacion del algoritmo) debe tener un finalizador que indique hasta donde lega el bloque de acciones que debemos repetir 41. Stuar una esealera bajo el foco quemado 2.Blegir un nuevo foco ‘Sila potencia no es igual a la del quemado Entonces Repetir Descartar el foco elesido Elegir un nuevo foco Hasta que ls potencia sea igual 43. Mienaras no se alcance el foco quemando Hacer Subir la escalera, peldaio tras pelduio 4. Repetir Girar ef foco en seatide antiborarion Hasta que el foco haya salido S. Colocar ef foco muevo en el misno Inger 6 Repetir Girar el foco en seatide horario Hasta que quede apretado 7 Bujar dela escalera Este algoritmo informal estan expresado tal como desprevenidamente cualquier persona los expresaria_y puede entonces suponer usted que la variabilidad de algoritmos que cumplan los mismos objetivos seria inmensa si no existieran unas téenieas uniformes para facilitar la expresion de estas ideas, particularmente en algoritmos computacionales. Capitulo! | Introduccion a los Algoritmos Bjemplo: Algoritmo para usar un teléfono piblico. La operacién puede expresarse en los siguientes pasos: Untroduett las aonedas Discar ef nimero Hablar Colear fa bocina Los pasos anteriores parecen describir de forma comecta de usar un teléfono piblico, Ahora supéngase que le proporciona estas instrucciones a una persona que janis en st ‘vida ha utilizado un teléfono piblico, 2Podra esta persona completar exitosamente una llamada telefSnica? Probablemente jno verdad!. Existen muchos aspectos que no son mencionados en el proceso anterior, como por ejemplo, que sucede si el niimero esta ccupado, 0 si el teléfono no sirve, o si se agota el tiempo. Si bien el proceso tiene un inicio y un final, 1os pasos son poco especificos y no contempla todas las sitwaciones; por ende es posible que existan situaciones en que no pueda completarse una llamada telefonica, siguiendo los pasos. Por esta razon, el proceso antes descrito esta un poco lejos de ser un algoritmo efectivo para usar tn teléfono piblico, Ahora procedemos a refinar el proceso anterior. Para esto, hiay que especificar_ciertos aspectos con respecto al uso de un teléfono piblico. Primero, (Qué sucede si al descolgar la bocina, no se oye ningin tono? Lo mas seguro es que el teléfono esté daiiado, por lo que no queda mis remedio que colgar la bocina e intentar ubicar otro teléfono pablico, Asi, el paso "Descolgar la bocina del proceso anterior, puede ser extendido a lo siguiente Descolear la bocina ‘Sino se ove un tono entonces Colgar la bocina Fin Cuando se termina de marcar el nimero, es posible que sucedan varias cosas: que alguien conteste, que nadie conteste o que el nitmero esté ocupado, En el primer caso, la persona debe proceder a hablar, si nadie contesta o si esti. ocupado, la persona debe colgar la bocina y recoger las monedas. En caso de que alguien conteste, es posible que Ja persona deba introducir otras monedas, para mantener Ja llamada, Todas estas consideraciones se expresan en los siguientes pasos Marcar el nimero ‘ise oyen varios tonos cortos seguites el mimero esté ocupado) Colear la bocina Recazer las monedas Fin ‘ise oyen varios fonos largas (el telefono repica) ‘Sialguien contest Hablar Cade vez que se escuche wn tono mientras se habla Capitulo! | Introduccion a los Algoritmos Introducir moaedss Seeuir hablando Colear la bocina Fin ‘Sinadie contesta Colear la bocina Fin De esta forma se ha especificado de forma razonable los pasos a seguir para realizar una llamada usando un teléfono pitblico. Todo algoritmo, de una forma u otra, indica el orden en que deben ejecutarse los pasos. En este caso, se agregan niimeros a cada paso, para indicar la secuencia apropinda: Descolgar fa bocing ‘Sino.se oye ua tono entonces 2. Colear la bocina 2 Fin Matcar ef iinero 4. Sise oven varios nos cortos segues 41 Colear Ia bocina 42. Recoger tes mouedss 43. Fin 5. Sse ayea varios fowos largos 6 Sialevien contests 61. Hablar 62. Cada vez que se escuche un tono muentras se habla 62.1. Introducir monedas 622 Seguir hablando 63 Colear fa bocina 64. Recoger Ins monedes no usadas 65. Fin 7. Sinadie contesta 7 Colear Ia bocing 7.2 Recoger las monedes 73. Fin =10- Capitulo | | Introduccion a los Algoritmos En los dos algoritmos anteriores aparecen ciertas palabras reservadas (en cursiva) que desoriben las estructuras de control fimdamentales y procesos de toma de decisiones. Estas palabras incluyen los siguientes conceptos fundamentales ‘Seleceién : exptesada por si-entonces-caso contrario Repeticién. expresada por repetir-hasta que o a veces por mientras-hacer La eapacidad de decisin permite seleccionar altermativas de acciones a seguir o bien la repeticion una y otra vez de operaciones bésicas. ‘Un aspecto importante a considerar al momento de escribir un algoritmo es la indentacion (sangrado) de las acciones interiores a las estructuras de seleccion y/o repeticion. “Me Capitulo! | Introduccion a los Algoritmos Otro aspecto, también importante es el método por medio del cual se desatrolla un algoritmo, Se comienza con wn enunciado muy general y se continia hasta encontrar él algoritmo final incrementando sistemiticamente los detalles. Algoritmos Cuantitativos: Son aquellos en los que se utilizan célculos nunéticos para defini los pasos del proceso, De igual forma estos tipos de algoritmos describen tres partes esenciales Hs a oe Ejemplo: Disefie un algoritmo que perma hallar la suma y el promedio de tres niimeros Se definen: E-P/S Entrada: Niimetos entetos (Numetol, mamero2,numer03) Proceso: Surat los 3 niimeros y caleular su Promedio ‘Salidas. Sua, Promedio Pseudocddigo INICIO LEER numero! mmero2, mumero3 suima = numero] + numero? + nuumero3 promedio = suma / 3 IMPRIMIR suana, promedio FIN Notas El témino LEER significa obtener un dato de algiin dispositive de entrada, com el teclado, y almacenarlo en una variable, Una variable es una localizacién en la ‘memoria que tiene un nombre y cuyo contenido puede cambiar a lo largo de la ejecucién de um programa, Asi numerol, mumero2 ¥ numero3 son variables, El término IMPRIMIR significa mostrar el valor de una variable en algim dispositivo de salida, como la pantalla =12- Capitulo! | Introduccion a los Algoritmos Ejemplo de un Algoritmo Cuantitativo: Determinar la sunta de los N primeros miimeros enteros de acuerdo a la siguiente formula: Summa =N*(N+1)/2 ‘Se definen: B/S Entrada: Niumero entero (N) Proceso. Calcular surna por formula Salida: Suva Pseudocodigo INICIO “Ingresar un niimero entero Leer 00. ‘Suna = NOD Esoribir( sua) FIN Diagrama De Flujo =13- Capitulo! | Introduccion a los Algoritmos 1.4. Técnicas para la formulacion de algoritmos Las dos herramientas utilizadas comxinmente para disefiar algoritmos son: = Pseudocodigo * Diagrama de Flujo Pseudocddigo Es un lenguaje algoritmico de programacién informal, en donde se omiten aspectos técnicos, para comsiderar solamente operaciones que definen el comportamiento del algoritmo. ). Es decir es una herramienta algoritmica que permite escribir pseudoprogramas (una imitacién de wn programa real) utilizando un lenguaje de pseudoprogramacién que es una imitacién de los lenguajes de programacién de alto nivel Diagrama de Flujo Un diagrama de flujo es la representacién gréfica de wn algoritmo, También se puede decir que es la representacién detallada en forma grifica de como deben realizarse los pasos en la computadora para producir resultados Un diagrama de flujo utiliza los simbolos estindar ( caja) y que tiene los pasos del algoritmo eseritos en esas cajas unidad por flechas, denominada linea de flujo, que indican la secuencia en que se deben ejecutar. Los simbolos utilizados han sido normalizados por el instituto norteamericano de normalizacién (ANSI), Recomendaciones para el disefio de Diagramas de Flujo + Se deben se usar solamente lineas de flujo horizontales yo verticales * Se debe evitar el cruce de lineas utilizando los conectores. + Se deben usar conectores solo cuando sea neeesario + No doben quedar linens de fino sin coneetar. + Se deben trazar los simibolos de manera que se puedan leer de ariba hacia abajo 'y de izquierda a derecha. * Todo texto escrito dentro de un simbolo debera ser escrito claramente, evitando al uso de muchas palabras -14- Capitulo | Introduecion a los Algoritmos Establece e! INICIO y el FIN. Indice un PROCESO infeme de une operacien erilmelica, Inireduccion de datos por parte del usuario. (E/S) “SALIDA de informacion POR PANTALLA, Thdice la continuidad de un diagrama, CONECTOR, Volumen de DATOS. 4 ONO Indico el SENTIDO del Fijo en que se realizan las ‘operaciones. Especifica lo reaizacion de una comparacin de valores DECISION, “SALIDA de informacn POR IMPRESORA, TECLA ly Se viliza en ocasiones en lugar del siribolo de E/S para: reprecentar ©! ingreso de dotos solo par teclado Indica un proceso extemno, SUBRUTINA, 0 ‘Se use para enlazar dos partes cualesquiera de un ‘ordinograme & través de Un conector en la salida y oto conector en la entrado ‘Conector fuera de pagina, Representa la coniinuidad del diagrame en oltre pagina -15 Capitulo! | introduccicn a los Algoritmos Bjemplo: Diagrama de Flujo para cambiar un foco quemando por uno nuevo. = 16+ Capitulo | | Introduccion a los Algoritmos 1.5 Ejercicios Practicos Disefiar los algoritumos que resuelvan los siguientes problemas + Algoritmo y flujograma para colocamos una camiisa + Algoritmo Para Ver La Pelicula Tiburon * Comprar una entrada para un show attistico + Elabore un pseudocodigo y flujograma que sume, reste, rmtiplique y divida dos nineros: x= 10 y=2 + Elabore un pseudocddigo y fujograma que calcule el area de un rectangulo: Lado! = 3 lado? = 4, Area del rectingulo-ladol * lado? * Elabore un pseudocodigo y fyjograma que reciba wn nimero entero y devuelva su inmediato siguiente. Por ejemplo si ingresa 28 la salida debe ser 29 * Uni tienda de abastos offece tn descuento del 8% sobre el total de la compra ¥ ‘uncliente desea saber cuanto debera pagar finalmente por su compra, Elabore ‘un pseudocddigo y flujograma que restelva este problema -17- Capitulo | Zswucturas Algoritnicas CAPITULO 2 Estructuras Algoritmicas 21 Variables, Constantes y Operadores 2.2 Tipos de Datos 23 Operadores 2.1. Variables, Constantes y Operadores El recurso fundamental utilizado por un programa es la memoria, Es en la memoria donde un programa almacena sus datos e instrucciones. Los datos se almacenan en localizaciones en la memoria denominadas variables, Un. algoritmo constara de tres componentes: Una cabecera, una seccion de Identificadores, Variables y Constantes, y el cuerpo del Algoritmo, Algoritmo < Nombre > Cabecera del Algoritmo Constantes Voviabies Inicio Expresiones y Seatencias Fin Ale Cabecera Comienza con la palabra ALGORITMO, Ia cual esta seguida por el nombre del programa completo, Bjemplo: Algoritmo suma; -18- Capitulo | Esaucturas Algoritmicas Secci6n de identificacién de variables y constantes Enella se especifican los tipos de datos utilizar (Cuales y de que tipo). Identificadores Un Adentificador es wn nombre que puede darse a wna variable, a una constante y en ‘general a cualquier elemento de wn programa que necesite nombrarse Asi, por ejemplo, son vilidos los siguientes identificadores: sueldoBrato Sueldo bruto de un empleado Edad Edad de una persona numero_hijos —_Niunero de hijos de un empleado DIA ‘Nombre de un dia de Ia semana Reglas para formar un Identificador + Debe comenzar con una letra (A a Z, maytisculas 0 mintiseulas) y no deben contener espacios en blanco + Letras, digitos y caracteres como la subraya (__) estén permitidos después del primer cardcter * La longitud de identificadores puede ser de hasta 8 caracteres. Constantes Una constante es un dato que no cambia durante la ejecucién del programa. Ejemplo: pin 31416 ‘Variables Una variable es una localizacién en la memoria principal que almacena un dato que puede cambiar a lo largo de la ejecucidn del programa. Una variable tiene asociada dos cosas findamentales: un identificadar y un tipo de dato. * El nonibre identifica de manera tinica la localizacion de memoria donde se almacena el dato, * El tipo de dato especifiea la naturaleza del dato que puede almnacenar la variable. En el grafico siguiente se muestran dos variables con sts contenidos en memoria, La variable Hamada Edad (de tipo entero) cuyo contenido es 27 y la variable lamada Descuento (de tipo real) cuyo contenido es 23.57. =19- Capitulo | Esaucturas Algoritmicas Edad 301 Descuento 23.57 ‘Segitn el tipo de dato de la variable podemos tener variables: ‘Numéricas Por su Contenido Légicas Alfanuméricas (String) Variables De Trabajo Por su Uso Contadores. Acunniladores Variables por su Contenido Variable Numéricas Son aquellas en las cuales se almacenan valores numéticos, positives o negativos, es decir almacenan niimeros del 0 al 9, signos (+ y -) yel punto decimal, Ejemplo’ 15 PISING ‘osto= 2500 Variables Légicas Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de tna comparacién entre otros datos Variables Alfanuméricas Esta formada por caracteres alfarnmméricos (letras, mimeros y caracteres especiales) Ejemplo: ketra='a" apelido™ Topee! direccion= ‘Av Libertad #190" Capitulo | Esaucturas Algoritmicas Variables por su Uso Variables de Trabajo: ‘Variables que reciben el resultado de una operacién matemitica completa y que se usan normalmente dentro de un programa. Bjemplo: summa=abie Contadores Se utilizan para llevar el control del mumero de ocasiones en que se realiza una operacién 6 se cumple na condicién. Con los incrementos generalmente de uno en tno. Acumuladores Forma que toma una variable y que sirve para levar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente, 2.1. Tipos de Datos El primer objetivo de In computadoras. es el manejo de la informacién o datos . Todos los Algoritmos y programas operan sobre datos. Todos los datos tienen um tipo asociado con ellos. Un dato puede ser tm simple caracter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar wna variable Numércos | Integer, Real) Simples L6gicos Boolean} Cardcter (Char) Cadena (steng) “Tipos de Datos Areglos (Vectores, matrices) Estucturados Recistros Det porelusuasio) “) Archivos ‘Apuntaderes -21- Capitulo | Esaucturas Algoritmicas Datos Numéricos Permiten representar valores escalares de forma numérica, esto inchiye a los niimetos enteros y los reales. Este tipo de datos. permiten realizar operaciones aritméticas communes, Enteros Es um subeonjunto finito de los niimeros enteros que pueden ser negatives. «=o positivos Ej 5 1340-5 2-2 4 Reales ‘Tienen un punto decimal y pueden ser positivos o negatives. 008373941 30 S742 “S232 B12 Datos Légicos ‘También denominado booleano y son aquellos que solo pueden tener dos valores (verdadero © falso; Si o No) ya que representan el resultado de tna comparacién entre otros datos (nmméricos o alfanuméticos) Por ejemplo: Cuando se pide si un valor entero es par , la respuesta seri verdadera 0 falsa, segtin sea par o inmpar, Datos de Caracter Es tipo caricter es el conjunto finito y ordenado de caracteres que la computadora entiende. Un dato tipo caracter contiene un solo caricter delimitado por apdstrofes Dentro de los caracteres se reconocen: Caracteres Alfsbeticos (A, BY Ci... 2) (Caracteres munezicos (‘1 9, Caracteres especiales (+, “" ay HD, Datos de Cadena (String) Es una secnencia de caracteres alfimmmeéricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, ete Es posible representar niimeros como alfanuméricos, pero estos pierden su. propiedad matentitica, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas, Ejemplo: Universidad Estatal de Bolivar" Capitulo | Esaucturas Algoritmicas Operaciones de Asignacién Es el modo de datle valores 6 tipo de dato a una variable. La asignacién de un valor a tuna Variable se representa con el simbolo NOMBRE DELA VARIABLE © EXPRESION Ejerplos; ABCD € Entero; Signitica qe a Ia variable AB CD se lea asgnade el soporte de valores enteras ses Signtica que a la variable Ase te ha asinado el valor $ BE si38 a vaviableB se lea asignade el vale 16 ce BA {a variable Cs lea asinado el valor de 80 De a? La variable Dse Ie ha asignads el valor 8 Expresiones Las expresiones son combinaciones de constantes, variables, simbolos dz operacién, paréntesis y nombres de finnciones especiales. Ej, a@eaye Cada expresion toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucién de las operaciones indicadas, Una expresin consta de operadores, operands y fiunciones. Sein sea el tipo de datos ‘Que manipulan, se clasifican las expresiones en: + Aritmeticas + Relaciénales = Logieas: 2.3. Operadores Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Los Tipos de Operadores que existen son tres: los relaciénales, Jos Aritméticos y por Altimo los légicos Operadores Aritméticos Los operadores aritméticos permiten Ia realizacién de operaciones matemiticas con los valores (variables y constantes), Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ‘ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real +23 Capitulo | Esaucturas Algoritmicas + Suma 2" Exponenciacion - Resta div Division Entera * Multiplicacion mod — Modtulo ( Residtuo ) (Division Ejemplos: Eapresiin Resultado 543410 8 10-7-1 2 245 io U2 55 3 7 tod 3 3 100d 3 1 Operadores Relacionales: Se utilizan para establecer una relacién entre dos valores. Compara estos valores entre si y esta comparacién produce wn resultado de certeza o falsedad (verdadero o fils). Los operadores relacidnales comparan valores del mismo tipo (numéricos 0 cadenas). ‘Tienen el mismo nivel de prioridad en su evaluacién, Los operadores relacionales tiene menor prioridad que los aritméticos Es decir es un operador que sélo puede tomar dos valores légicos que son: Verdadero 6 Falso. También se denominas expresiones booleanas en honor del matemitico Britanico George Boole, que desarroll6 el Algebra logica 0 de Boole (Operadores de Relactén perador Sieniticado < Menor que > Mayor que Zeual que <= ‘Menor 0 igual a >= Mayor 0 Leual a = Distinto de Capitulo | Esaucturas Algoritmicas Ejemplo 5<6 Verdadero amr Falso 4=2 Falso @-0<(3-4) Falso Operadores Légicos Los operadores lgicos 0 booleanos bisicos son ‘OPERADOR ‘SIGNFICADO sn0(00) negacién de Y¢and interseccin de oa) Uniéa de Tabla de verdad: Sane SAne En las expresiones logicas se pueden mezclar operadores de relacién y ligicos Ejercicio. (10 > 5) y (4mod3) v £ Falso 0<560>5 v v Verdadero (a) or (a= b)) = 26+ Capitulo It | Batucturas Algortticas F T F Lt J LF J F Funciones Los programas exigen en numerosas ocasiones, ademas de las operaciones aritméticas ‘basicas ya tratadas, un niimero determinado de operadores especiales que se denominan finciones, ‘Abs (x) | Valor absoluto dex Arctan | Aco tangente dex Cesena de x jradianes) Cos (x) Cakula ex Exp (x) Redondea el valor de x al Round(x) | eniero mas préximo sor pq | Calcule el euadrado dex Catcula la rate cuadrada sartx) | Fer Trex) Suprime to parte decimal Chix) dex Dewelve el cordcter de un Ody) | entero x Dewelve un entero de un Predix) | coracter Succ[x) | Dewelve el predecesor de x Dewelve el sucesor de x Ejemplo Or (6) =A" Ord -AD= 65 Or 12) = “p*— Ordep)= 112 Or (53 ord('s')= 83 Eniero 0 Real Entero o real Entero oreal Entero o real Real Entero o real Entero o real Peal Eniero o real Coracter Entero cardcter 0 booleano Eniero carécter 0 booleano round? )=2 rounds. 7)=4 SinG30) = 0.5 Igual que rgumento Real Real Real Eniero Igual que x Real Eniero Corécter Entero Igual que x Igual que x tre. 32 are. 3 sr 4 Capitulo It Pred(3) = 2 SuceCe =P Estructaras Algorttmicas Sucet3)= 4 Sq0)=9 Pred’e)) = d” Capitulo | Esaucturas Algoritmicas Bjercicios Practicos 1. Obtener el valor de las siguientes expresiones -4*742%3/4-5 6/2" (745) 6.0* (Smod3)+(15 div 4)/(54+(6*(2%3/2)div 3)-1) 9 div 2/5 2 div 3+ 3/3 S44 742 "3/425 (<+10) ¥(6=6) no (6410) ¥(6=6) 0 dv 2) <>0 6 (no (42-10), (293*5)<=(10/5+8) (6-8) 6 (6-8) (2#8)<> (4mod 3) 2. Identifique a que tipo de dato correspond los siguientes ejercicios 05 £ xyz" 27,822 g. 0515 9.3e12 hs 9.3e-12 i 1.66048 ‘wv i. verde” 3, Determinar cules de los siguientes son identifieadores validos. Si son validos, explicar por qué. a Area £ Ivalor b. Altura 2. Costo neto ©. Valor 1 h AREA Ventas95s i. Nombre y direceién e. POSICION_ACTUAL 5. 123-45-6789 Capitulo Ill | Sentencias de Control CAPITULO 3 Sentencias de Control Sentencias de Control Sentencias Secuenciales Sentencias de Decision o Secuenciales Sentencias de Seleceién Anidada Sentencias de Bucles 0 Lazos Repetitivos Eleccion de Estructuras Repetitivas 3.1. Sentencias de Control Las Sentencias algoritmicas son un grupo de formas de trabajo, que permiten, mediante Ja manipulacion de variables, realizar ciertos procesos especificos que nos leven a la solucién de problemas. Estas sentencias se clasifican de acuerdo con su complejidad en: Asignacién Secuenciales Entrada Salida Tipos de Simples Sentencias. Condicionales Milltiples Ciclicas Hacer para Hacer mientras Repetir hasta Capitulo Ill | Sentencias de Controt 2. Sentencias Secuenciales La estructura secuencial es aquella en la que una acci6n (instruccion) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de wna es la entrada de la siguiente y asi sucesivamente hasta el fin del proceso, Una estructura secuencial se representa de la siguiente form: Inicio La ‘lect! be ‘econ? aaa ‘Acciona , lista de variables de sali) Inprimir (“El resultado es", R) Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor. Ejemplos La siguiente instrucciin de entrada, obtiene la edad de una persona desde wn dispositive de entrada, como el teclado, y lo almacena en la variable llamada edad: LEER (edad): La siguiente instruccién de entrada, obtiene tres mimeros desde un dispositive de entrada, como el teclado, y los almacena en las variables mum1, rmm2 y num3) LEER (aut, nean2. rns) La siguiente instruceién de salida, muestra el contenido de Ta variable sueldoNeto en un dispositivo de salida como la pantalla IMPRIMIR sueldoNeto La siguiente instruccion de salida, muestra el contenido de las variables montoPag y montoDes en un dispositivo de salida como la pantalla IMPRIMIR momtoPag, montoDes = 32+ Capitulo Ill | Sentencias de Controt Bjercicios Resveltos Ejercicio 1 Algoritmo para sumar dos niumeros Analisis del Problema Enirades: valor! (Variable A) valor? (Variable B) ts : tam dtuirt arate scarier) Ama Variables: A B, Result de tipos de datos enteras ALGORETMO SUMA: Variables AB Result © ENTEROS, INICIO Eseribir (* Ingrese dos #8") Leer (AB) Result & (AB) Eseribir Result) FINALG Prueba de Escritario AB RESULT SALIDA seu Ejercicio 2 Realizar un algoritmo y Diagrama de Flujo para calcular el rea de un rectanguilo cuyos datos base y altura se leen desde teclado y el resultado se visualizara en la pantalla i) Algoritmo Recténgulo: Variables area, base, altura <-enteros: Inicio Eseribir (“Ingrese tn base y altura de una rectingulo") Leer (base } Leer (altura area «(base * altura) InpriintsC area J Fin_Ale Capitulo Ill | Sentencias de Controt Ejercicio 3 Algoritmo para intercambiar los valores almacenados en a,b sin utilizar otra variable Algorito ntercambio: Viviables ab e entero: nico ‘Eseribir( Ingrese dos mimeros 9 Leer (a, by death; aebdva, bebdiva: pein (2, 6): Fin Ae Ejercicio 4 Convertir la siguiente expresion aritmetica a algoritmos: Expr= 5* (xty)ta2 Algritn Expresin iviables zxya eenteros nico seribir(°Ingrese tres valores de a2") Leer (x.ya 2 (Sty) + a): Amprimir(" Et resultado de fa expresién es: “, 2): Firals Capitulo Ill | Sentencias de Controt Ejercicio 5 ‘Suponga que wn individuo desea invertir su capital en un baneo y desea saber cuanto dinero ganara despues de un mes si el banco paga a razon de 2% mensual, Algeritmo snversion Variables Cap invgan @ Real Inicio Eseribir(‘Ingrese su capital a invert) Leer (cap_mv) gan (cap inv * 0.02) “npranic (gan Fin Ejercicio 6 Un alumno desea saber cual sera su calificacién final en la materia de Algoritmos. Dicha calificacién se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parcial. 30% de la calificaci6n del examen final 15% de la calificacién de un trabajo final Algovitwe Calificacton: Variables Cail, calif, calif « entero: ‘prom, exament, trabajol, promparcial, promexament promtrabajof califinal — real Inicio Escribir(Inerese 3 calificaciones perciales examen final ytrabajo final Leer (Califl, cali2. cali, exament, trabajo; (prom € (Calif. calif eahit3y3 ‘promparcial € (prom *0.55) ‘promexament € (exement * 030! promirabajot € trabajot * 0.19) ‘alifinal © (pronparcial + promexament * promt abajod Anprantr (eaifinal Fin Ejercicio 7 Un vendedor recibe un sueldo base mas un 10% extra por comisién de sus ventas, €l vendedor desea saber cuanto dinero obtendr’ por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibira en el anes tomando en cuenta su sueldo base y comisiones, Algeritmo inversion; Variables -sieldob, ventasl, ventas2, ventas3, tot ventas, camisioa, totalpago «= Real: Inicio Eseribir(Ingrese su steldo base y sus comisiones extras") Leer (aieldob, ventas, ventas2, ventas3); (ot ventas € (ventast + ventas? + ventas} Capitulo Ill | Sentencias de Controt comision € (lot veates * 0.10) ‘otalpago € ( sieldob + comision ) Inprinis (totalpago, commission ) Fin Bjercicio 8 Una tienda offece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberi pagar finalmente por su compra, Algcvitvo tind Variables teompra, desc, tpago € real Inicio Eseribir(‘Ingrese la comida total de le coupe “) Leer (tcoupra) dese €(teonpra * 0.15): tpago€(tcompra — dese Jnprimir (1pago Fin Bercicios Propuestos Desarrolle Jos siguientes problemas a un Ienguaje algoritmico y diagramas de flujo aplicando las fases de resolucion de un Algoritmo 1, Eseribir un algoritmo que ealcule y eseriba el enadrado de 25 Dada un cantidad en pesos, obtener Ia equivalencia en délares, asumiendo que la unidad cambiaria es un dato desconocido. 3. Calcular el mumeto de pulsaciones que tna persona debe tener por cada 10 segundos de ejercicio, si la formula es: num, pulsaciones = (220 - edady/10 4, Calcular el nuevo salario de un obreto si obtuvo un incremento del 25% sobre su salario anterior. 5. En un hospital existen tres areas: Ginecologia, Pediatria, Traumatologia, El presupuesto anual del hospital se reparte conform a la sig. tabla Area Porcentaje del presupuesto Gineeologia 40% ‘Traumatologia 30% Pediatria 30% 6, Obtener la cantidad de dinero que recibir cada area, para cualquier monto presupuestal 7. El dueiio de una tienda compra un atticulo a un precio determinado. Oblener el precio en que Io debe vender para obtener una ganancia del 30%. Capitulo Ill | Sentencias de Controt 8. Todos los lunes, miércoles y viernes, una persona corre la mista ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que Ja persona tarda en recorrer la ruta en tna semana cualquiera 9. Un alunno desea saber cual sera su promedio general en las tres materias mas dificiles que eursa y cual serd el promedio que obtendri en cada una de ellas. Estas materias se evahian como se muestra a contimuacidn: La calificacién de Matemiticas se obtiene de la sig. manera Examen 90% Promedio de tareas 10% Enesta materia se pidid un total de tres tareas La calificacion de Fisica se obtiene de la sig, manera: Examen 80% Promedio de tareas 20% Enesta materia se pidid un total de dos tareas. La calificacion de Quimica se obtiene de la sig. manera: Examen 85% Promedio de tareas 15% En esta materia se pidid un promedio de tres tareas, 3.3. Sentencias de Decision 0 Condicionales Son aquellas que permiten decidir algo dependiendo del valor que asuma, a lo cual deberd ejecutarse tna o varias acciones relacionadas con ese valor. Las estructuras concicionales comparan tna variable contra otro(s) valor(es), para que en base al resultado de esta comparacién, se siga un curso de accién dentro del programa, Cabe mencionar que la comparacion se puede hacer contra otra variable 0 contra una constante, segiin se necesite. Existen dos tipos bisicos, las simples y las miltiples. Las estructuras selectivas o de selecoién se clasifican en: Estructura de seleccion simple (SD). + Estructura de seleccion doble (SI = SINO) = Estructura de seleccién miltiple (EN CASO - SEA) Estructura de Seleccién Simple S! En la estructura de seleccin simple SI, evalta una condicisn légica y * Sila condiciones verdadera se ejecuta In acoidn A. La accién A puede ser una Jnstrucetéa simple (una sola instruccién) 0 una instruceién compuesta (tn conjunto de instruccién), -37- Capitulo Ill | Sentencias de Controt * Sila condicién es falsa, no se hace nada * La condicién puede ser elaborada mediante la utilizacién de operadores de relaci6n asi como operadores logicos o booleanos FLUJO DE CONTROL DE UNA SENTENCIA SI-ENTONCES Nota: Enel caso de instrucciones compuestas, estas serén delimitadas por inicio y fin. Pseudocddigo (accion simple) ‘SI( condicién Jentonces instruceién A Pseudooddigo (accidn compuest SiC condicién ) entonces inicio instruceién AL instruceién AZ instruecién An fin_si Capitulo Ill | Sentencias de Controt Bjemplo Algoritmo para determinar si un miimero entero ingresado por teclado 3 positive o ‘negativo e imprimir el mensaje "Fue un placer Servirlo” Alcoritno Nimeros: Variables Ne-fmero: Icio EserbirIagrese un mero entero") Leer(n }: 5) 0>0 Entonces “inprinir (' Numero posiiv ° Sine0Entonces Tigran negative Inprinir¢ Fac un placer servi’: Fin =39- Capitulo Ill | Sentencias de Controt Estructura de Seleccién Doble S| - SINO La estructura de seleccién doble SI - SINO evaliia una condicion logica y: + Sila condicién es verdadera, ejecuta la accién A. * Sila condicién es falsa, ejecuta la accion B. ‘Tanto la accién A como la accién B pueden ser acciones simples (una sla accién) o acciones eompuestas (un conjunto de aeciones). Nota: Enel caso de acciones compuestas, estas serin delimitadas por inicio y fin. Diagram de Flyjo Seleccién Doble Pseudocéidigo (acciones sinples) ‘SI condieton )entonces acid A ‘aso contrario accitn B Pseudocédizo (acciones ‘conpuestas) ‘I condictén )entonces ‘acid AI saccida A2 ‘accidn An fins (CASO CONTRARIO acid BI saccidn B acid Ba fin, cas0_contrario Capitulo Ill | Sentencias de Controt Por ejemplo, si se desea saber si una persona es mayor 0 menor de edad, podemos escribir: Algorinne Eades (ae) Tries Leer( edad) ‘SI(edad >= 18) entonces IMPRIMIR ("Mayor de edad") (CASO CONTRARIO IMPRIMIR ("Menor de edd" Fin si Finals. Ejemplo Un estudiante desea saber si ha aprobado la asignatura de literatura edad «= Enero 9 Ino ‘Beri Ierese led de na persenn) Algoritmo Estudiaut: Variables calif enter Inicio Bseribr(“Inrese su calificacién Leer( calif) ‘Si calif>~ 7 Batonces Eseribir CAprobado } (CASO CONTRARIO Eseribr(Reprobado 9: Fins Finale -41- Capitulo Ill | Sentencias de Control 4. Sentencias de Seleccion Anidadas SI Se dice que una estructura SI ( 0 SI-SINO ) esta anidada cuando esta contenida dentro de otra estructura SI o dentro de otra estructura SI-SINO. No existe limite en cuanto al nivel de anidamiento, Por ejemplo, una estructura SI con tres niveles de anidamiento tendria el siguiente formato: SIC condieién C1 Jentonces Inicio acciéin Al ‘Si(condkcién C2) entonces cin AZ 1} condicién C3 )entonces accion AB fin_si(e2) Fin_sifel) En general, el anidamiento podria evitarse usando el operador légico "y*, Asi, Ia anterior seleccion SI anidada puede descomponerse en tres estructuras de seleccion simple no anidadas consecutivas, como se muestra a continuacién. SI( condicién C1) accidn Al SIC condicién C1 y condicién C2 ) accion A2 SiC condicién C1 y condicién C2 y condicién C3) accin A3 Bjemplo Dados tres niimeros enteros. Determinar cual es el mayor: Algoritmo mayor Variables mayor, a, b, € € enteros; Inicio Eseribir Cingrese tres niimseros enteros 3 Leer (a, bc: S14 > bENTONCES ‘Sia> cEntonces Mayor € a Caso Contrario mayor €¢ Fir Si (CASO CONTARIO = 42- Capitulo Ill | Sentencias de Controt Si b> ¢Entonces mayor € 6 (Caso Contrario mayor € 6 Fin_caso_contrari. Eseribir (El nimnero anayer es mayor) Fin si Gz Estructura de Seleccién Multiple La estructura de seleccién miltiple SEGUN permite elegir una la eleccidn de 0 ms aeciones accion de entre una lista de varias opciones, usando para ello una variable denominada selector, El selector se compara con una lista de constantes enteras 0 de caracter Cl, C2, ., Cn para cada una de las cuales hay una accién AL, A2, Any: + Siel selector coincide con una constante de la lista, se ejecuta la accion correspondiente a dicha constante * Sil selector no coincide con ninguna constante de la lista, se ejecuta la accién Df correspondiente al CASO CONTRARIO, si es que existe. Las acciones Al, A2, A3, ... An pueden ser acciones simples( una sola accién) 0 aeciones compuestas (in conjuunto de aeciones) Capitulo Ill | Sentencias de Controt En la Figura se muestra el pseudooddigo de la estructura de seleoci6n mitiple Nota: Enel caso de acciones compuestas, estas no necesitan estar encerradas entre Haves, SEGUN (selector JHACER INICIO (CASO CI + accién AL CASO C2: accidn AZ CASO C3 * accidn At CASO Ch accin An CASO CONTARIO ‘accién DI FIN SEGUN SEA <— SS SS Se a a Ejeaplo Elabore un Algoritino que en la variable result=10 realicen las respectivas operaciones, Elalgoritmo debe leer un caracter y tomar una de las siguientes determinaciones Sies'+’ debe sumar la variable result mas 5 Sies'' debe restar la variable result menos 5 Sies '*' debe multiplicar la variable result por $ Sies'!' debe dividir la variable para 5 Algoritwo Determinacion: Variables Qperader € Caracter: result © Eero Inicio result €10; Eseribir( Ingrese un Qperador ‘Leer gperader SEGUNSEA operador HACER ‘result €result +; result €xesult-5, result € result * 5 2 result € result/$ Capitulo Ill | Sentencias de Controt Fin Caso: -ESCRIBIR (result) Fin_Ale Bercicios Resueltos Ejercicio 1 Realizar un algoritmo para determinar si un niimero ingresado por teclado es miltiplo de otro. Algoritmo mailtplo; Variables 4. b © entero, Inicio Eseribir (Ingrese des minmeros enteros Leer( a,b) ‘Si(a mod 6)=0) 6 ((b moda=0) Enronces Eseribir ( Ses miliplo Caso Contario Eseribir (No es miiplo ): Fin st Fin_Alg Capitulo Ill | Sentencias de Controt Ejercicio 2 Hacer un algoritmo que pida los tres lados de un triangulo, y diga si él Tridngulo es Equilatero, Isdsceles 6 Escaleno, Algoritmo triéagulo; Variables LILLLL2 € ENTEROS: Inicio Eseribir(Ingrese tres lades de un riégulo J Leer (11.12.13) SILI=L2 yL2=L3 Entonces Eseriba (* Equilétero") (Caso Contratio SILI=L2 0 L213 ol Eseriba(” Isisceles") (Caso Contrario seribir(* Escaleno”) Fin Si Fin Si Fin si Fin_Mleoritno Ejercicio 3 Disefie un algoritmo que determine si un mimero es negativo, positivo 0 cero, Algoritmo (Formato 1 ) intcIo REAL LEER n> 0) IMPRIMIR "Positive" Capitulo Ill | Sentencias de Controt (CASO CONTRARIO s(n <0) IMPRIMIR Algeritao (Formato 2) INICIO REAL LEERD ‘sn 0) IMPRIMIR "Positivo” (CASO CONTRARIO ‘sin <0) IMPRIMIR “Negative” (CASO CONTRARIO IMPRIMIR *Cero” FIN Bjercicio 4 Unas camisas se venden a $ 10 dolares cada una si se compran mas de tres, ya $ 12 en los demis casos. Escriba un algoritmo que lea un miunero de entrada de camisas compradas e imprima el costo Total Algoritmo Comisas Viiables Cantidad € Enter, Coxo © Real Inicio. Eseribr(Inrese EI Nimero De Comisas Compras): Leer(Cantded Si Cantided™ 3 Then Casto & Camicea*t0, Caso Contrario Coto © Cuntidad12, Fin si Esribr (Cantided * Camisas Cuestan 8 Coste Fin Ale Bjercicio $ Escriba un programa que reciba el peso de una carta en onzas como entrada e imprima el costo del porte calculado segimn la regla siguiente La primera onza cuesta $.25 ( dolares) Cada onza adicional cuesta $.04 Algoritwvo onc: Variables Onzas © Entero Precio € Real: Inicio Eseribir (*ingrese el pezo en onzas”) Leer(onzas) ‘i (onzas=1) entonces =47~ Capitulo Ill | Sentencias de Controt precio € (onzas*25): Caso comtrario previo © ((onzas-1)*0-4)29, Fins Eseribr (El precio total es”, precio ) Fi, Ale Ejorcicio 6 En la Ponduka State University, los veteranos sélo pagan $30 ( délares ) por asignatura mientras que Jos demas ( regulates ) pagan $ 50 por asignatura . Escriba_un algoritmo en el que el usuario introduce los datos del estudiante ( Vet o Reg) y el mimeo. de asignaturas La salida debe indicar si el estudiante es de la categoria ‘yeterano o regular € indicar el niimero de materias y los costos de la colegiatura Algoritao Universided, Variables a.be € caracter, iatpag € Entero: Inicio Excribir(INORESE LOS DATOS DEL ESTUDIANIE (VET() 0 REG()"t Leer(oh Eseribir(INORESE EL NUMERO DE MATERIAS: Leertna, ‘Si (¢= 'V) Entonces Pag € mato; Eseribit( Tipo estudiante; Veterano). Escribir(’ Nimero de materia’ mad) Escribir(PAGO DE COLBGIATURA “PAG Fin Si(e= 4 9Enonces Pag € matt; Eseribir( Tp estudlate: Regular’): Eseribir(Nimero de miatertas: mal) Eseribir(PAGO DE COLEGIATURA PAG) Fin si Fin, Ejercicio 7 Disefie un algoritmo que lea tres longitudes y determine si forman o no un tridngulo. Si 5 umn tridngulo determine de que tipo de tridngulo se trata entre: equilitero (si tiene tres lados iguales), isdsceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un tridngulo se requiere que’ "el lado mayor sea menor que la suma de los otros dos lados, Algeritmo longitudes; Variables LI, £2.13, sua, mayor €Enteros inIcIO Eseribir(“Ingrese Is longitudes de un triangulo"); TEER(LI, 12 13} mayor= LI /Determina ef lad mayor ‘SI(L2 > mayor }entonces mayor €12; Capitulo Ill | Sentencias de Controt ‘SI(L3 > mayor )eatoaces mayor €L3; sung €(L1+L2+L3-mayon); //Determina la suma de los lados a excepcién del lado mayor ‘ST(mayor < sunta Jentonces //Determina de que tipo de riéngulo se trata Inicio ‘SY((L1 = 12) y(L2 “13 )) entonces IMPRIMIR ("Triéngulo equilitero') aso contrario ‘Si((LI = 12) 0 (LI = L3 Jo (L2= 13) entonces IMPRIMIR ("Triingulo isésceles’) Caso coutrario IMPRIMIR ("Tidnguto escaleno' Fin st (Caso contrario IMPRIMIR (’No es un titulo" HIN. Ejercicio 8 Disefie un algoritmo que lea tres niimeros y los imprima de mayor a menor y de menor a mayor Algcritvo orden: Variables nl, n2, n3, mayor, menor, medio€® enteros inicio Eseribir(“Ingrese tres mimeros) LEER (a, n2. 13) ‘menor €nl—// Determina el menor ‘Si(n2 < menor )entonces menor € 12 ‘Si(n3 < menor )entonces menor € 13. mayor =a //Determina ef mayor ‘SI(n2 > mayor )entonces mayor € 12 ‘S1(n3 > rnayer )entonces mayor € ni. medio = (al+n2+ni-mayor-menot); //Determiva el mimero medio IMPRIMIR (menor, medio. maser): //Imprine en orden ascendente IMPRIMIR fnayer, medio, menor); /Inprime en orden descendeate FIN Ejercicio 9 Imprimir el valor de los miimeros romanos, Algoritmo Nun. Rom: VARIABLES Ch € Caracter, InIcIO Leer(eh: (CASO QUE ch SEA 1: Escribir ¢ Numero Uno’; = 49 Capitulo Ill | Sentencias de Controt "Ve Bseibir ¢ Nunero Cinco: Xs Eseribir ( Numero Diez’ Li Escnbir ¢ Numero einewenta’; (Co Bseribir ( Numero Cien’ 'D'> Eserbir (’ Numero S00’) Ms Everibir ( Namero Mit’) aso contrario Eseribir (No es numero Rowan) Fin Caso Fin Me Ejercicio 10 Escribir una sentencia CASE que dado un selector entero Hamado nombre, imprima ¢l primer nombre si nombre =1, el primer Apellido si Nombre =2 y el segundo Apellido si ‘Nombre es igual Algoritio Nombre; variables nombre €Entero, Inicio Leer (aombre (CASO QUE nombre SEA 41 Exerbir (Mary), 2 Bseribir (Lyn: 3: Eseribir (Sint 9: Fin Caso; Fin Ale Bercicios Propuestos Ejercicios Individuales Desarrolle los siguientes problemas de _sentencias Condicionales a un lenguaje algoritmico con su respectiva prueba escritorio y diagram de Flujo 1, Dado tres variables enteras mum.num2,mun3, encuentre el mayor entre estos tres niimeros y almacene en una variable entera Uamnada max. 2. Escriba un Algoritmo que lea dos niimneros enteros como entrada y escriba el mensaje " Signos Opuestos" solo si uno de los enteros es positivo y el otro negativo, 3. Eseniba un Algoritmo que reciba como entrada dos enteros positivos distintos y escriba la diferencia entre el miimero mayor y el menor, asegiirese de que st programa eseriba 6 tanto cuando la entrada es 9.15 como cuando Ia entrada e515 9 4, Elaborar un Algoritmo para invertir tna ciffa almacenada en una variable A de tal manera si ingresa 834 debe darle como salida 438 , el dato ingresado debe estar en un rango de | y 999 +50 Capitulo Ill | Sentencias de Controt 10, ul Dados tres mimeros ingresados por teclado, elaborar un Algoritmo para almacenar en una sola variable los tres miimetos ¢ imprimirlos a pantalla En una Universidad Estatal, los cargos por colegiatwra son de $50 (dlares) por materia, con un cargo maximo de $750 independientemente del mimero de asignaturas tomadas. Asi un estudiante que eusa 12 1materias pagaria $600, mientras que toma 21 pagaria el cargo miximo de $750. Eseriba un Algoritmo en el que la entrada es el mimero de materias yla colegiatura es la salida Elaborar un Algoritmo que calcule su edad actual en (dd-mm-aa. Suponiendo que se ingresa una voeal por teclado, realice un algoritmo para determinar si es abierta o cerrada Se desea ingresar un niimero por teelado correspéndiente a uma calificacién se desea saber su equivalencia: 19-20 : Sobresaliente 16-18 > Muy Buena 14-15: Buena 12-13: Regular 11 6 menos : Insuficiente Elaborar wn programa utilizando un mem 1N: Nombre del cliente D: Direccion T: Teléfono © Ciudad F: Fin El Algoritmo debe permiitir elegir una opcién, la cual se debe asignar a una variable de tipo caracter. El usuatio puede introducir la letra mayiiscula 0 smintiscula Elabore un Algoritmo que lea dos variables enteras a y b. El programa debe leer un earicter y tomar wna de las siguientes determinaciones Sies'#” debe sumar las dos variables Sies'-' debe restar las dos variables Sies'* "debe multiplicar las dos variables Sies'/" debe dividir las dos variables Si es '%' debe obtener el residuo de la division. Ejercicios Grupales Desarrolle Jos siguientes problemas de sentencias Condicionales a un lenguaje algoritmico ya un diagrama de flujo con su respectiva prueba escritorio 1 Calcular el total que una persona debe pagar en un Ilantera, si el precio de cada llanta es de $800 si se compran menos de 5 lantas y de $700 si se compran 5 0 mas. En un supermercado se hace una promocién, mediante la cual el cliente obtiene un descuento dependiendo de un sumero que se escoge al azar. Si el numero escogido es menor que 74 el descuento es del 15% sobre el total -51- Capitulo Ill | Sentencias de Controt de la compra, si es mayor o igual a 74 el descuento es del 20%, Obtener cuanto dinero se le descuenta, 3. Calcular el mumero de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aerébico; la fornmula que se aplica cuando el sexo es femenino es ‘um. pulsaciones = (220 - edad)/10 yy siel sexo e masculino: ‘mun, pulsaciones = (210 - edad)/10 4. Enna escuela la colegiatura de los akumnos se determina segtin el numero de materias que cursan. El costo de todas las materias es el misio, Se ha establecido un programa para estimular a los alummos, el cual consiste en lo siguiente: si el promedio obtenido por un alurnno en el ultimo periodo es mayor o igual que 9, se Ie hara un descuento del 30% sobre Ia colegiatura y no se Ie cobrara IVA; si el promedio obtenido es menor que 9 debera pagar la colegiatura completa, la cual incluye el 10% de IVA. Obtener cuanto debe pagar un alumno. 5. El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que consiste en que los duefios de la empresa deben obligatoriamente depositar en una cuenta bancatia un porcentaje del salatio de los trabajadores; adicionalmente los trabajadores pueden solicitar a Ia empresa que deposite directamente una cuota fija o un poreentaje de su salario en la cuenta del SAR, la cual le sera descontada de su pago. Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidad total de dinero que estara depositado a esa cuenta cada mes, y €l pago mensual que reeibird El gobierno del estado de México desea reforestar un bosque que mide determinado mumero de heetareas. Si la superficie del terreno exeede a 1 millon de metros cuadrados, entonces decidira sembrar de la sig. manera Porcentaje de la superficie del bosque Tipo de rbol, 70% ino 20% oyamel 10% cedro Si la superficie del terreno es menor o igual a un millon de metros cuadrados, entonees decidira sermbrar de la sig. manera Poreentaje de la superficie del bosque Tipo de arbol 50% pino 30% oyamel 20% cedto 6. El gobierno desea saber el numero de pinos, oyameles y cedros que tendré que sembrar en el bosque, si se sabe que en 10 metros euadrados caben 8 pinos, en 15 metros cuadrados caben 15 oyameles y en 18 metros = 52+ Capitulo Ill | Sentencias de Controt 10 cuadrados caben 10 cedros. También se sabe que una hectarea equivale a 10 mil metros cuadrados, Una fabrica ha sido sometida a un programa de control de contaninacién para lo cual se efectiia una revision de los puntos IMECA generados por la fabrica, El programa de control de contaminacién consiste en medit los puntos IMECA que emite la fabrica en cinco dias de una semana y si el promedio es superior a los 170 puntos entonces tendra la sancién de parar su produceién por una semana y una multa del 50% de las ganancias diarias cuando no se detiene la produceién. Si el promedio obtenido de puntos IMECA es de 170 0 menor entonces no tendra ni sancion ni muta, El duefio de la fibriea desea saber cuanto dinero perder después de ser sometido a Ia revision, En un juego de preguntas a las que se responde “Si” o “No” gana quien responda correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta Ia siguiente y termina el juego. Las preguntas son: Colon deseubrié América? La independencia de Mexico fie en el afio 1810? ‘The Doors fie un grupo de rock Americano? Una fiuteria offece las manzanas con descuento segiin la siguiente tabla ‘NUM. DE KILOS COMPRADOS, ‘% DESCUENTO 0-2 0% 201- 5 10% 5.01 - 10 15% 10.01 enadelante 20% Determinar cuanto pagari una persona que compre manzanas es esa fruteria Una institucién educativa establecié un programa para estimular a los alumnos con buen rendimiento académico y que consiste en lo siguiente: = Siel promedio es de 9.5 0 mas y el alumno es de preparatoria, entonces este podra cursar 55 unidades y se le hara un 25% de descuento, = Siel promedio es mayor o igual a 9 pero menor que 9.5 yel ahummo es de preparatoria, entonces este podra cursar 50 tnidades y¥se le hari un 10% de descuento. + Siel promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podra cursar 50 unidades y no tendra ningn descuento. + Siel promedio es de 7.0 menor, el numero de materias reprobadas esde 0 a3 y el alumno es de preparatoria, entonces podré cursar 45 unidades y no tendra descuento. Capitulo Ill | Sentencias de Controt = Siel promedio es de 7.0 menor, el numero de materias reprobadas esde 4 o mas yl alumno es de preparatoria, entonces podra cursar 40 unidades y no tendra ningtin descuento, + Siel promedio es mayor o jgual a 9.5 y el alummo es de profesional, entonees podré eursar 55 unidades y se le hard un 20% de descuento, * Stel promedio es menor de 9.5 y el alumno es de profesional, entonces podré cursar 55 unidades y no tendra descuento. Obtener el total que tendra que pagar un alumno si la colegiatura para alurmnos de profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es de $180 por cada cinco unidades. ul 12, Usando Ia sentencia Caso que , elabore un Algoritmo que lea un caracter y escriba lo siguiente = Siel caracter representa un miimero, el mensaje ‘ mimero ' = Siel caracter es una letra de la‘a' a la‘z! letra minascula = Siel caracter es una letra de la'A’ ala 'Z' letra mayiscula + De otro modo eseriba 'Cardeter no valido ' Usando la sentencia CASO QUE elabore un Algoritmo que lea un cardeter numérico y dependiendo del cardcter debe realizar lo siguiente Si el caracter es'5' debe escribir el niimero 5 = Sielcardcter esti comprensdido entre'6! y'9’ es una variable se debe almacenar sti valor numérico mis el sueesor del valor mutica, + Sie cardcter esti comprendido entre'6' y'9' es una variable se debe ‘almacenar su valor numérico menos el anterior del valor numérico. Sentencias de Bucles 0 Lazos Repetitivos. Se llaman problemas repetitivos o ciclicos a aquellos en cuya solucién es necesatio utilizar wn mismo conjunto de acciones que se puedan ejecutar tna cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programadot) 0 puede ser variable (estar en funcion de algiin dato dentro del programa). Los ciclos se clasifican en: + PARA/ DESDE/ HASTA / HAGA. * MIENTRAS/ HACER, * REPETIR/ HASTA Capitulo Ill | Sentencias de Controt Sentencia Para / Desde / Hasta / Haga El cuerpo de un ciclo PARA es la linea o grupos de lineas que se van a ejecutar un niuneto especifico de veces. Y DE MODO AUTOMATICO CONTROLA EL ‘NUMERO DE ITERACIONES 0 PASOS A TRAVES DEL CUERPO DEL BUCLE PARA Variable € Valor Inicial HASTA valor Final HAGA Sentencial: ‘Bowie Venable nee Semtencia2; ae Sentencian’ Fin Para Al ejecutarse tna senteneia PARA por primera vez, el valor inicial se asigna a variable que se denomina variable de control, y a contintacién se ejecuta la sentencia del interior del bucle hasta que se cumpla el valor de! limite superior Ejemplo Escriba tn Algoritmo para imprimir los niumeros del 1 al 100 hatte 2 Indice Emer Inicio FF Para it desde Indice €1 hasta 100 hacer 100 Eseribir indice) Pica. eS es Capitulo Ill | Sentencias de Controt Bjemplo Escriba tn Algoritmo para caleular Ja suma de 1+1/2+...+1/50 Algoritmo sane Variables Indice €Emero: Sun € Real: Inicio ‘Sum €0 Para it desde Indice €1 hasta 50 hacer ‘Sum & (sum + (W/Indice) Fin Para Eseribir(LA SUMA TOTAL ES = ‘SUND Fin_Alg. Bjemplo Algoritmo para Sumar los niimeros del 1 al 100. Ageritmo Sun; Viviables ‘Suns, Indice €Enteros. Inicio Summ € 0, Para ir desde dice €1 hasta 100 hacer ‘Suna € Suma + Indice: Escribir (La sume Total es“; Sama ) Fin Para Fin Ale Bucles Anidados La estructura de bucles pueden anidarse internamente, es decir se puede situar un bucle enel interior de otro buele, Al igual que sucede con los bucles MIENTRAS \ REPEAT- UNTIL es posible poner un bucle dentro de otro bucle, cuando de anidan bucles se debe tener en cuidado que el bucle interior esté completamente dentzo del bucle exterior. silos bucles se eruzan no seran validos, Ejemplos Para J €Vel_ In Hasta a Pare 1 Val in Hasta n Haga Sentencia! ‘Sentencia 2 in Pata; Fin Pata, Capitulo Ill | Sentencias de Controt Pare 1€ Val lal Haste val. Final Haga Para J € Val. al Hasta val. Final Haga PARA K€ Val Jnl Hasta val. Final Haga ‘Sentencin1, ‘Sentencia 2, Fin Para ‘Sentencia 3: Fin Pare Sentencia 4: Fin Para jemplo Elaborar un algoritmo para obtener la tabla popular de nnutiplicar de los escolates. Algoritmo Tabla Mulip: 14 Producto © Bateras: Inicio Para Ir desde F€1 hasta 9 Haga Eseribir(* Tabla del”, Pare Ir desde J€1 hasta 10 Hage Producto € I* I: ‘Eseribr (1. * *", 1, "=" Prodicto: Fin Pasa Fin Para Fin Ale Bercicios Resueltos Ejercicio 1 Elaborar un diagrama de Flujo para calcular la sumatoria de la siguiente expresion S= 1! 42¢31+ 41+... + NI Algorimo Factorial: Variables I, Num Facto, Suma € Enteros Inicio Suma € 0; Facto © 1 Bseribir(™Ingrese un Niner) Leer Nun). Para I desde 11 haste Nun Haga Facto € Facto * I ‘Suna © Suna + Facto; Fin Para Eseribir (Suma): Fin Ale = 57+ Capitulo Ill | Sentencias de Controt Ejercicio 2 Algoritmo que permite imprimir las letras del abecedario ( el cédigo ASCII de la letra "Ales 65). Algeritmo Abecedario, Variables L€Eatero: A€ Caracter; Inicio Para Ir desde Indice €1 hasta 25 Haga A€ (chr (65+), Escribir ( Las letras del Abecedarto son :, A): Fin para Fin Ale Ejercicio 3 Leer $00 niimeros enteros y obtener euantos son positivos Algoritmo numer; Viiables Nant pas. € Bateros nico Pos €0: Para Ir desde Indice €1 haste 500 Haga Escibir (Ingrese mn mimero ) eer ( nat ‘Si aun >0 Eatonces Pas €Pos 1 Fin 8 _Eseribir (Los mimneros positives son, Pos } Fin Para Fin Ale Ejercicio 4 Disefiar un algoritmo para elevar (ab). Luego imprimir el resultado Ejemplo; Entrada 2,4 Salida 16 Entrada 4,3 Salida 64 Algoritmo exponente Variables Base, Exp, result €Eateros Inicio Result €1, Eseribir ¢ Ingrese la Base y el Exponente ): Leer @ase, Exp) Para Ir desde Indice 1 hasta Exp Haga Result € Result * Base: Eseribir (El resultado es ', Result) Fin Para Fin Ale Capitulo Ill | Sentencias de Controt Ejercicio 5 Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Disefio Estructurado de Algoritmos Algeritm promedio Variables Sumcalite €Enteros, Prom €real Inicio suneo Para Ir desde c= Thasta 7 Haga Escribir (“Ingrese a calificacién "6 Leer (cality Sum € (urn + cali, “npr Grom Fi Ejercicio 6 Leer 10 nitmeros e imprimir solamente los niimeros positivos Algoritmo positvos: Variables nun €Bateros Inicio Para Ir desde =I haste 10H Eseribir ( Ingrese un ainero entero” } Leer (nun): ‘Si (aun > 0) entonces “mprimir( un Sasi Finpara Fin Ejercicio 7 Leer 20 mimeros ¢ imprimir cuantos son. positives, cuantos negativos y cuantos neuttos. Agere nisneros: Viiables cangp, eves, nan. € Enters Inicio Para Ir desde x= 1 hasta 20 Haga Eseribir ( lngrese un amero entero” } Leer (nun)! Caso contrario ‘Siu > 0 entonces pep! = 59 Capitulo Ill | Sentencias de Controt caso coutrario ones ones + I Fivsi Finsi Fin-para Anprinie( cn, ep, ence Fin Ejercicio 8 Leer 15 niimeros negativos y convertitlos a positivos e imprimir dichos miuneros. Algoritmo conversion, Variables snums;pos €Enteros: Inicio Para Irdesde x= 1 hasta 15 Haga Leet (na), (pos €nun *-1 ‘nprimir (aum, pos} Pin-para Fin. Ejercicio 9 Calcular e imprimir 1a tabla de mmutiplicar de un mamero cualquiera, Iinprimir el mnitiplicando, el mutiplicador y el producto. Algoriano table; Variables sumcresul €Enteros: Inicio Eseribir ( Ingrese ef niimero deta table de muliplicar a generarse” ) Leer (oom) Para dr desde x= 1 hasta 12 Haga resul (aun *0, npr aun, *°, X= *, pesul, Fin-para fin Ejercicio 10 ‘Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alunmos, Realizar un algoritmo para caleular la calificacién media y la calificacién mas baja de todo el grupo, Algovitw califcacion Variables sum, baja, cali a €Enteros media € real, Inicio ‘sun = 0 baja = 9999, Capitulo Ill | Sentencias de Controt Para Ir desde 2 1 hasta 40 Haga Eseribir ¢ Ingrese califcactén” ) Leer(calid: ‘sum € (aun cali) ‘Si (calif = baja) entonces aya € calit finsi Fin-para media € sum /2 Inprinir (ane, baja) Fin Bercicios Propuestos Ejercicios Individuales Desarrolle los siguientes problemas a un lenguaje algoritmico y diagrama de Flujo Calcular la suma de los cuadrados de los 100 primeros mimeros naturales Caloular la suma de cuatro mimeros introducides por teclado, Calcular la suma de n niimeros introducidos por teclado. Calcular e imprimir los cuadrados del 20 al 50 Calcular la media aritmética de n niimeros ingresados por teclado Disefiar un algoritmo para imprimir los nimeros impares en el rango del 1 al 100 Calcular la suma de los nimeros enteros del 1 al 100 Imprimir todos los nuimeros pares entre 2 y 1000 inelusive 9. Leer 100 mimeros. Determinar la media de los mimetos positives y la media de los mimeros negatives 10. Elaborar wn diagrama de flujo que calcule todas las ordenadas pares de la fincion Y=f{x)= x? +1 el algoritmo debe imprimir la abcisa y la ordenada ppara los valores comprendidos entre 0 y 30 Ejercicios Grupales Desarrolle los siguientes problemas a un Jenguaje algoritmico y diagrama de Flujo 1, Realizar un programa que lea 50 mimeros ¢ imprima el nimero mayor Bjemplo sea la serie : 2,3,1,5,8,4,2,6,3,5,6,7,5,7,8. La salida sera : Bl mayor ¢s 8 2. Se lanza una pelota hacia arriba con una velocidad inicial Vo de 96 mvs la altura de la pelota sobre el nivel del suelo luego de t segundos se encuentra en hit), Se sabe que hit) = Vo.t -5t? ( h esta dado en metros y t en. segundos ), Escriba un programa para producir una tabla que presente la altura de la pelota para cada valor de t de 1 a 8 segundos. 3. Eseriba un programa interactivo para calificar a un grupo de 10 alunos el programa debe leer el nombre y sus tres calificaciones para cada -61- Capitulo Ill | Sentencias de Controt 10 alumno, debe calcular el promedio para cada uno y después determinar si el ahumno es aprobado o reprobado se requiere un promedio de al menos 60 para aprobar, La primera parte de la salida debe ser el nombre del alumno .tres calificaciones, promedio y un mensaje de aprobado o reprobado . La segunda parte debe dar el mumero de alumnos que aprobaron y el mumero de los que obtuvieron un promedio de al menos 80 Escriba un programa pascal utilizando el ciclo FOR que permita imprimir las letras del abecedario en forma descendente desde Ia 2’ .." A4( el cédigo ASCII de la letra 'A’ es 65 ), Supongamos que un jardinero tenga 30m lineales de material (alamibre de pia) para cerear un jardin rectangular, el érea del jardin cumple la siguiente formula X*(15-X), Eseribir un programa para detenminar el valor de X que produzca Ia maxima area probando todos los valores enteros positivos entre 10 y 15, la salida debe ser Valor dex Area 10 50 no 44 12 13 14 E] fea maxima es 5! (que se lee ‘fhetorial 5) es igual al producto 5.4.3.2.1 Eseriba un programa que calcule su factorial Cuando al comer este programa el usuario introduce 5 la salida debe ser: factorial 5 es 120 Una persona debe realizar un muestreo con 50 personas para determinar €l promedio de peso de los nifios, jOvenes, adultos y viejos que existen en su. zona habitacional. Se determinan las categorias con base en la sig, tabla CATEGORIA, EDAD Niflos 0-12 Jovenes 13-29 Adultos, 30-59 Viejos 60 en adelante Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirin un 15% de descuento si compran mas de 10 kilos. Determinar cuanto pagara cada cliente y cuanto percibira la tienda por esas compras. En un centro de verificacién de automéviles se desea saber el promedio de puntos contaminantes de los primeros 25 automoviles que leguen. Asimismo se desea saber los puntos contanninantes del carro que menos contamnino y del que mas contamino, Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco Kilémetros durante 10 dias, para determinar si es apto para la prueba de 5 = 62+ Capitulo Ill | Sentencias de Controt Kilomettos 0 debe buscar otra especialidad, Para considerarlo apto debe ccumplir por lo menos tuna de las siguientes condiciones: Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos. Que al menos en una de las pruebas realice un tiempo mayor a 16 ‘minutos Que su promedio de tiempos sea menor o igual a 15 minutos. 6. Sentencia Mientras Hacer Un bucle o 1azo mientras es un segmento de un algoritmo cuyas instrucciones se repiten ‘un mimero determinado de veces mientras la condicién sea verdadera. Se debe establecer mecanismo para determinar las tareas repetitivas. Este mecanismo es una condicién que puede ser verdadera o falsay que se comprucba una vez a cada paso 0 iteracion del bucle (Total de instrucciones que se repiten en el bucle) Un bucle consta de tres partes + Decision’ + Cuerpo del Bucle © Salida del buele MIENTRAS ( CONDICION) HACER ‘sentencias: Querpo det Bucte Fin-Mientras [| La condicién (expresién ldgica) se evaliia antes y después de cada ejecucién de la expresion logica, af Ja condicién es verdadera se efecuta el budle , y se es falsa , el control pasa a la sentencia siguiente. Mientras la condicion sea verdadera el bucle se ejectard, esto significa que el bucle se ejecutara indefinidamente a menos que "ALGO " = 63 Capitulo Ill | Sentencias de Controt en el interior del bucle modifique In condicién haciendo que su valor pase a falso, si la expresion munca cambia el valor entonces. estamos hablando de un ciclo infinito, jemplo imprimir los mimneros del 1 al 10 Algoritwvo Nimeros. Variables um © Batero; Inicio Nun € 0: ‘Mientras num <=10 Haga an © (Name: nprinnc (Nay Fin Mientras: Fin Ejemplo ‘Sumar los miimeros del 1 al 100. Algorimo Suna: Variables sma, num & Entero: Inicio Sune € 0, Aun € 6; ‘Mientras num < 100 Haga ‘Ninn © Near? 1 ‘Sur © Suna Nu: Fin Mientras. Inprinic (La sun total es". Suna) Fin Capitulo Ill | Sentencias de Controt Bjemplo Algoritmo para imprimir los cuadrados de los niimeros del | al 10 Algeritso Nimeros: Variables sum © Eatero; Inicio Com € 0 Num € 0; Mieatras Coat <~10 Haga Nam & cont * cont Cont & Cones: Inprinnc (cont, Na Fin Mientras, Fin Contadores Los proceso repetitivos necesitan normalmente contar los sucesos 0 acciones intemas del bucle. Una forma de controlar tn bucle es mediante un contador. Un contador es unia variable cuyo valor se incrementa 0 decrementa en una cantidad constante en cada iteracién . Un bloque controlado por contador consta de tres partes * Inicializacién de la variable de control del buele * Comprobacién del valor de la variable de control det bucle + Incremento dal valor de la variable de control del bucle Ejemplo, Pseudocodigo para repetir 50 veces e imprimir su valor Algoritmo Nimeros, Variables ‘contador € Entero Inicio Contador € 1; (nicializncion del coutader —} Mieutas couader >= $0 Hacer (Ef bucle se ejecuta 50 veces } npn (Contador (Silida del 1.2.34..50°} Contador = Contador +1; (contador se incrememta + 1} Fin Mientras Acumulador Un acumulador o totalizador es una variable cuya misién es almacenar cantidades variables resultantes de sumas sucesivas. Realiza la mista funcin que un contador con diferencia de que el incremento 0 decremento de cada surma es variable en lugar de comstante como es el caso del contador. Un bloque controlado por aeumulador consta: * Inicializacién de la variable de control del bucle en cero + Asignacion de la variable la misma variable mas el valor de la variable de control del bucle +65 Capitulo Ill | Sentencias de Controt Ejemplo Pseudocodigo para sumar los 10 primeros nimeros, Algoritmo Nimeros; Variables Simcont € Entero: inicio. Cont € 0 Sins €0 ‘Mentras cont <= 10 Hacer ‘Suna € (aun numero € (numero +2, Fin Mientras Impeimir( Sura) Fin Ale Bucles Infinitos Un peligro de un ciclo MIENTRAS es que la condicién munca se satisfiga, los bucles infinitos no intencionados se deben evitar normalmente Ejemplo contador'= 10; Mientras contador <> 20 Hacer Leer (numero ) {Cielo lnfnito } ‘cantader = contador + 3: Fin Mientras Bercicios Resueltos Ejercicio 1 Hacer un algoritmo para imprimir los nixmeros pares del 2 al 10 Algoritwvo Pares: Variables Par €Entero; Inicio Par 2: ‘Mientras par <= 10 Hacer Inpeanie (par) Par € Par * 2, Fin Mientras Fin_Ale Ejercicio 2 Realice un Algoritmo en que el usuario introduzca enteros positivos entre 1 y 5. El programa debe informar al usuario cuando haya escrito un entero que hace que la suma = 66+ Capitulo Ill | Sentencias de Controt de los niimeros dados pase de 21. Ademas el mensaje MAS DE 21 se debe imprimir la suma y el tiltimo entero introducido. Algoritmo ent pos; Viviables ‘sustum €Entero Inicio Sun €0, Mientras suas 1) Haga Escribi(Ingrese un umero entero eatre 1.5): Leertauy: ‘Si (aun >0) y (aume= =) Entonces ‘sun siren Caso Contrario Eseribir( Error lngrese otro manero) Finsi InpriniMAS DE 21 9: Inprinni(La Sama es sum): InpriniCEI Numero es" ‘un Fin, Ejercicio 3 Las potencias de 2 son 1,2,4,8,16,32,64, etc, Para obtener la siguiente potencia de 2 se tmultiplica la anterior por 2 Usando un ciclo MIENTRAS eseriba un Programa que imprima la primera potencia de 2. que pase mis de 1000 Algoritmo Potencia, variables pot Entero; Inicio Pot €1; ‘Mientras pot =1000 Haga Por € Pot *2, “Inprinir(a primers potencia mayor que 1000 es;pov) Fin Ejercicio 4 Escriba un algoritmo para calcular la suma de: 1+ 1/2+ 1/3 + 1/4 + U/S+. +1/50 Algeritvo Suna, Variables x y €Bntero, sui, cout © Real: Inicio ‘Suna €0, Com €1: Mientras cont <= $0 Haga ‘Suu € suna + coat (Com € cont I: Fin Micnwas Bseribir (La santa es: san): Fin_Alg -67- Capitulo Ill | Sentencias de Controt Ejercicio 5 Escriba un Algoritmo para caleular el valor miximo de una serie de 10 mimeros Ingresados por tecladb. Algeritmo Maximo: Variables N max coat €Eatero Inicio Leer Come €1, Max € a; Mientras cont = 10 Hage Cont € cout Leer) ‘Si n> max entonces Max © 1, Fin Mientras Eseribir (EL mayor es. Mux), Fin Ale Fercicios Propuestos Ejercicios Individuales Desarrolle los siguientes problemas a un Jenguaje algoritmico y diagrama de Flujo 1, Obtener el promedio de calificaciones de wn grupo de 1 ahurmnos. 2. Calcular el promedio de edades de hombres, nmjeres y de todo un grupo de alunos 3. Encontrar el menor valor de un conjunto de n nimeros dados. 4, Encontrar el mayor valor de un conjunto de « nimeros dados. 5. Determninar cuantos hombres ¥ cuantas mujeres se encuentran en un grupo de m personas, suponiendo que los datos son extraidos aluumno por alumno. 6. Reatiee un Algoritmo que dado un cierto nimero de monedas de 5,10,20,50 sucres, imprima el total de Ia sum, Determinar Ia media de una lista de niueros positives terminado con un nimero negativo después del iltimo numero valido. 8. Calcular e imprimir ta suma y el producto de los. nitmeros. pares comprendidos entre 20 y 400 ambos inclusive Capitulo Ill | Sentencias de Controt 9. Leer 100 mimeros. Determinar la media de los mimetos positives y la media de los mimeros negatives 10, Averiguar si dados dos mimeros leidos del teclado, uno es divisor del otro. Ejercicios Grupales Desarrolle los siguientes problemas a un lenguaje algoritmico y diagrama de Flujo 1, Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés, Cual sera la cantidad de dinero que esta persona tendra al cabo de un afio sila ganancia de cada mes es reinvertida?, 2. Una compafiia de seguros tiene contratados a n vendedores, Cada tuno hace tres ventas a la semana, Su politica de pagos es que un vendedor recibe tn sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compaiiia desea saber cuanto dinero obtendra en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus eomisiones, 3. Enuna empresa se requiere calcular el salario semanal de cada uno de los 12 obreros que laboran en ella. El salario se obtiene de la sig. forma Siel obreto trabaja 40 horas o menos se le paga $20 por hora Si trabaja mas de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra 4. El Depto. de Seguridad Publica y Transito del DF. desea saber, de los 1 autos que entran a la ciudad de México, cuantos entran con calcomania de cada color. Conociendo el ultimo digito de la placa de cada automévil s2 puede determinar el color de la calcomania utilizando la sig. relacin: DiciTo COLOR 102 amarilla 304 rosa 506 oja 708 verde 900 azul 5, Enum supermercado un cajero captura los precios de los articulos que Jos clientes compran ¢ indica a cada cliente cual es el monto de Io que deben pagar. Al final del dia Ie indica a su supervisor cuanto fite lo que cobro en total a todos los clientes que pasaron por su caja 6. Cinco miembros de un club contra la obesidad desean saber cuanto han bajado © subido de peso desde la ultima vez. que se reunieron. Para esto se debe realizar unt ritual de pesaje en donde cada uno se pesa en diez béseulas = 69 Capitulo Ill | Sentencias de Controt 10 distintas para asi tener el promedio mas exacto de st peso. Si existe diferencia positiva entre este promedio de peso y el peso de la ultima vez Que se reunieron, significa que subieron de peso. Pero si In diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: “SUBIO” 0 “BAJO” y la cantidad de kilos que subié 0 bajo de peso. Se desea obtener el promedio de g grupos que estin en un mismo afio escolar; siendo que cada grupo puede tener 22 alumnos que cada alummno puede llevar m materias y que en todas las materias se promedian tres calificaciones para obtener el promedio de la materia. Lo que se desea desplegar es el promedio de los grupos, el promedio de cada grupo y el promedio de cada alumno, Esoriba un Algoritmo que cuente el miimero de cifias en un entero de entrada (hasta 32,000) asi para tna entrada de 5837 Ia salida debe ser: 4 cifras, Asegiirese de que el programa funcione para los niimeros 0, 1 y 9 para el mitmero 0 Ia salida debe ser | cia Escribir un programa que pida al usuario escribir un entero diferente de cero y después imprimna su reciproco. Use un cielo Mientras para forzar al usuario a volver a escribir el_ valor cuando escribe 0 por error. Escriba un programa para evaluar la fincidn y = 4x2 -16x + 15, donde x toma los valores de 1 a 2 en pasos de 1 . Para cada x la salida debe dar €l valor de y y el mensaje POSITIVO 0 el mensaje NO POSITIVO. El formato de ia salida debe ser ‘Valor de ‘Valor de ¥ 10 3.00 Positivo Ll 2.24 Postivo 20 =1,00 No Positive -70- Capitulo Ill | Sentencias de Controt 7. Sentencia Repetir \Hasta Un bucle 0 lazo REPETIR / HASTA es un segmento de un algoritmo — cuyas instrucciones se repiten un mimero determinado de veces mientras. Ia condicién sea FALSA, cuando la expresion se haga Verdadera, sale del lazo. Asi es como se debe escribir una sentencia Repetir. REPETR ‘Sentencia I; ‘Sentencia 2 SentenciaN. HASTA (CONDICION) en Fae Nota: Debido a que HASTA delimita la sentencia, no es necesario poner Inicio y Fin. El blogue de instrucciones se ejecuta al menos una vez y luego se evalia la condicién. ‘Ademis si la expresion logica 0 condicion es falsa, se vuelve a Repetir el bucle y se ejecutan todas las sentencias y se vuelve a chequear la condicién. Si la expresién logica es Verdadera, se sale del ciclo y se ejecutan la siguiente Instrucciones, Ejemplo Algoritmo para sumar los mimeros del 1 al 10 Alzoritmo sma Variables sm, manero € Eater Inicio Sunn € 0 Nancro € 0 REPETR Ninero € Minerot; ‘Suna €- Sua + Nunes HASTA Nmero ~ 10 ‘Est El oat es Sana) Fin Ale =71 Capitulo Ill | Sentencias de Controt El bucle s repite hasta que el valor de variable Numero se igual a 10, lo que sucedera después de 10 ejecuciones del cuerpo del bucle Ejemplo Algoritmo para imprimir Los ntimeros del 1 al 100 Algoritmo suneros. Variables unser € Entre; Inicio Numero € 1 REPEDR Inpramis (Numero): Numero € Numero“1: HASTA Numero = 101 Fin Ale Bercicios Resueltos Ejercicio 1 Determinar la media de una lista de mimeros positives terminada con un nimero negativo después del titimo nimero valido Algoritio num Pos; variables sum, a, n €Enteros, media €real Inicio sume 0, 2 <0 REPETR Eseribir (Ingrese un nismero 9 Leer(n J ‘Si n>0Entonces sums? a: a earl; Fins HASTA n= 0: Inprinie (Media € sna) Fin Ale =72+ Capitulo Ill | Sentencias de Controt Bjersicio 2 ‘Se desea leer por teclado wn niimero comprendido entre | y 50 (inclusive), y se desea ‘visualizar si el nimero es par o impar. Algoritmo numero: Variables NeEntero: Inicio Escribir ( Ingrese un miner 2 Leer(n): REPETR ‘Si(u mod 2) = 0 Entonces Eseribar (Nimero par’ Fin Si Si(amod2)<> 0Entonces ‘Escribir (Mime inp Fin_si Ejercicio 3 Algoritmo para hallar el promedio de una lista de n niimeros Algorimo media; Variables N cont € Entero: X aunt, media © Real Inicio Com & 1; Sima € 0: Leer (2) =73- Capitulo Ill | Sentencias de Controt REPEDR Leer 6) ‘Sune € suma + x Com € com + 1 HASTA coat > n ‘Media suns; Eseribir (La media es media) Fin Alg Ejercicio 4 Algoritmo para obtener la suma de los nimeros pares hasta 100 inclusive S=2+4+ 648, ...+100 Algoritmo pares: Variables sua, Numero & Reales, Inicio Suma € 0; Numero € 4, REPETR ‘Suna € sume + Numero Numero € Numero + 1 HASTA Numero > 100 Eseribir (‘La sua es, summa ) Fin Ale Ejercicio 5 Escriba un programa que cuente el niimero de cifias en un entero de entrada (hasta 32,000) asi para una entrada de 5837 la salida debe ser: 4 ciffas, Asegiirese de que el programa fimcione para los nimmeros 0,1 y 10. Para el mimero 0 la Salida debe ser: 1 sifia Algovitw cifias variables a €enteros; Inicio Repetir Escribir(lngrese un timero deste 1. 4 32000 I Leer (a: Hasta (4>=0) ¥(a=32000 } ‘Si (@>=0) y@=10) entouces Inprima (1 citta ‘Si (a>=10) and (a==39) entonces Inprima (2 citfas Si (4>=100) and (4<=999) entonces Inprina (3 ctfas ‘i (21000) and (<= 9999) entonces Inprina (4 ciléas ‘Si (a>~10000) and (a<~32000)) entonces prams (5 cilia Fin ~The Capitulo Ill | Sentencias de Controt Bjercicios Propuestos Ejercicios Grupales Desarrolle los siguientes problemas a unlenguaje algoritmico y diagrama de Flujo 1 Determinar 1a cantidad semanal de dinero que recibira eada no de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple. Una persona que va de compras @ la tienda “Enano, S.A.”, decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendra que pagar al llegar a la caja, La tienda tiene una promocion del 20% de descuento sobre aquellos articulos cuya etiqueta sea roja, Determinar Ia cantidad de dinero que esta persona debera pagar. Un censador recopila ciertos datos aplicando encuestas para el ultimo Censo Nacional de Poblacion y Vivienda. Desea obtener de todas las petsonas que alcance @ encuestar en un dia, que porcentaje tiene estudios de primatia, secundaria, carrera técnica, estudios profesionales y estudios de posgrado, Un jefe de casilla desea determinar cuantas personas de cada una de las seeciones que componen su zona asisten el dia de las votaciones. Las secciones son: norte, sur y centro. También desea deterninar cual es la seecidn con mayor numero de votantes. Un negocio de copias tiene un limite de produccién diaria de 10 000 copias si el tipo de impresién es offSet y de 50 000 si el tipo es estandar. Si hay tuna solicitud de un el empleado tiene que verificar que las copias pendientes hasta el momento y las copias solicitadas no excedan del limite de produecion. Si el limite de produccion se excediera el trabajo solicitado tno podria ser aceptado. El empleado necesita llevar un buen control de las copias solicitadas hasta el momento para decidir en forma répida si los trabajos que se soliciten en el dia se deben aceptar 0 no. Calcular la suma siguiente: 100 + 98 +96 + 94+... +0 eneste orden Leer por cada alumno de Diseiio estructurado de algoritmos su numero de control y su calificacion en cada una de las 5 unidades de la materia, Al final que escriba el numero dz control del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios. -75- Capitulo Ill | Sentencias de Controt 8. El profesor de una materia desea conocer la cantidad de sus akumnos que ro tienen derecho al examen de nivelacion. Disefte un algoritmo que lea las, calficaciones obtenidas en las 5 unidades por cada tno de los 40 alunos y escriba la cantidad de ellos que no tienen derecho al examen de nivelacién, 9. Suponga que tiene usted una tienda y desea registrar las ventas en su computadora, Disefie un algoritmo que lea por cada cliente, el monto total de su compra. Al final del dia que escriba la cantidad total de ventas y el numero de clientes atencidos, 10. Bn.un supermercado tna ama de casa pone en su carrito los articulos que vva tomando de los estantes. La sefiora quiere asegurarse de que el cajero le cobre bien Jo que ella ha comprado, por Jo que cada vez que toma un articulo anota su precio junto con la cantidad de articulos iguales que ha tomado y determina cuanto dinero gastara en ese articulo; a esto le suma Io ue ira gastando en los demas articulos, hasta que decide que ya tomo todo lo que necesitaba, Aytidale a esta sefiora a obtener el total de sus compras, 2.11. Eleccion Estructuras Repetitiva Adecuada La eleccién adecuada de estructuras repetitivas es una de las partes més importantes en el disefio de un algoritmo, La repeticion de sentencias en el interior del bucle requiere definir las condiciones de terminacion del bucle con sumo euidado para evitar un bucle incorreeto 0 infinto, En un bucle Repetir Hasta , la secuencia de sentencias se ejecutard al menos una vez, mientras que en bucle Mientras no siempre se ejecutara el proceso del bucle y en cocasiones ( condicién falsa ) no se ejectitara, En la practica, el bucle Mientras se utiliza ‘con mis frecuencia que el bucle REPETIR. EI PARA se reserva para situaciones en que el nimmero de repeticiones se puede predecir ‘y emumerar ficilmente antes que comience el bucle, Un bucle for se puede reeseribir facilmente ( normalmente con un bucle MIENTRAS) utilizando otras estructuras, Cuando no se conocen con anticipacin cuintas veces se tiene que ejecutar un bucle, el uso de las estructuras MIENTRAS ¢s el mas indicado, incluso aun cuando el bucle esti controlado por im simple ineremento o deeremento de un contador entero. Es frecuente confimdir estructuras SI- ENTONCES con MIENTRAS, debido al hecho que muchos algoritmos tienen estructuras que implican bucles dentro de los cuales s2 realizan estructuras de decisién secundarias, En conclusién podemos decir que para seleccionar un bucle correcto se debe tener en. cuenta: -76- Capitulo Ill | Sentencias de Controt 1, Si el mimero de interacciones se conoce por adelantado, se debe utilizar PARA 2. Si el nimmero de interacciones es indeterminado y el bucle no se debe ejecutar cuando la condicién sea falsa la primera vez, se debe utilizar MIENTRAS 3. Si el mimmero de interacciones es indeterminada y el bucle se debe ejecutar siempre al menos una vez, utilizar REPETIR HASTA 4. Si el mimero de interacciones es indeterminada y debe cumplir una cierta condicién ( Decisién ) y el buele se debe ejecutar solo una vez, utilizar SI- ENTONCES 6 CASO QUE/HAGA Autoevaluacion Final Disefie un algoritmo y flujograma con las sentencias mas dptimas que se considere usted 1, Blaborar un Algoritmo que lea un caracter y almacene en una variable entera el mimero correspondiente en la tabla ASCII. El programa debe escribir alguno de los siguientes mensajes " MAYOR ' Si la suma de los digitos que componen el miimero almacenado es mayor @ 10 “IGUAL ' Sila suma de Jos digitos que componen el mimero almacenado es igual a 10 * MENOR ’ Si la summa de Jos digitos que componen el mimero almacenado es menor a 10 Si al carécter leido le corresponde un stimero ASCIL menor a 33 0 mayor a 126, se debe escribir el mensaje : Cardcter de Contra!’ Independientemente del mensaje escrito, se debe escribir al final de la ejecucién del programa, el mensaje ‘RINALIZAMOS', 2. Caleular todas las ordenadas impares de la fimeién Y=f(0)= x? +2. EL algoritmo debe imprimir la abscisa y la ordenada para los. valores comprendidos entre Ly 50 3, Escriba un algoritmo que calcule la suma de los cuadrados de los 100 enteros es decir la adicién S= 1° +2°+3°+4° +... +100 4, Bscriba un algoritmo que lea un dato ny calcule los siguientes valores ny nl -77- Capitulo Ill | Sentencias de Controt 5. Escriba un algoritmo que lea los datos any 1 y calcule al Sumatoria de: Suma= ar"? —y Producto =N! *2* 6. Suponga que tiene una tienda y desea registrar sus ventas por medio de wna computadora, Disefte un pseudocddigo que lea por cada cliente a). el monto de la venta, )-calcule ¢ imprima el IVA, ©)--calcule ¢ imprima el total a pagar, d).- lea la cantidad con que paga el cliente, &)-calcule e imprime el cambio, Al final del dia debera imprimir la cantidad de dinero que debe haber en la caja 7. Se tiene un conjunto de 1,000 tarjetas cada una contiene la informacion del ccenso para una persona 1.- Namero de censo, 2.- Sexo 3.- Edad. 4.- Estado civil (a.- soltero, b, Casado, e, Viudo, d, Divoreiado ) Disefie un pseudocédigo estructurado que lea todos estos datos, ¢ imprima el mimero de censo de todas las jvenes solteras que estén entre 16 y 21 altos. 8. Disefie un pseudocddigo que lea el valor de un fngulo expresado en tadianes y calcule e imprima el valor del seno de dicho angulo. Se leer también el nimero de términos de la serie. SEN(X) =X -(X2/31)+( XSI) = DS 9, Caleule la suma de los términos de Ia serie FIBONACCI cuyos valores se encuentran entre 100 y 10,000. -78- Capitulo IV CAPITULO 4 Arreglos, Vectores y Matrices Atregios, Veetores y Matrices 41 Areglos 4.2 Sentencias Secuenciales 43 Senttencias de Decision o Secuenciales 4.4 Sentencias de Seleecin Anidada 4.1. Arreglos Un Arregio es tuna estructura de datos que almacena bajo el mismo nombre (variable) tuna coleccidn de datos del mismo tipo. Los arreglos se caracterizan por + Almacenan Jos elementos en posiciones contiguas de memoria + Tienen un mismo nombre de variable que representa a todos los eletnentos. Para hacer referencia a esos elementos es necesario utilizar tn indice que especifica el lugar que ocupa cada elemento dentro del archivo. Unidimensionales (Vectores) Tipo de Anteglos Bidimensionales (Matrices) 4.2. Vectores Es un arreglo de “NN” elementos organizados en una dimensién donde “N” recibe el nombre de Jongitud o tamatio del vector. Para hacer referencia aun elemento del vector se usa el nombre del mismo, seguido del indice (entre corchetes), el cual indica una posicién en particular del vector. Por ejemplo Veo[x] Donde: Vee Nombre del arreglo x ‘Numero de datos que constituyen el arreglo =79* Capitulo IV Atregios, Veetores y Matrices Ropresontacién gréfica de un vector Veefl] [7 Vedl2] fg Vee[3] Tg Vela] [4 o Lienado de un Vector Hacer paral= 1a 10 Leer veefl Fin-para Hacer mientras <= 10 Leer veel] Fiivsnientras rl Repetic ‘Leer veefl] [=I] Hasta-que P10 Bercicios Propuestos 1 Caloular el promedio de 50 valores almacenados en tun vector. Determinar ademas cuantos son mayores que el promedio, imprimir el promedio, el numero de datos mayores que el promedio y una lista de valores mayores que el promedio. Llenar dos vectores Ay B de 45 elementos cada uno, sumar el elemento uno del vector A con al elemento uno del vector B y asi sucesivamente hasta 45, almacenar el resultado en un vector C, © imprimir el vector resultante Llenar un vector de 20 clementos, imprimir la posicién y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes, Almacenar 500 mimeros en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el veetor resultante, Almacenar 300 mimeros en un vector, imprimir cuantos son ceros, cuantos son negativos, cuanttos positives, Imprimir ademés la suma de los negativos ‘ya suma de los positivos, 80 Capitulo IV | Arregios, Vectores y Matrrces 6. Almacenar 150 nimeros en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante 7. Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos veetores son iguales y “Diferentes” si no lo son. 8, Sern iguales cuando en la misma posicién de ambos vectores se tenga el tistno Valor para todos los elementos. 9. Se tiene el veetor A con 100 elementos almacenados. Disefie un algoritmo ue escriba “SI” si el vector esta ordenado ascendentemente 0 “NO” si el ‘vector no esta ordenado 10, Disefie un algoritmo que lea un numero cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Eseribir la posicién donde se encuentra almacenado el numero en el vector 0 el mensaje “NO” si no lo encuentra, Biisqueda secuencial 11. Disefie un algoritmo que lea dos vectores A y B de 20 elementos cada uno 'y multiplique el primer elemento de A con el ultimo elemento de B y luego el segundo elemento de A por el diecinueveavo clemento de By asi sucesivamente hasta legar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicacién almacenarlo en un vector c 12, Disefie un algoritmo que almacene en un vector lamado FIB[100] los 100 ‘primeros niimeros de la serie fibonaeci. 5.3. Matriz Es un aneglo de M * N elementos organizados en dos dimensiones donde “M” es el mumeto de flas o reglones y “N” el numero de columnas. Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz acompaftado de dos indices. ‘Mat [R,C] Donde R indica el renglén y C indica la columna, donde se encuentra almacenado el dato. -81- Capitulo IV | Arregios, Vectores y Matrrces Ropresentacién grifica de una matriz Mat [R.C] Filao Renglon SRERPAREIER! 21122123124 3,1 | 32/33/34 41142143 | 44 Columna_ (cl Llenado de una matriz Por reaglones Hacer para R= 1a Hacer para C= 14 $ Leer Mat [R.C] Fin-para Fin-para Por colurmas Hacer para C= 1a $ ‘Hacer para R= 135 Leer Mat [R,C] Fin-para Firpara Nota Para hacer el lenado de una matriz se deben de usar dos variables para los indices y se utilizan 2 ciclos uno para los renglones y otro para las coltummas; a estos ciclos se les llama ciclos anidados (un ciclo dentro de otto ciclo), Hercicios Propuestos 1, Hacer un algoritmo que almacene mimeros en una matriz de 5 * 6. Ipsimir la summa de os nimeros almacenados en la matsiz. 2. Hacer un algoritmo que lene una matriz de 10 * 10 y determine la posicién [renglén ,columna] del mumero mayor almacenado en la matriz. Los rimeros son diferentes 3. Hacer un algoritmo que lene una matriz.de 7 * 7. Caleular la suma de cada renglon y almacenarla en tn vector, Ia suma de cada columna y almacenarla en otro vector = 82 Capitulo IV | Arregios, Vectores y Matrrces 10. Haver un algoritmo que lene wna matriz. de 20 * 20, Stmar las columnas © ‘imprimir que columna tuvo la mésima suma y la suma de esa columna. Hacer un algoritmo que ene una matriz de 5 * 5 y que almacene la diagonal principal en un veetor. Imprimir el vector resultante Hacer un algoritmo que lene uma matriz.de 10 * 10 y que almacene en la diagonal principal unos y en las demas posiciones ceros. Hacer un algoritmo que lene una matriz de 6 * 8 y que almacene toda la matriz en un veetor. Imprimir el vector resultante. Hacer un algoritmo que lene una matriz de 8 * 8, que almacene Ja suma de Jos renglones y la suma de Jas cohurmas en un vector. Imprimir el vector resultant, Hacer un algoritmo que lene una matriz de 5 * 6 y que imprima cuantos de Jos nimeros almacenados son ceros, cuantos son positives y cuantos son. negative Disefie un pseudocddigo que esoriba el mumero de la hilera cuya summa sea mayor que las demas hileras, Suponga que todas las hileras suman diferente cantidad Bibliografia 10 JEAN Paul Tremblay, B. Bunt Richard; "Introducci6n a la ciencias de las computadoras (enfoque algoritmico)" Me Graw Hill JOYANES Aguilar Luis; "Metodologia de la programacién’ Me Graw Hill JOYANES Aguilar Luis; "Problemas de metodologia de la programacién' ‘Me Graw Hill CORREA Uribe Guillermo, "Desarrollo de algoritmos y sus aplicaciones en Basic, Pascal y C (3%. Edicién)" Me Graw Hill Levine Guillermo; "Introduccién a la computaciin y a la programacién estructurada" Me Graw Hill JOYANES Aguilar Luis; "Fundamentos de programacion, algoritmos y estructura de datos" Me Graw Hill JOYANES Aguilar Luis, Luis Rodriguez Baena y Matilde Femnindez Azula; "Fundamentos de programacién, libro de problemas" Me graw Hill Bores Rosario, Rosales Roman; "Computacién, Metodologia, igica computacional y programacion" Mc Graw Fill LOZANO Letvin; "Diagramacion y programacién estructurada y libre” Mc Graw Hill LOPEZ Roman Leobardo; "Programacién estructurada(enfoque algoritmico)" Computee Anotaciones Anotaciones Derechos Reservados [Frodos los derechos de este material se encuentran reservados, [esto implica sanciones contra copia, plagio total o parcial ltotocopiado y xerografiado, [Esta obra se termind de editar en Abril del 2007 |Matriz Original Microsoft Word 2003 ILIC. DIEGO ROLANDO REALPE B ILIC. WASHINGTON FIERRO |Copyright © 2007 -87-

También podría gustarte