Algoritmos y Programación Ing. Carlos Castillo Diestra EJERCICIOS Estructuras secuenciales Diseñe un algoritmo para las siguientes situaciones: 1. Lea un número entero, lo multiplique por dos y a continuación lo escriba en la panta lla. 2. Lea la velocidad inicial (VI), la aceleración (A) y el tiempo (T) y calcule la vel ocidad final (VF) y la distancia recorrida (X). VF=VI+A*T X=VI*T+A*T2 2 3. Hallar la suma y el promedio de tres números. 4. Hallar el área y el perímetro de un rectángulo. Considere las siguientes fórmulas: área = base x altura, perímetro = 2 x (base+altura). 5. Convertir una longitud dada en centímetros a pies. Considere que: 1 pie = 30.48 ce ntímetros. 6. Convertir una longitud dada en pies a centímetros. Considere que: 1 pie = 30.48 ce ntímetros. 7. Lea las dimensiones de un terreno y las dimensiones de una loseta y nos indique la cantidad de losetas necesarias para enlosar el terreno. 8. Lea una cantidad en dólares y el tipo de cambio y escriba su equivalente en soles. 9. Lea un número dado de segundos y determine su equivalente en minutos y segundos. P or ejemplo: 130 seg = 2 min 10 seg 10. Una institución benéfica europea ha recibido tres donaciones en soles, dólares y marco s. La donación será repartida en tres rubros: 60% para la implementación de un centro de salud, 40% pa ra un comedor de niños y el resto para gastos administrativos. Diseñe un algoritmo que determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dólar = 3.52 soles, 1 dólar = 2.08 marcos , 1 dólar = 1.07 euros 11. En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1 minuto = 60 segundos, 1 s egundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.
12. Determinar la cifra de las unidades de un número entero positivo 13. Determinar la suma de las cifras de un número entero positivo de 4 cifras 14. Lea la hora actual del día HH:MM:SS y determine cuantas horas, minutos y segundos restan para culminar el día. 15. Lea dos horas del día en horas, minutos y segundos y calcule su suma en horas, min utos y segundos 16. El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de S/.25 0 más el 12% del monto total vendido. Diseñe un algoritmo que determine el sueldo neto de un vendedor sab iendo que hizo tres ventas en el mes. 17. Determine el porcentaje de varones y de mujeres que hay en un salón de clases. 18. En países de habla inglesa es común dar la estatura de una persona como la suma de u na cantidad entera de pies más una cantidad entera de pulgadas. Así, la estatura de una persona podría ser 3 ' 2" ( 3 pies 2 pulgadas). Diseñe un algoritmo que determine la estatura de una persona en metros, conociendo su estatura en el formato inglés. Considere que: 1 pie = 12 plg, 1 plg = 2.54 cm, 1 m = 100 cm . 19. Exprese la capacidad de un disco duro en megabytes, kilobytes y bytes, conociend o la capacidad del disco en gigabytes. Considere que: 1 kilobyte = 1024 bytes, 1 megabyte = 1024 kilobyte , 1 gigabyte = 1024 megabytes. Estructuras de Selección Diseñe un algoritmo para las siguientes situaciones: 1. Califique el puntaje obtenido en el lanzamiento de tres dados en función a la cant idad seis obtenidos, de acuerdo a lo siguiente: Seis en los tres dados, excelente. Seis en dos dados, muy bien. Seis en un dado, regular. Ningún seis, pésimo. 2. Una compañía dedicada al alquiler de automóviles cobra $30 hasta un máximo de 300 km de distancia recorrida. Para más de 300 km y hasta 1000 km, cobra $30 más un monto adicional de $ 0.15 por cada kilómetro en exceso sobre 300. Para más de 1000 km cobra $30 más un monto adicional de $ 0.10 por cada kilómetro en exceso sobre 1000. Los precios ya incluyen el 18% del impuesto genera l a las ventas, IGV. Diseñe un algoritmo que determine el monto a pagar por el alquiler de un vehículo y el monto incluído del impuesto 1
Algoritmos y Programación Ing. Carlos Castillo Diestra 3. El promedio de prácticas de un curso se calcula en base a cuatro prácticas calificad as de las cuales se elimina la nota menor y se promedian las tres notas más altas. Diseñe un algoritmo q ue determine la nota eliminada y el promedio de prácticas de un estudiante 4. Lea tres longitudes y determine si forman o no un triángulo. Si es un triángulo dete rmine de que tipo de triángulo se trata entre: equilátero (si tiene tres lados iguales), isósceles (si tien e dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un triángulo se requiere que: "el lado mayor sea menor que la suma de los otros dos lados". 5. Lea tres números enteros y determine el menor valor positivo. Si los números positiv os son iguales, dar como menor a cualquiera de ellos 6. Lea tres números y los imprima de mayor a menor y de menor a mayor. 7. Lea un número e indique si se positivo, negativo o cero. 8. Lea tres números y emita un mensaje que indique si están en orden ascendente, orden descendente o en desorden. 9. Diseñe un algoritmo para obtener el grado de eficiencia de un operario de una fábric a de tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un período de prueba: Menos de 200 tornillos defectuosos. Más de 10000 tornillos producidos
El grado de eficiencia se determina de la siguiente manera: Si no cumple ninguna de las condiciones, grado 5. Si sólo cumple la primera condición, grado 6. Si sólo cumple la segunda condición, grado 7. Si cumple las dos condiciones, grado 8. 10. Se cuenta con los votos obtenidos por Juan, Pedro y Maria en una elección democrátic a a la presidencia de un club. Para ganar la elección se debe obtener como mínimo el 50% de los votos más 1. En caso que no haya un ganador se repite la elección en una segunda vuelta. Van a la segunda vuel ta los dos que obtengan la más alta votación ó, los tres en caso de producirse un empate doble (entre los dos con menor votación) o un empate triple. Diseñe un algoritmo que determine el resultado de la elección. 11. Lea un número entero de 3 cifras, y forme el mayor número posible con las cifras del número ingresado. El número formado debe tener el mismo signo que el número ingresado 12. Lea las dimensiones de los ángulos de un triángulo e indique si se trata de un triángu lo rectángulo. (Para que sean las dimensiones de los ángulos de un triángulo su suma debe ser 180º. Un triángulo
es rectángulo si al menos uno de los ángulos mide 90º) 13. Lea tres números y escriba el menor de los tres. 14. Una empresa ha fijado una bonificación para sus trabajadores, de acuerdo a las sig uientes reglas: Si el trabajador tiene hasta 2 hijos recibe S/. 100.00 Si el trabajador tiene más de 2 hijos recibe S/. 150.00 Si su esposa estuviera desempleada recibe S/. 150.00 Si tiene hijos en la universidad, recibe S/. 100.00 por cada uno de ellos. Escribir un algoritmo que lea los datos necesarios para calcular la bonificación y determine el monto de la bonificación. 15. Lea un año y determine si es bisiesto (Un año es bisiesto si es múltiplo de 4 (por eje mplo, 1992), excepto los múltiplos de 100 que no son bisiestos salvo que a su vez también sean múltiplos de 400 (por ejemplo, 1800 no es bisiesto, 2000 si) 16. Lea el número de un día de la semana e indique su nombre. 17. Lea el número de un mes (1 al 12) y un año y escriba el número de días que tiene el mes y si es año es o no bisiesto. (Un año es bisiesto si es múltiplo de 4 (por ejemplo, 1992), excepto los múl tiplos de 100 que no son bisiestos salvo que a su vez también sean múltiplos de 400 (por ejemplo, 1800 no es bisiesto, 2000 si). Estructuras Repetitivas Diseñe un algoritmo para las siguientes situaciones: 1. Escriba todos lo números pares comprendidos entre 1 y 50. 2. Lea el valor inicial y el valor final de un rango de números enteros y escriba tod os los números comprendidos en el rango. 3. Calcule la suma siguiente: 1 + 1/2 + 1/3+ 1/4+ ... + 1/N dónde N se especifica por el usuario 4. Encuentre el primer valor N para el cual la siguiente suma excede a 10000: 1 + 2+ 3 + 4+ ...+ N 5. Mostrar los N primeros términos de la serie: 5, 7, 10,14,19, .., N 2
Algoritmos y Programación Ing. Carlos Castillo Diestra 6. Ingrese una serie de números hasta ingresar el valor 0. Luego reporte cuántos de los números ingresados fueron impares y cuantos pares. 7. Calcular la suma de los cuadrados de los N primeros números enteros. N es un enter o positivo. 8. Calcule la suma de los números pares comprendidos entre INICIO y FIN. INICIO y FIN son ingresados por el usuario. 9. Que simule un reloj digital. (HH:MM:SS). Ejemplo: 12:06:13 10. Que permita desplazar el cursor en la pantalla. El usuario pulsa la letra S para subir, B para bajar, D para derecha, I para izquierda y T para terminar. 11. Lea un número entero y calcule su factorial (No existe factorial de números negativo s. N! = 1, si N es cero; N! = 1*2*3*.. (N-1).* N, si N>0) 12. Lea un número entero y determinar si es primo o compuesto. (Un número es primo cuand o es solamente divisible entre si mismo y entre uno). 13. Lea una base real y un exponente entero positivo y calcule su potencia. 14. Lea dos números enteros e imprima todos sus divisores comunes, excepto la unidad. 15. Lea un número entero positivo y determine si es un número perfecto. (Un número entero positivo es perfecto si es igual a la suma de todos sus divisores enteros positivos, excepto el mismo. Ejem plo: 6 es un número perfecto, ya que sus divisores son: 1,2,3 y 1+2+3 = 6) 16. Lea número entero y lo escriba en forma inversa. (2345, su inverso 5432). 17. Lea dos números enteros y determine su mínimo común múltiplo. 18. Lea dos números enteros y determine su máximo común divisor. Programación de Estructuras Secuenciales Codificar en C++ los algoritmos diseñados en la semana 2 Programación de Estructuras Selectivas Codificar en C++ los algoritmos diseñados en la semana 3 Programación de Estructuras Repetitivas Codificar en C++ los algoritmos diseñados en la semana 4 Funciones Diseñar los algoritmos y codificar en C++ para los siguientes ejercicios:
1. Acepte como parámetro un número entero y devuelva su factorial (No existe factorial de números negativos. N! = 1, si N es cero; N! = 1*2*3*.. (N-1).* N, si N>0) 2. Acepte como parámetro un número entero y determinar si es primo o compuesto. (Un númer o es primo cuando es solamente divisible entre si mismo y entre uno). 3. Acepte como parámetros una base real y un exponente entero positivo y calcule su p otencia. 4. Acepte como parámetros dos números enteros e imprima todos sus divisores comunes, ex cepto la unidad. 5. Acepte como parámetro un año y determine si es bisiesto. 6. Acepte un número entero positivo y determine si es un número perfecto. (Un número ente ro positivo es perfecto si es igual a la suma de todos sus divisores enteros positivos, excepto el mismo. Ejemplo: 6 es un número perfecto, ya que sus divisores son: 1,2,3 y 1+2+3 = 6) 7. Acepte como parámetros tres números enteros y determine si son números pitagóricos. (Tre s números son pitagóricos, cuando el cuadrado de uno de ellos es igual a la suma de los cuadrado s de los otros dos). 8. Acepte como parámetro un número entero y lo escriba en forma inversa. (2345, su inve rso 5432). 9. Acepte como parámetros dos números reales y determine el mayor y el menor. 10. Acepte las dimensiones de los ángulos de un triángulo y determine si se trata de un triángulo rectángulo. (Para que sean las dimensiones de los ángulos de un triángulo su suma debe ser 180º. U n triángulo es rectángulo si al menos uno de los ángulos mide 90º) 11. Acepte como parámetro un número entero positivo N y calcule la suma siguiente: 1 + 1/2 + 1/3 + 1/4 + ... + 1/N 12. Encuentre el primer valor N para el cual la siguiente suma excede a 10000: 1 + 2 + 3 + 4 + ... + N 13. Determine si un número entero N es primo o compuesto. (Un número es primo cuando es solamente divisible entre si mismo y entre uno, sino es compuesto). 14. Acepte un número entero positivo y determine si es un número perfecto. (Un número ente ro positivo es perfecto si es igual a la suma de todos sus divisores enteros positivos, excepto el mismo. Ejemplo: 6 es un número perfecto, ya que sus divisores son: 1,2,3 y 1+2+3 = 6) 15. Escriba todos los números perfectos menores que 10000. 16. Acepte dos números enteros y determine su mínimo común múltiplo. 3
Algoritmos y Programación Ing. Carlos Castillo Diestra 17. Acepte dos números enteros y determine su máximo común divisor. 18. Acepte tres números enteros y escriba todos sus divisores comunes. 19. Calcular la suma de los cuadrados de los N primeros números enteros. N es un enter o positivo. 20. Acepte como parámetros el día, mes y año de nacimiento de una persona y obtenga el númer o tarot. Para calcular el número Tarot de una persona, se suma los números de su fecha de nacimien to y a continuación se reduce a un único digito; por ejemplo si la fecha de nacimiento fuera 17 de octubr e de 1970, los cálculos a realizar serían: 17+10+1970=1997 . 1+9+9+7 =26 . 2+6 . 8 lo que quiere decir que el número Tarot es 8. Usar funciones homónimas (sobrecarga de funciones) o funciones con valores predefi nidos al parámetro (valores por omisión) 21. Acepte como parámetros 2, 3 22. Acepte como parámetros 2, 3 23. Acepte como parámetros 2, 3 24. Acepte como parámetros 2, 3 25. Acepte como parámetros 2, 3 26. Acepte como parámetros 2, 3 s. Usar funciones recursivas:
o 4 números flotantes y devuelva su suma. o 4 números enteros y devuelva su promedio. o 4 números reales y devuelva el mayor. o 4 números enteros y devuelva su mínimo común múltiplo. o 4 números enteros y devuelva su máximo común divisor. o 4 números enteros y escriba todos sus divisores comune
27. Acepte como parámetro un número entero y devuelva su factorial (No existe factorial de números negativos. N! = 1, si N es cero; N! = 1*2*3*.. (N-1).* N, si N>0) 28. Acepte como parámetros una base real y un exponente entero positivo y calcule su p otencia. 29. Acepte como parámetro un número entero y lo escriba en forma inversa. (2345, su inve rso 5432). 30. Acepte como parámetro un número entero N y calcule la suma: 1. 1+2+3+4+ ...+(N-1)+N 31.
Acepte un número entero y determine la serie de Fibonacci: 1,1,2,3,5,8,13,21,34, (Recursivamente se define: Fib(N) = 1, si N=0 o N = 1; Fib(N) = Fib (N-1) + Fib (N-2), si N > 1) Arreglos y Cadenas Diseñar los algoritmos y codificar en C++ para los siguientes ejercicios: 1. Lea el vector A de números reales y tamaño N, luego lo escriba tal como es e inverti do y reporte el mayor, el menor, su suma y el promedio. 2. Lea 2 vectores A y B, calcule su suma C e imprima los vectores A, B y el vector suma C 3. Lea 2 vectores A y B, calcule su producto C e imprima los vectores A, B y el vec tor producto C 4. Lea 2 matrices A y B, calcule su suma C e imprima las matrices A, B y la matriz C 5. Lea 2 matrices A y B, calcule su producto C e imprima las matrices A, B y la mat riz C 6. Lea la matriz: y lo escriba como: 47135 423 20697 701 31264 162 396 574 7. Lea una matriz cuadrada y escriba la suma de todos los elementos que no pertenec en a la diagonal principal. 8. Una matriz cuadrada A se dice que es simétrica si A(i;j)=A(j,i) para todo i,j dent ro de los límites de la matriz. Escribir un programa que decida si una matriz dada es o no simétrica 9. Escribir un programa que lea las dimensiones de una matriz, lea y visualice la m atriz y a continuación encuentre el mayor y menor elemento de la matriz y sus posiciones. 10. Los resultados de las últimas elecciones a alcalde en la ciudad ABC han sido los s iguientes: Distrito Candidato A Candidato B Candidato C 1 2 3 4 5 4
194 180 221 432 820
48 20 90 50 61
206 320 140 821 946
Algoritmos y Programación Ing. Carlos Castillo Diestra Escribir un programa que haga las siguientes tareas: a. Imprimir la tabla anterior b. Calcular e imprimir el número total de votos recibidos por cada candidato y el por centaje del total de votos emitidos. Asimismo, visualizar el candidato más votado c. Si algún candidato recibe mas del 50% de los votos, el programa imprimirá un mensaje declarándolo ganador. d. Si ningún candidato recibe más del 50% de los votos, el programa debe imprimir el no mbre de los dos candidatos más votados, que serán los que pasen a la segunda ronda de las elecciones . 11. Una tienda registra información de sus productos: Código, Descripción y Precio. Escrib ir un programa que lea información de 10 productos, luego la escriba y además reporte el producto cuyo precio es menor que los demás. 12. Lea información de 10 alumnos: nombre y nota; y reporte primero el nombre y la not a de los alumnos aprobados y a continuación el nombre y la nota de los alumnos desaprobados. 13. Determinar la frecuencia de aparición de cada vocal en un texto tecleado por el us uario. 14. Determinar el numero de vocales en un texto tecleado por el usuario 15. Determinar el nùmero de vocales y el numero de consonantes en un texto tecleado po r el usuario 16. Acepte como parámetro una cadena de caracteres y determine si se trata de un número entero positivo. 17. Acepte como parámetro una cadena de caracteres y determine si se trata de un número real. 18. Lea una frase y a continuación visualice cada palabra de la frase en columna, segu ido de su longitud. 19. Lea una cadena de caracteres y lo escriba en forma inversa (ejemplo, hola amigo se convierte en ogima aloh). 20. Una función que reciba una cadena de caracteres y determine si es un palíndromo (un palíndromo es un texto que se lee igual en sentido directo y en inverso, ejemplo: radar, oso). 21. Escribir un programa que desplace una palabra leída del teclado desde la izquierda hasta la derecha de la pantalla.
22. Lea un texto de formado por un numero impar de palabras y escriba la palabra que está en el centro. 23. Escribir un programa que lea una cadena en minúsculas y escriba solo la última palab ra en mayúsculas. 24. Realizar un programa de criptografía de textos que permita cifrar un texto que se introduce mediante el teclado, siguiendo el siguiente código: La letra A se sustituye por B, la letra B por C, a letra C por D, ......, y la l etra Z por A. (Ejemplo: MARIA ES ABOGADA se habrá de cifrar e imprimir: NBSJB FT BCPHBEB) Ordenamiento y Búsqueda Diseñar los algoritmos y codificar en C++ para los siguientes ejercicios: 1. Lea una serie de números enteros, los ordene en orden descendente y a continuación v isualice la lista ordenada. 2. Lea un vector A de N elementos reales, donde N es impar y luego determine la med iana. La mediana es el valor tal que la mitad de los números son mayores que el valor y la otra mitad son menores. 3. Lea 42 números enteros en un arreglo 7 x 6 y realizar las siguientes operaciones:
Imprimir el arreglo
Encontrar el elemento mayor del arreglo
Indicar la posición dónde se encuentra el elemento mayor del arreglo
Si el elemento mayor está repetido, indicar cuántas veces y la posición de cada elemen to repetido. 4. Se lee una lista de números flotantes desde el teclado y se desea saber si entre d ichos números se encuentra un número A ingresado por el usuario. En caso afirmativo, visualizar su posición en la lista. Resolver el problema por a) Búsqueda secuencial y b) Búsqueda binaria. 5. Simule un diccionario Inglés/Español y Español/Inglés. Se debe usar arreglos paralelos. El programa debe presentar un menú con las siguientes opciones: 1. Leer diccionario 2. Buscar Inglés/Español 3. Buscar Español/Inglés 4. Salir 5