13 de junio de 2017 Angel Vázquez-Patiño
Departamento de Ciencias de la Computación Universidad de Cuenca Cuenca, Ecuador angel.vazquezp @ ucuenca.edu.ec Contenido Introducción...10 Fundamentos...11 Qué es programar...11
Qué es un lenguaje de programación...11
Modelización de problemas del mundo real...12
Del problema real a su solución por computadora...12
Conceptos acerca de software...13
Variables y tipos de datos...13
Algoritmos...13
Ejercicios desde cero...14
Diagramas de flujo...16 Pseudocódigo...16 Prueba de escritorio...16 Codificación...17 Documentación y su importancia...17 Programación Secuencial...18 Miscelánea...18 Respaldo de información...19
Cálculos espaciales básicos...20
Distancia euclidiana...20
Distancia de Manhattan...20
* Métricas Lp...20
Cálculo de potencia...22
Área de un triángulo dadas las longitudes de los lados...23
Hexágono regular...23
Área de un triángulo dadas las coordenadas de sus vértices...23
Puntos colineales...24
Movimiento rectilíneo uniforme...24
Ponderación de calificaciones...24
Sistema de ecuaciones lineales...24
* Vuelto/cambio de una compra...25
* Transformación entre unidades de tiempo...25
Cálculo de tiempo en horas, minutos y segundos...25
Transformación de pies a metros...25
Unidades de capacidad...25
Cálculo de comisión...26
Cálculo de descuento...26
Calificación de programación...26
Porcentaje de mujeres y hombres...27
* Cálculo de la edad de una persona...27
Conversión de radianes a grados centesimales y viceversa...27
* Conversión de temperaturas de Grados Celsius a Fahrenheit y viceversa...27
Área y volumen de una esfera...27
Longitud y área de un círculo...27
Solución de ecuaciones de segundo grado...27
Intercambio de valores de variables...28
Multiplicación de polinomios...29
Caída de cuerpos en el vacío...29
Ley de gravitación universal...29
Logaritmo de un número en cualquier base...29
Trabajo conjunto...29
Estructuras de control...30
Miscelánea...30
Estructura de decisión IF...44
Miscelánea...44
Aprobación de curso...45
Número par o impar...45
Número nulo, positivo o negativo...45
Nota alfabética...46
Día de la semana...46
Estación del año...46
Divisibilidad de dos números...46
Aritmética básica con 3 números...47
* Incentivo por producción...47
Posición del menor de n números...47
Puntaje en olimpiada...48
Pago en estacionamiento...48
Número de cifras de un número...48
Número con ceros a la izquierda...48
Promoción en una papelería...49
Saldos y pagos mínimos...49
Ordenamiento de números...49
Restricción de ingreso...50
Vocales o consonantes...50
Conversión de unidades de masa...50
Mayor y menor de 10 números...50
Estructura de selección...51
Miscelánea...51
Meses, de números a letras...51
Signo zodiacal...52
Total de ventas...52
Estructura de repetición WHILE...54
Miscelánea...54
Números de n a m...55
Números pares del 1 al 100...55
Acumulador del 1 al 100...55
Contador de números impares...56
Múltiplos de n...56
Suma y promedio de n números...56
Mayor y menor de una serie de números...57
Subsidio familiar...57
* Factura...57
Repetición de series...58
* Contador de mayores de edad...58
Factorial de un número...58
Combinatoria...59
Simple random walks...59
* Dibujo de cuadrado...59
* Dibujo de cuadrado y rombo...60
Triángulo de Pascal...60
Serie del binomio...61
Interés fijo anual...61
Promedio de edad en escuela...62
Trabajo conjunto...62
Frases...62
Tirada de dados...62
Series y sumatorias...62
Triángulo de números...63
Número de días entre dos fechas...63
Estructura de repetición DO-WHILE...64
Miscelánea...64
Números de n a m...65
Números impares del 1 al 100...66
Acumulador del 1 al 100...66
Contador de números pares...66
Codificación de caracteres...66
Ingreso de binarios...66
Ingreso de números mientras sean positivos...67
Conteo de frases...67
Ingreso de 5 números...67
Longitud y área de un círculo: validación...67
Cantidad de números ingresados...67
Cuadrado de números menores a n...67
Contador de pares e impares...67
Contador de familias según número de miembros...67
* Números con vocales...68
* Operador potencia...68
Factores de un número entero...68
* Factorial...68
Números primos...68
Número de dígitos de un número entero...69
Valor relativo de un número...69
Cálculo de comisiones...69
Ordenamientos...69
Juego: adivina el número...70
Cara o cruz...70
Análisis de frecuencias en lanzamientos de un dado...70
Series y sumatorias...70
Número de cifras de un número...71
Reloj de 24 horas...71
* Progresión geométrica...71
* Números de la serie Fibonacci...72
* Aproximación de π...72
Aproximación del logaritmo natural...73
* Aproximación del arco seno...73
* Dibujo de triángulos...73
Menú...74
Función exponencial...75
Número en cualquier base...75
Menú: revisión de número...75
Tabla de multiplicar de un número entre 0 y 10...75
Estructura de repetición FOR...76
Miscelánea...76
Signo zodiacal y número de suerte...79
Series y sumatorias...79
Menú: media, mayor y menor...80
Manejo contable...81
* Factorización de trinomio...81
Cálculos con dígitos de un número...82
* Serie de Leibniz...82
* Carrera de caballos...83
Número de Armstrong...84
* Prueba del nueve de la división...84
* Encontrando triángulos rectángulos...84
* Suma de dos números...86
Raíz cuadrada de un número...86
Estructuras de Datos...90 Arreglos...90 Miscelánea...90 Manejo de arreglos...94 * Eliminación de duplicados...94 Ordenamiento de n números...95
Ángulo entre vectores...95
Relleno de arreglo con números aleatorios...95
Graficación de frecuencias...95
Criba de Eratóstenes...96
Algoritmo de Havel-Hakimi...97
Matrices...97
Miscelánea...97
Suma y resta de matrices...103
Producto de un escalar por una matriz...103
Diagonal principal de una matriz...103
* Transpuesta de una matriz...103
Determinante de una matriz...103
Producto de matrices...104
Punto de silla de una matriz...104
Tablero de ajedrez...104
El cuadrado latino...104
El cuadrado mágico...104
Cadena de ADN...105
Gimnasia cerebral...106
Cálculos espaciales básicos...108
Formación de grupos de trabajo...110
* Matriz de adyacencia...113
Craps...115
Hormiga de Langton...115
* Las ocho reinas...117
* Datos de personas...118
* Datos de empresas y empleados...120
* Estadística descriptiva: frecuencias e histograma...122
Algoritmo de Floyd-Warshall...123
Funciones...124
Ámbito de las variables...124
Miscelánea...124 * Histograma...128 Aritmética básica...128 Potenciación...129 Aproximación de sinh-1...129 Función W de Lambert...129 Factorial de un número...130
Máximo común divisor y mínimo común múltiplo...130
El método de la bisección...131
* El método de Newton...132
Ordenamiento de n números...133
Búsqueda lineal...134
Búsqueda binaria o dicotómica...134
Juego de dados entre dos...134
Manejo de Caracteres y Cadenas...136
Miscelánea...136
* Datos personales...144
Estadísticas de texto...144
* Analizador de tweets...145
Eliminación de n-ésima palabra...146
Cifrado por sustitución...147
Cifrado por transposición...148
* Línea de comandos...149
* Mantenimiento de datos de personas...151
Búsquedas...155 Ordenamiento...158 Miscelánea...158 * Calificaciones de estudiantes...164 Ordenamientos en matriz...165 Archivos...168 Miscelánea...168 Miscelánea de Ejercicios...169 * Combate de pokemones...169
Conversión de un número en base diez a sistema binario...171
Conversión de un número en base binaria a sistema en base diez...171
Cálculo de las tres alturas de un triángulo dadas las longitudes de sus lados. .171 Valor futuro de una inversión...171
Cálculo del capital inicial...171
Cálculo de la tasa de interés...171
Cálculo del número de años...171
Media, mediana y varianza de N datos...171
Transformación de números decimales a romanos...171
Dígitos de un número...173
* Pirámide invertida...173
Cubos e impares...173
Cantidad de dígitos fijo de números mostrados...173
Algoritmo de Gauss y Método de eliminación de Gauss...174
Métodos de Jacobi y de Gauss-Seidel...174
Dados...175
Búsquedas y ordenación...175
Interpolación...175
Integración numérica...175
Ecuaciones diferenciales ordinarias (EDO)...175
¿Qué Hace el Algoritmo/Programa?...178
Lenguaje Java...182 Lenguaje C...189 Fórmulas y Relaciones...190 Estadística...190 Media ponderada...190 Medidas de longitud...190 Unidades de capacidad...190
Unidades de capacidad de información...190
Tiempo...191 Unidades de temperatura...191 Círculo...191 Esfera...191 Cuadrado...191 Ángulos...191
Ecuación de segundo grado...192
Introducción
Los algoritmos están ordenamos de acuerdo a su complejidad. Los ejercicios que tienen un asterisco al comienzo son ejercicios tomados en alguna prueba o examen. Las presentaciones utilizadas por Angel Vázquez para el curso de Programación 1 en la Facultad de Ingeniería de la Universidad de Cuenca son:
1. https://www.slideshare.net/angenio2/programacin-presentacin-del-curso 2. https://www.slideshare.net/angenio2/programacin-fundamentos-64227508 3. https://www.slideshare.net/angenio2/programacin-algoritmos 4. https://www.slideshare.net/angenio2/programacin-estructuras-de-control 5. https://www.slideshare.net/angenio2/programacin-introduccin-a-java 6. https://www.slideshare.net/angenio2/programacin-1-introduccin-a-c 7. https://www.slideshare.net/angenio2/programacin-tipos-de-datos-java 8. https://www.slideshare.net/angenio2/programacin-1-tipos-bsicos-de-datos-en-c 9. https://www.slideshare.net/angenio2/programacin-estructuras-de-datos 10. https://www.slideshare.net/angenio2/programacin-1-estructuras-de-datos-en-c 11.https://www.slideshare.net/angenio2/programacin-funciones 12.https://www.slideshare.net/angenio2/programacin-1-funciones-en-c 13.https://www.slideshare.net/angenio2/programacin-1-cadenas-en-c 14. https://www.slideshare.net/angenio2/programacin-bsquedas-y-ordenamientos
Cualquier comentario, duda o sugerencia con respecto a los ejercicios o las presentaciones siempre es bienvenida.
Fundamentos Qué es programar
1. * Indique qué es programar
2. La programación se puede definir como
a) el proceso de diseñar, codificar, depurar y mantener el código fuente de programas de computador
b) la ejecución de programas de ordenador desde la línea de comandos c) la instalación de programas en sistemas operativos desde la línea de
comandos
d) las anteriores respuestas no son correctas 3. Pregunta
Qué es un lenguaje de programación
1. Cuál(es) de los siguientes son lenguajes de programación a) Eiffel
b) C# c) Fortran d) DOS
2. ¿Cuál es el código ASCII decimal de “nueva línea” (line feed)? a) 10
b) 13 c) 32
d) Las anteriores respuestas no son correctas
3. ¿Cuál es el código ASCII decimal de la letra A mayúscula? a) 32
d) 126
4. En un lenguaje débilmente tipado
a) Un valor de un tipo puede ser tratado como de otro tipo
b) Un valor de un tipo nunca puede ser tratado como de otro tipo
c) Un valor de un tipo puede ser tratado como de otro tipo siempre que se realice una conversión de forma explícita
d) Las anteriores respuestas no son correctas 5. El lenguaje ensamblador se sitúa
a) Más cerca del lenguaje máquina que de los lenguajes de alto nivel b) Más cerca de los lenguajes de alto nivel que del lenguaje máquina c) No hay un lenguaje ensamblador
d) Las anteriores respuestas no son correctas
6. Se considera que el primer lenguaje de alto nivel fue a) Ada
b) C c) Fortran d) Java
7. Imperativo, declarativo y orientado a objetos son
a) Modos de compilar el código fuente de un programa de ordenador b) Modos de definir el pseudocódigo de un programa de ordenador c) Paradigmas de programación
d) Las anteriores respuestas no son correctas 8. Pregunta
Modelización de problemas del mundo real
Del problema real a su solución por computadora
2. * Describa las etapas de la resolución de un problema con computadora Conceptos acerca de software
Variables y tipos de datos
1. int, char, float, string y boolean son a) Funciones de acceso a datos b) Instrucciones de acceso a datos c) Sentencias de control
d) Tipos de datos
2. Una variable es (seleccione una o más opciones según corresponda) a) La que almacena un valor entero
b) Una constante que varía su valor c) A la que se le asigna un nombre d) La que permite la entrada de datos
e) La que permite almacenar un valor capturado Algoritmos
1. * Explique lo qué es un algoritmo. Dé un ejemplo sencillo.
2. * ¿Cuáles son las características que debe cumplir un algoritmo? 3. * Describa las características de un algoritmo.
4. * Describa qué es un algoritmo y liste (sólo mencionarlas) las formas de representar los algoritmos que conozca. Dé un ejemplo sencillo de algoritmo indicando qué es lo que hace.
5. * Respecto a los algoritmos, ¿qué tipo o tipos de representación existen? Descríbalos.
6. ¿Qué es un algoritmo?
a) Un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas que permiten realizar una actividad mediante pasos sucesivos que no
b) Es una igualdad entre dos expresiones algebraicas, denominadas miembros, en las que aparecen valores conocidos o datos, y desconocidos o incógnitas, relacionados mediante operaciones
c) Es una relación de variables que pueden ser cuantificadas para calcular el valor de otras de muy difícil o imposible cálculo y que suministra una solución para un problema.
d) Las anteriores respuestas no son correctas.
7. * Un algoritmo es (seleccione una o más opciones según corresponda) a) Secuencia de pasos
b) Secuencia de instrucciones c) Produce un resultado deseado d) Es finito
e) No siempre se alcanza un resultado Ejercicios desde cero
1. Algoritmo para preparar un margarita
2. Algoritmo para comprar los víveres de la semana 3. Algoritmo para construir una mesa
4. Algoritmo para calcular el área y el perímetro de un cuadrado 5. Algoritmo para calcular el volumen de una esfera
6. Algoritmo para calcular el IVA de una compra
7. Algoritmo para calcular la edad de una persona (tomar en cuenta sólo el año de nacimiento y el año actual)
8. Algoritmo para calcular el cubo de un número
9. Algoritmo para pasar de grados sexagesimales a radianes
10. Algoritmo para calcular el valor total a pagar por dos productos incluyendo el IVA y un impuesto más del 1% (se impone al valor de los productos, antes de calcular el IVA)
11. Algoritmo para calcular la distancia entre dos puntos dadas sus coordenadas cartesianas
12. Algoritmo para convertir un número de bits a bytes, KB, MB y GB. Vea la sección Unidades de capacidad de información de este documento.
13. Algoritmo para convertir minutos a días y horas 14. Sacar el promedio de las notas de 4 estudiantes
15. Algoritmo que calcule el área de un triángulo dadas las coordenadas cartesianas de sus vértices
16. Algoritmo que calcule el valor de un cateto dados los valores de la hipotenusa y del otro cateto de un triángulo rectángulo
17. Algoritmo que calcule el valor de la tangente de los lados opuestos a los catetos de un triángulo rectángulo dados los valores de la hipotenusa y uno de los catetos
18. Algoritmo que calcule el área de un triángulo dados los valores de los lados (revise el concepto de semiperímetro, ecuación 7)
19. Algoritmo que calcule las raíces de una ecuación cuadrática cuya forma canónica es ax2+bx+c=0
20. Algoritmo que muestre el valor absoluto de un número
21. Algoritmo que indica si un triángulo es equilátero, isósceles o escaleno dadas las longitudes de sus lados
22. Algoritmo para saber si una persona es mayor de edad o no 23. Algoritmo para saber si un número es par o impar
24. Algoritmo para saber cuál es el mayor de dos números
25. Algoritmo para calcular el total a pagar por una compra. Si la compra es de más de $100, el descuento es de 10%, caso contrario no hay descuento.
26. Algoritmo para saber cuántos dígitos tiene un número 27. Algoritmo para encontrar el ángulo entre dos arreglos
28. Algoritmo para encontrar la ecuación de una recta dados dos puntos de la misma
29. Algoritmo para pasar coordenadas polares a cartesianas 30. Algoritmo para pasar coordenadas cartesianas a esféricas 31. Algoritmo que calcule la suma de los números del 1 al 10 Diagramas de flujo
1. * Describa qué es un diagrama de flujo. Dé un ejemplo sencillo (explique qué hace el algoritmo del ejemplo).
2. * El Diagrama de Flujo se utiliza para mostrar gráficamente la solución de un problema
a) Verdadero b) Falso 3.
Pseudocódigo
1. * Describa qué es un pseudocódigo. Dé un ejemplo sencillo (explique qué hace el algoritmo del ejemplo).
2. * El pseudocódigo permite escribir programas utilizando el lenguaje natural. a) Verdadero
b) Falso
Prueba de escritorio
1. Con respecto a la prueba de escritorio se puede afirmar que (seleccione una o más opciones según corresponda):
a) Es una herramienta útil que permite entender qué hace un algoritmo b) Es una herramienta útil que permite entender qué hace un flujograma c) Es una herramienta útil que permite entender qué hace un Lenguaje de
Programación 2. Pregunta
Codificación
1. En el contexto de los diferentes tipos de errores que existen al momento de codificar y ejecutar un programa. Si en un lenguaje compilado usted pudo realizar la compilación de su código fuente sin errores, ¿qué otros tipos de errores podrían aparecer en la ejecución del programa?
2. Pregunta
Documentación y su importancia
1. Documentar el código fuente es añadir suficiente información para explicar lo que hace para que los humanos entiendan cuál es el objetivo de cada instrucción o conjunto de instrucciones. En este contexto, ¿qué información, como documentación, debe agregar al código un programa?
Programación Secuencial Miscelánea
1. Escriba un algoritmo que imprima lo siguiente en pantalla: E S T U D I A N T E N I V E R S I N G E N I E R Í A D A D
2. * Mostrar la salida en pantalla del siguiente algoritmo Proceso cambioVariable
Definir a, b, c, aux Como Entero; a <- 5; b <- 6; c <- 7; aux <- a; b <- a; c <- b; Escribir a, “ ”, b, “ ”, c; FinProceso
3. Se piden dos números y se presentan los resultados de la suma, resta, producto y división. Primero elabore un algoritmo que resuelva el problema y luego trate de editarlo para que use la menor cantidad de variables posible.
4. * Realice el diagrama de flujo, el pseudocódigo y la prueba de escritorio del siguiente ejercicio: Pedir al usuario el ingreso de tres números (x, y y z). Mostrar la suma de los tres números. Mostrar el resultado de x+y-z+100. Mostrar el resultado de (x-y)(x+y).
5. Elabore un algoritmo que permita solucionar el siguiente enunciado: se ingresan 5 números por el teclado del computador, encontrar la suma y el
promedio de los números ingresados. Represente el algoritmo a través de un diagrama de flujo, pseudocódigo; realice la prueba de escritorio.
6. El usuario ingresa la población de un país y su tasa de crecimiento anual (expresada como un porcentaje; por ejemplo 10, 20, 60). Calcular la población de ese país luego de uno, dos y tres años, asumiendo que la tasa de crecimiento poblacional se mantiene constante.
Una vez que haya elaborado su primer algoritmo para solucionar el problema, pregúntese lo siguiente: ¿cuál es el número mínimo de variables que puede utilizar para resolver el problema?
Una vez que resuelva el problema con el mínimo número de variables posible, conteste si el orden de las instrucciones cambiaría el resultado (i.e., ya no resolviera el problema).
7. Se ha establecido que el número máximo de latidos de corazón por minuto que cualquier persona puede alcanzar sin correr riesgos de salud es igual a 220 menos la edad de la persona en años. Asociaciones médicas recomiendan mantener el número de latidos por minuto durante una sesión de ejercicio físico en un rango seguro que está entre el 50 y el 85% del número máximo mencionado. Calcular el rango seguro de latidos por minuto usando la edad de una persona como dato de entrada.
8. La jornada de trabajo normal de un empleado durante una semana comprende 40 horas. Por cada hora trabajada dentro de esas 40 horas un empleado recibe el salario normal. Todas las horas trabajadas por encima de esas 40 horas se consideran horas extras. Por cada hora extra el empleado recibe 1.5 veces el salario que recibe por una hora normal. El usuario ingresa el salario normal por hora que gana un empleado y el número de horas trabajadas durante la semana. Mostrar el salario total semanal que gana el empleado.
Respaldo de información
Elaborar un algoritmo que permita calcular el número de CDs necesarios para hacer una copia de seguridad de la información almacenada en un disco duro cuya capacidad se conoce (es dada por el usuario). Considerar que el disco duro está lleno de información y su capacidad está expresada en GB. Cada CD que se utilizará para el respaldo tiene una capacidad de 700 MB; un GB tiene 1024 MB.
las pruebas de escritorio necesarias para verificar el correcto funcionamiento del algoritmo.
Cálculos espaciales básicos
La mayor parte de los análisis espaciales hacen uso de cálculos geométricos sencillos, a partir de los cuales se construyen algoritmos más complejos. A continuación se plantean ejercicios relacionados con cálculos básicos que constituyen los fundamentos del análisis geométrico tanto en el plano como en el espacio. Para más detalles lea la sección 10.3 Algunos cálculos espaciales básicos del libro de Olaya (2011).
Distancia euclidiana
Se tienen los puntos A(x1, y1) y B(x2, y2) en el plano cartesiano, elabore el algoritmo que permite obtener la distancia euclidiana entre A y B. La distancia euclidiana entre dos puntos (x1, y1) y (x2, y2) es
(1) Distancia de Manhattan
En el análisis geográfico es habitual utilizar la denominada distancia de Manhattan,
(2) Desarrolle un algoritmo que calcule la distancia de Manhattan de dos puntos A(x1, y1) y B(x2, y2) dados.
* Métricas Lp
Tanto la distancia euclidiana como la de Manhattan son casos particulares de las denominadas métricas Lp que corresponden a una expresión de la forma
(3) Con p=1 y β=1, se tiene la distancia de Manhattan y con p=2 y β=1, se tiene la distancia euclidiana. Desarrolle un algoritmo que calcule la distancia basada en métricas Lp dadas las coordenadas de dos puntos A(x1, y1) y B(x2, y2) y los valores de las variables β y p.
Distancia ortogonal
Información tomada de Wikipedia (https://goo.gl/B5NTCj). En Geometría euclidiana, la distancia de un punto a una recta es la distancia más corta entre ese punto y un punto de una línea o recta. Sean A un punto y D una recta (vea la figura 1), se define la distancia entre A y D como la distancia mínima entre A y un punto M de D.
Para una recta D definida por su ecuación reducida y = ax + b y siendo A un punto de la forma A = (xA, yA).
(4)
Figura 1: Distancia ortogonal del punto A a la recta D.
Para calcular la distancia de un punto M, (x0, y0, z0), a un plano D, ax + by + cz + d = 0, se tiene
(5) Desarrolle un algoritmo que calcule la distancia ortogonal de un punto a una recta y del mismo punto a un plano.
Distancia de un segmento de recta a un punto
Dado un segmento de recta definido por los extremos A(x1, y1) y B(x2, y2), y un punto C(x3, y3), la distancia del punto C al segmento AB se calcula como la distancia del punto C hasta la intersección (D) de una recta que pasa por el punto C y es perpendicular al segmento AB (vea la figura 2). El punto de intersección D tiene las coordenadas
y = y1 + u(y2 – y1) donde u se obtiene de
(6)
Figura 2: Distancia de un segmento de recta AB a un punto C.
Desarrolle un algoritmo que calcule la distancia de un punto a un segmento de recta. Los datos que se dan son las coordenadas de los puntos A, B y C (vea la figura 2).
Cálculo de interés
Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganará después de un mes si el banco paga a razón de 2% mensual. Realice el algoritmo que permita hacer el cálculo.
Costo de llamada
Se requiere un programa para determinar el costo que tendrá realizar una llamada telefónica con base en el tiempo que dura la llamada y en el costo por minuto. Represente la solución mediante un diagrama de flujo y pseudocódigo; además, verifique la validez del algoritmo mediante una prueba de escritorio.
Cálculo de potencia
Se desea calcular la potencia eléctrica de circuito de la figura 3. Realice un diagrama de flujo y el pseudocódigo que representen el algoritmo para resolver el problema. Considere que: y .
Figura 3: Circuito eléctrico.
Área de un triángulo dadas las longitudes de los lados
En geometría plana elemental, la fórmula de Herón da el área de un triángulo conociendo las longitudes de sus tres lados a, b y c (vea https://goo.gl/OEybZb):
donde s es el semiperímetro del triángulo:
(7) Desarrolle un algoritmo que permita calcular el área, en cm², de un triángulo, dadas las longitudes, en metros, de sus lados. Represente el algoritmo con un diagrama de flujo y pseudocódigo; además, realice las pruebas de escritorio necesarias para verificar el correcto funcionamiento del algoritmo.
Hexágono regular
• Desarrolle un algoritmo que dadas las longitudes de un hexágono regular, calcule el área del polígono.
• Desarrolle un algoritmo para calcular la apotema y el perímetro de un hexágono regular inscrito en una circunferencia de un radio dado.
Área de un triángulo dadas las coordenadas de sus vértices
El teorema 12 de la línea recta (Charles Lehmann, 1994, chap. 3) menciona: el área del triángulo que tiene por vértices los puntos (x1, y1), (x2, y2) y (x3, y3) es
1 2
|
x1 y1 1 x2 y2 1 x3 y3 1|
,Proponga un algoritmo para calcular el área de un triángulo dadas las coordenadas de sus vértices.
Puntos colineales
Un corolario del teorema 12 de la línea recta (Charles Lehmann, 1994, chap. 3) menciona: una condición necesaria y suficiente para que tres puntos diferentes de coordenadas (x1, y1), (x2, y2) y (x3, y3) sean colineales es que
|
x1 y1 1 x2 y2 1 x3 y3 1|
=0
Proponga un algoritmo para saber si tres puntos dados son colineales. Movimiento rectilíneo uniforme
Proponga un algoritmo para calcular la distancia recorrida (m) por un móvil que tiene velocidad constante (km/h) durante un tiempo t (s).
Ponderación de calificaciones
Fuente: (Pinales Delgado and Velázquez Amador, 2014)
1. Un estudiante realiza cuatro exámenes (/25) durante el semestre, los cuales tienen la misma ponderación. Realice el pseudocódigo y el diagrama de flujo que representen el algoritmo correspondiente para obtener el promedio de las calificaciones obtenidas.
2. Realice el diagrama de flujo, y pseudocódigo que representen el algoritmo para determinar el promedio que obtendrá un alumno considerando que realiza tres exámenes (/100), de los cuales el primero y el segundo tienen una ponderación de 25%, mientras que el tercero de 50%.
Sistema de ecuaciones lineales
1. Elaborar un algoritmo que resuelva un sistema de ecuaciones lineales con dos incógnitas.
2. Elaborar un algoritmo que resuelva un sistema de ecuaciones lineales con tres incógnitas.
* Vuelto/cambio de una compra
Partiendo de una cantidad de dinero menor a un dólar que se tiene que dar de cambio (vuelto), calcular el número de monedas que hay que dar (suponiendo que se cuenta con todas las monedas necesarias) de 1, 5, 10, 25, 50 centavos. Debe dar la menor cantidad de monedas posible. Realice el diagrama de flujo y pseudocódigo del programa; además, verifique la validez del mismo realizando la prueba de escritorio.
* Transformación entre unidades de tiempo
Partiendo de una cantidad de tiempo medida en segundos, calcular el número de semanas, días, horas, minutos y segundos a los que corresponde.
Cálculo de tiempo en horas, minutos y segundos
Dos Atletas recorren la misma distancia y se registran sus tiempos en segundos (at1seg) y minutos (at2min) respectivamente.
1. Se desea saber el tiempo total utilizado por el primer atleta en horas (at1horas), minutos (at1min) y segundos.
2. Se desea saber el tiempo total utilizado por el segundo atleta en horas (at2horas), minutos y segundos (at2seg).
Transformación de pies a metros
Dada una cantidad expresada en pies y otra en metros, determinar la suma pero convertida a pulgadas, a yardas, a metros y a millas por separado.
Unidades de capacidad
Dos tanques llenos de agua tienen expresadas sus capacidades en litros y en yardas cúbicas respectivamente. De la cantidad total de agua, el 75% se dedica al consumo doméstico y el 25% se dedica al riego. Diseñe un programa que haga lo siguiente:
1. Determine la cantidad total de agua expresada en yardas cúbicas y en metros cúbicos.
2. Determine las cantidades de agua dedicadas al riego y al consumo doméstico expresadas en metros cúbicos y en pies cúbicos.
Cálculo de comisión
Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.
Cálculo de descuento
Una tienda ofrece un descuento sobre el total de la compra y un cliente desea saber cuánto deberá pagar finalmente por su compra.
1. Realice un algoritmo que calcule un descuento del 15%.
2. Realice un algoritmo que calcule un descuento d (%) ingresado por el usuario.
3. Realice un algoritmo que calcule un descuento d ingresado y muestre el descuento aplicado y el total a pagar de la compra.
Calificación de programación
Un alumno desea saber cuál será su calificación final en la materia de programación. Dicha calificación se compone de los siguientes porcentajes:
• 55% del promedio de sus tres calificaciones parciales (cada una de las tres calificaciones fueron dadas sobre 20 y las tres tienen la misma ponderación) • 30% de la calificación del examen final (/20)
• 15% de la calificación de un trabajo final (/20)
1. Realice un programa que calcule la calificación final de la materia si la calificación final está dada sobre 20.
2. Realice un programa que calcule la calificación final de la materia si la calificación final está dada sobre 30.
3. Realice un programa que calcule la calificación final de la materia si la calificación final está dada sobre n ( ).
4. Realice un programa que calcule la calificación final de la materia si la calificación final está dada sobre n ( ) y los porcentajes de los que se compone la calificación final ya no son 55%, 30% ni 15%, sino que son
Porcentaje de mujeres y hombres
Un maestro desea saber qué porcentaje de hombres y qué porcentaje de mujeres hay en un grupo de estudiantes. Realice un programa que pida el número de estudiantes mujeres, el número de estudiantes hombres y muestre el porcentaje de mujeres y el porcentaje de hombres.
* Cálculo de la edad de una persona
Realice un algoritmo que determine aproximadamente (i.e., asuma que todos los años tienen 365 días y que todos los meses tienen 30 días) cuántos meses, semanas, días y horas ha vivido una persona dada la fecha y hora (no minutos) de nacimiento. Realice el diagrama de flujo y pseudocódigo del programa; además, verifique la validez del mismo realizando la prueba de escritorio.
Conversión de radianes a grados centesimales y viceversa
* Conversión de temperaturas de Grados Celsius a Fahrenheit y viceversa
• Realice un programa que reciba una temperatura en grados celsius y los convierta a grados fahrenheit.
• Realice un programa que reciba una temperatura en grados fahrenheit y los convierta a grados celsius.
La relación entre grados Celsius y grados Fahrenheit se muestra en la ecuación 19. Área y volumen de una esfera
Dado el radio (r) de una esfera, realizar un programa que calcule la superficie (s) y el volumen (v) de la misma.
Longitud y área de un círculo
Dado el radio (r) de un círculo, calcular la longitud (l) y el área (a). Solución de ecuaciones de segundo grado
Dada la ecuación de segundo grado calcular las raíces o ceros de la función. Vea la ecuación 26.
Intercambio de valores de variables
1. Pida al usuario ingresar dos números. El primer número se ingresará en la variable var1 y el segundo número se ingresará en la variable var2. Diseñe un algoritmo que, al finalizar el proceso, haga que el valor de la variable var1 tenga el valor de la variable var2 y viceversa. Por ejemplo, si se ingresa primero el valor 4 y luego el valor 7, la asignación de las variables sería y ; al finalizar el algoritmo, la asignación de las variables
sería y .
2. * Escribir un programa (algoritmo) que permita leer cuatro variables: a, b, c y d. Como resultado final se debe tener lo siguiente:
a) diagrama de flujo y prueba de escritorio ◦ en a queda el valor de b
◦ en b queda el valor de c ◦ en c queda el valor de d ◦ en d queda el valor de a
b) pseudocódigo y prueba de escritorio ◦ en a queda el valor de d
◦ en b queda el valor de c ◦ en c queda el valor de b ◦ en d queda el valor de a
El número de variables que maneje su algoritmo no debe sobrepasar las 5 variables.
3. Dados cinco valores en cinco variables (var1, var2, var3, var4 y var5), realice un algoritmo para que, luego de terminar su ejecución, los valores de las variables queden de la siguiente manera:
• var5 debe contener el valor de la variable var3 • var2 debe contener el valor de la variable var4 • var1 debe contener el valor de la variable var5 • var3 debe contener el valor de la variable var2
• var4 debe contener el valor de la variable var1
El número de variables que maneje su algoritmo no debe sobrepasar las 6 variables.
Multiplicación de polinomios
Dados dos polinomios de segundo grado de parte del usuario, calcular la multiplicación de dichos polinomios.
Caída de cuerpos en el vacío
Ley de gravitación universal
(8) Logaritmo de un número en cualquier base
Elaborar un algoritmo que pueda calcular el logaritmo de un número en cualquier base. Vea la ecuación 27.
Trabajo conjunto
Considere primero los siguientes problemas de razonamiento:
1. Si una persona termina una obra en 3 horas y una segunda persona termina la obra en 6 horas ¿cuánto se demoran en terminar la misma obra si trabajan juntas?
2. Si una persona termina una obra en 3 horas, una segunda persona termina la obra en 6 horas y una tercera persona termina la obra en 12 horas ¿cuánto se demoran en terminar la misma obra si trabajan juntas?
Luego de resolver los ejercicios anteriores, realice un algoritmo que pida el tiempo (individual) que se demoran en concluir una misma obra 4 personas diferentes y calcule el tiempo que se demoran en terminar la misma obra si trabajan juntas.
Estructuras de control
La teoría para poder resolver los ejercicios de estructuras de control la puede encontrar en https://goo.gl/OMZYqA.
Miscelánea
Algunas de las preguntas fueron basadas en el libro de Vázquez Gómez (2012). 1. * ¿Qué opción utilizaría para identificar que la variable x1 sea la mayor de 5
variables?
a) If (x1>x2) AND (x1>x3) AND (x1>x4) AND (x1>x5): b) If (x1>x2) OR (x1>x3) AND (x1>x4) OR (x1>x5): c) If (x1>x2) AND (x1>x3) OR (x1>x4) AND (x1>x5):
2. * ¿Cuál es el orden correcto para la resolución de un problema con computadora?
a) Análisis, Diseño, Especificación, Escritura, Verificación b) Análisis, Especificación, Diseño, Escritura, Verificación c) Análisis, Diseño, Escritura, Especificación, Verificación 3. * ¿A qué estructura de control se refiere la siguiente imagen?:
a) if b) while c) for
4. * ¿Cuál de las siguientes estructuras utilizaría, si se desconoce el número exacto de veces que se debe ejecutar un bloque de instrucciones?
a) if b) for c) while
5. * ¿Cuál de las siguientes estructuras utilizaría, si deseo repetir “n” veces un bloque de acciones?
a) if b) for c) while
6. * Explique qué estructura de repetición utilizaría si de antemano no supiera el número de iteraciones del bucle sino que se debe repetir cuando una condición es verdadera. Dé un ejemplo sencillo (diagrama de flujo, explique qué hace el algoritmo del ejemplo).
7. * Explique qué es un contador, para qué lo utilizaría. Dé un ejemplo sencillo (diagrama de flujo, explique qué hace el algoritmo del ejemplo).
8. * ¿Cuál es la diferencia entre un acumulador y un contador? ¿Diría que el acumulador es un caso particular de contador o que un contador es un caso particular de acumulador? Explique su respuesta.
9. * Explique qué estructura de repetición utilizaría si de antemano supiera el número de iteraciones del bucle. Dé un ejemplo sencillo (diagrama de flujo, explique qué hace el algoritmo).
10. * Explique qué es un acumulador, para qué lo utilizaría. Dé un ejemplo sencillo (diagrama de flujo, explique qué hace el algoritmo del ejemplo). 11. * Suponga que usted elabora un algoritmo donde se pide ingresar 100
números para luego realizar alguna operación con cada uno de ellos. Para el proceso de ingreso de esos 100 números (tenga en cuenta que podrían ser n números) usted podría utilizar (escoja 1 opción):
c) un bucle (lazo) while
d) tanto la opción a y la opción b funcionarían e) tanto la opción a y la opción c funcionarían 12. if, else, for y while son
a) Funciones de acceso a datos b) Sentencias de control
c) Tipos de datos
d) Las anteriores respuestas no son correctas 13. * Un bucle, ciclo o lazo es
a) Una sentencia que permite decidir si se ejecuta o no se ejecuta una sola vez un bloque aislado de código
b) Una sentencia que ejecuta otra sentencia que a su vez ejecuta la primera sentencia
c) Una sentencia que permite ejecutar un bloque aislado de código varias veces hasta que se cumpla (o deje de cumplirse) una condición
d) Todas las anteriores respuestas son correctas 14. ¿Qué muestra el siguiente algoritmo?
Algoritmo misterioso x <- 1 z <- 0 Mientras x <= 10 Hacer y <- x * x Escribir y z <- z + y x <- x + 1 FinMientras Escribir z FinAlgoritmo
15. * ¿Cuál de los siguientes algoritmos imprime en pantalla lo que está a continuación?
* *****
** ***** * ***** ** ***** * ***** a) Proceso estrellas2 b1 <- 1; b2 <- 0; c1 <- 20; Repetir Si b1 = 1 Entonces Si b2 = 1 Entonces Escribir "**"; b2 <- 0; Sino Escribir "*"; b2 <- 1; FinSi b1 <- 3; Sino Escribir "*****"; b1 <- 1; FinSi c1 <- c1 + 2; Hasta Que c1 < 1 FinProceso b) Proceso estrellas1 b1 <- 1; b2 <- 0;
Para i<-10 Hasta 100 Con Paso 10 Hacer Si b1 = 1 Entonces
Si b2 = 1 Entonces Escribir "**";
Sino Escribir "*"; b2 <- 1; FinSi b1 <- 3; Sino Escribir "*****"; b1 <- 1; FinSi FinPara FinProceso c) Proceso estrellas3 b1 <- 1; b2 <- 0; c1 <- 10; Mientras c1 <= 10 Hacer Si b1 = 1 Entonces Si b2 = 1 Entonces Escribir "**"; b2 <- 0; Sino Escribir "*"; b2 <- 1; FinSi b1 <- 3; Sino Escribir "*****"; b1 <- 1; FinSi c1 <- c1 + 1; FinMientras FinProceso
16. ¿Cuál es el resultado de ejecutar el siguiente algoritmo? Algoritmo algortimo_misterioso
cont <- "*" l = 5*5-20
Para x <- 1 Hasta l Con Paso 1 Hacer Escribir cont
FinPara
Para i <- l Hasta 1 Con Paso -1 Hacer cont <- ""
l <- l-1
Para j <- l Hasta 1 Con Paso -1 Hacer cont <- cont+"*"
FinPara
Escribir cont FinPara
FinAlgoritmo
17. * Con respecto a las estructuras de repetición estudiadas en el curso, cuál de las siguientes proposiciones es verdadera:
a) SIEMPRE es posible utilizar un for para obtener el mismo comportamiento iterativo que utilizando un while.
b) SIEMPRE es posible utilizar un while para obtener el mismo comportamiento iterativo que utilizando un for.
c) Existen SOLAMENTE algunos casos donde es posible utilizar un while para obtener el mismo comportamiento iterativo que utilizando un for. d) las opciones a, b y c son proposiciones verdaderas.
18. * ¿Qué muestra el siguiente algoritmo? Algoritmo misterioso
Definir j Como Entero;
Para i = 3 Hasta 1 Con Paso -1 Hacer j = i + 1; Mientras j < 4 Hacer Escribir j – 1; j = j + 1; FinMientras FinPara FinAlgoritmo
19. * Realice la prueba de escritorio y muestre el resultado impreso del siguiente programa.
20. ¿Qué muestra el siguiente algoritmo? Proceso desconocido
i = 0;
Para i = (i + 1) hasta 10 Con Paso 1 Hacer Mostrar i - 1;
i = i + 1; FinPara
FinProceso
21. ¿Qué muestra el siguiente algoritmo? Algoritmo WhatsTheOutput n = 5 Mientras n>0 Si (n mod 2) = 0 suma = suma - 1 FinSi suma = suma + 1 n = n - 1 mostrar suma FinMientras
FinAlgoritmo a) 1 2 3 4 5 b) 1 1 2 3 4 c) 1 1 2 2 3 d) 1 2 2 4 5
22. * Implementar el mismo algoritmo utilizando las estructuras de control While y Repeat (una versión usando While y otra versión usando Repeat).
Proceso estrellas
Definir b1 Como Entero; b1 <- 1;
Para i <- 10 Hasta 100 Con Paso 10 Hacer Si b1 = 1 Entonces Escribir “*”; b1 <- 0; Sino Escribir “*****”; b1 <- 1; FinSi FinPara FinProceso
23. * ¿Qué muestra el siguiente algoritmo? Algoritmo misterioso
Definir c1, c2 Como Entero;
Para i <- 8 Hasta 0 Con Paso -2 Hacer c1 <- -1;
Repetir
Escribir Sin Saltar "X"; c1 <- c1 + 1;
Hasta Que c1 >= i c1 <- 8 - i; c2 <- 0;
Mientras c2 < c1 Hacer
Escribir Sin Saltar "O"; c2 <- c2 + 1;
Fin Para FinAlgoritmo
24. Se utilizan para tomar decisiones lógicas. Esta es la razón que se suelan denominar también estructuras de decisión, condicionales o alternativas. a) Estructuras selectivas
b) Estructuras simples c) Estructura secuencial d) Estructuras complejas
25. Ejecuta una determinada acción cuando se cumple una determinada condición.
a) For b) Do-while c) Repeat-until d) If-then
26. Es aquella variable que es utilizada en un ciclo repetitivo y tiene por objetivo almacenar valores cuyos incrementos o decrementos son en forma constante por cada iteración de ciclo o bucle en cuestión.
a) Arreglo b) Contador c) Ciclo
d) Acumulador e) Bucle
27. Por lo general, se emplean en los ciclos para controlar el número de iteraciones en los mismos, o para almacenar totales de elementos.
a) Arreglo b) Array c) Ciclo d) Bandera e) Contador
28. Es el hecho de repetir la ejecución de una secuencia de acciones. a) Array
b) Contador c) Iteración d) Bucle
29. Ejemplos de los ciclos repetitivos más comunes. a) For, if-else, if-then-else
b) While, for, if-else c) While, do-while y for d) Do-while, for, if-then-else
30. Puede estar compuesto de todos sus elementos de tipo cadena, otro puede tener todos sus elementos de tipo entero, etc.
a) Arreglo b) Contador c) Ciclo d) Array
31. Dado el siguiente pseudocódigo, ¿cuál será el valor final de la variable i? Algoritmo valorDeI i <- 1; Leer n; Mientras i < n Hacer i <- i + 1; Fin Mientras FinAlgoritmo
a) 1 si el valor introducido es igual o menor que 0; el valor introducido menos uno en cualquier otro caso
b) 1 si el valor introducido es igual o menor que 1; el valor introducido en cualquier otro caso
d) Las anteriores respuestas no son correctas
32. * ¿Cuál es el resultado de ejecutar el siguiente algoritmo? Algoritmo misterioso a = 0 b = a+10 Según b Hacer 0: Mientras b > a Hacer Escribir a b = b + a Fin Mientras 10: Si a = 0 Entonces Escribir b + 11 b = b + a FinSi 11: Escribir '11' De Otro Modo: Escribir a Fin Según FinAlgoritmo
33. * ¿Cuál es el resultado de ejecutar el siguiente algoritmo? ¿Cuál sería el resultado si se reemplaza la primera instrucción (fila = 5) por fila = 4?
Algoritmo misterioso fila = 5
Mientras fila >= 1 Hacer columna = 1
Mientras columna <= 10 Hacer
Si (fila Mod 2) = 0 Entonces Escribir Sin Saltar "<" Sino
Escribir Sin Saltar ">" FinSi columna = columna + 1 FinMientras fila = fila - 1 Escribir "" FinMientras FinAlgoritmo
34. * ¿Cuál es el resultado de ejecutar el siguiente algoritmo? Algoritmo misterioso n = -1 Mientras n <= 3 Hacer Si (n >= 0) Si (n = 2) Escribir "uno" FinSi Sino Escribir "dos" FinSi n = n + 1 FinMientras Escribir "tres" FinAlgoritmo
35. ¿Cuál es el resultado de ejecutar el siguiente algoritmo? Proceso algoritmo_misterioso
definir a Como Entero; definir b Como Entero; definir x Como Entero; a<-4;
b<-0; Repetir
a<-a+2; b<-b+1; Hasta Que a>b; a<-a+3; b<-b+2; a<-a+b%2+a MOD 3; x<-trunc(a/b); Si (x>b) entonces b<-b+4; a<-b mod 3; x<-a MOD b; Finsi b<-b+1; x<-x*trunc(10/8) + a mod b;
Escribir "el valor de la variable a es : ", a; Escribir "el valor de la variable b es : ", b; Escribir "el valor de la variable x es : ", x;
36. * ¿Cuál de los siguientes algoritmos NO hace lo mismo que los otros dos?
a) El algoritmo opcion_A b) El algoritmo opcion_B c) El algoritmo opcion_C
37. * Seleccione la(s) respuesta(s) correcta(s) respecto a las instrucciones de repetición. La instrucción do-while es similar a la instrucción while, la diferencia es que:
a) El do-while evalúa su expresión al inicio y while lo hace al final al final b) El do-while evalúa su expresión al final y el while lo hace al inicio c) El while se ejecuta por lo menos una vez
d) El do-while se ejecuta por lo menos una vez
38. * ¿Cuál de los siguientes algoritmos NO presenta los mismos resultados que los otros dos? a, b ∈ [0, ∞) y a > b.
a) El algoritmo opcion_1 b) El algoritmo opcion_2 c) El algoritmo opcion_3
39. Para el diagrama de flujo mostrado a continuación a) Escribir el pseudocódigo correspondiente
b) Realizar la prueba de escritorio
40. Pregunta
Estructura de decisión IF Miscelánea
1. Dados tres números indicar si cada uno es par o impar. Además, indicar si todos los números son pares, si son impares o si están “mezclados” (no todos son pares ni todos son impares).
2. Mostrar un menú con las opciones Archivo, Buscar y Salir. En caso de que el usuario no indique ninguna de las opciones, se debe mostrar un mensaje de error.
3. Dados tres números, indicar si se ingresaron en orden ascendente, descendente o sin ningún orden.
4. Escriba un programa para ingresar los lados de un triángulo y verificar si es un equilátero, isósceles o escaleno.
5. El usuario ingresa 3 números que representan las longitudes de los lados de un triángulo. Indicar si se trata de un triángulo rectángulo.
6. Escriba un programa para verificar si los lados ingresados corresponden a un triángulo.
7. Escriba un programa para verificar si los ángulos de los vértices de un triángulo cumplen con la condición para formar un triángulo.
8. Escriba un programa que dado un mes del año (en letras), indique el número de días de ese mes.
9. Escriba un programa para ingresar un número y verificar si es divisible para 5 y para 11.
10. Elabore un algoritmo que permita solucionar el siguiente enunciado: se ingresan 5 números por el teclado del computador, encontrar el número mayor, el número menor, la suma y el promedio entre número mayor y el menor. Represente el algoritmo a través de un diagrama de flujo, pseudocódigo; realice la prueba de escritorio.
11. El IESS necesita clasificar a las personas que se jubilarán este año. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o más y una antigüedad en su empleo de 25 años o más. Determinar en qué tipo de jubilación quedará adscrita una persona.
12. Pregunta
Aprobación de curso
Dadas las notas de dos pruebas y dos exámenes (/20), calcular el promedio de las cuatro notas y si la persona tiene 12 o más, aprueba el curso, caso contrario, pierde el año.
Número par o impar
Escriba un algoritmo que indique si un número dado es par o impar. Número nulo, positivo o negativo
Escriba un algoritmo que indique si un número dado es positivo, negativo o nulo (i.e., igual a cero).
Aumento de sueldo en base a sueldo actual Nota alfabética
El programa solicita una calificación al usuario que está en el rango [0, 20] y la transforma en nota alfabética según la siguiente tabla:
Nota numérica Nota alfabética [0; 10,5) Insuficiente [10,5; 11) Suficiente [11; 15) Bien [15; 18) Notable [18; 20] Sobresaliente Día de la semana
Se pide un número de la semana entre 1 y 7 (1 es domingo) al usuario y se presenta el nombre del día.
Estación del año
Se pide un número de mes entre 1 y 12 al usuario y se presenta a qué estación del año pertenece.
Divisibilidad de dos números Dados dos números n1 y n2:
• Realizar un programa que indique si el número n2 es divisor del número n1. • Realizar un programa que verifique que el número n1 sea mayor o igual al
número n2, si es así el programa debe indicar si el número n2 es divisor del número n1, caso contrario el programa debe decir “¡ERROR! El primer número ingresado debe ser mayor o igual al segundo.”
Aritmética básica con 3 números
• Escriba un algoritmo que dados tres números indique si el tercero es el resultado de la suma del primero y el segundo.
• Escriba un algoritmo que dados tres números indique si el tercero es el resultado de la resta entre los dos primeros: 1) el primero menos el segundo y 2) el segundo menos el primero.
• Escriba un algoritmo que dados tres números indique si el tercero es el resultado de la multiplicación del primero por el segundo.
• Escriba un algoritmo que dados tres números indique si el tercero es el resto de la división entre los dos primeros: 1) el primero para el segundo y 2) el segundo para el primero. Valide su algoritmo para que se evite un error de división para cero, mostrando, antes de que se dé dicho error, que el divisor es cero.
* Incentivo por producción
Se tiene registrada la producción (unidades) logradas por un operario a lo largo de la semana (lunes a sábado). Elabore un algoritmo que nos muestre o nos diga si el operario recibirá incentivos sabiendo que el promedio de producción mínimo es de 100 unidades. Realice el diagrama de flujo, el pseudocódigo y la prueba de escritorio.
Posición del menor de n números
1. Determine el menor valor de 2 números, indicando además en qué orden fue ingresado (i.e., si fue el primer número o el segundo). Considere que el menor valor no puede repetirse. Por ejemplo, si los números ingresados fueran: 14, 19. El resultado debe ser: “El menor valor ingresado fue 14 y corresponde al 1° número ingresado”.
2. Determine el menor valor de 3 números, indicando además en qué orden fue ingresado (i.e., si fue el primero en ser ingresado, si fue el segundo o si fue el tercero). Considere que el menor valor no puede repetirse. Por ejemplo, si los números ingresados fueran: 14, 19, 14. El resultado debe ser: “El menor valor ingresado fue 14 y corresponde al 3° número ingresado”.
los números ingresados fueran: 14, 19, 14, 16, 19. El resultado debe ser: “El menor valor ingresado fue 14 y corresponde al 3° número ingresado”.
Puntaje en olimpiada
En una olimpiada de tiro al blanco se llega a un acuerdo entre los participantes para que el puntaje obtenido sea calculado en base al puntaje original (0 a 10) alcanzado en el tiro efectuado, multiplicado por un factor según la siguiente tabla:
Puntaje original Factor
0 0
[1, 5] 6
[6, 8] 9
[9, 10] 10
Para un tiro realizado determine el puntaje alcanzado aplicando el factor que le corresponde.
Pago en estacionamiento
En un estacionamiento cobran $2 por hora o fracción los días Lunes, Martes y Miércoles, $2.5 los días Jueves y Viernes, $3 los días Sábado y Domingo. Se considera fracción de hora cuando haya pasado de 5 minutos. Diseñe un programa que determine cuánto debe pagar un cliente por su estacionamiento en un solo día de la semana. Si el día ingresado es incorrecto imprima un mensaje de error.
Número de cifras de un número
Diseñe un programa que lea un número entero (positivo o negativo) de máximo 4 cifras (validar) y determine si tiene 1, 2, 3 o 4 cifras imprimiendo lo que corresponda.
Número con ceros a la izquierda
Diseñe un programa que ingrese un número entero positivo que no tenga más de 4 cifras y lo imprima completando con ceros por la izquierda de tal manera que siempre se ve con 4 cifras. Por ejemplo, si el número ingresado fuera 18, el
resultado deberá ser 0018. Si el número ingresado no fuera correcto debe imprimir un mensaje de error.
Promoción en una papelería
En una Librería han puesto en oferta la venta de cuadernos al por mayor, obsequiando lapiceros Lucas, Cross y/o Novo dependiendo de la cantidad de cuadernos comprados, de la siguiente manera:
• Compra menos que 12, ningún obsequio.
• Compra no menos que 12 pero menos que 24, obsequio: 1 Lucas por cada 4 cuadernos.
• Compra no menos que 24 pero menos que 36, obsequio: 2 Cross por cada 4 cuadernos.
• Compra no menos que 36, obsequio: 3 Novo por cada 4 cuadernos. Adicionalmente 1 Lucas y 1 Cross.
Diseñe un algoritmo que determine cuántos lapiceros Lucas, Cross y Novo recibe un cliente como obsequio.
Saldos y pagos mínimos
Fuente: (Pinales Delgado and Velázquez Amador, 2014, p. 92)
El banco “Bandido de peluche” desea calcular para uno de sus clientes el saldo actual (saldoAct), el pago mínimo (pagoMin) y el pago para no generar intereses (pagoSinInteres). Los datos que se conocen son: saldo anterior (saldoAnt) del cliente, monto de las compras que realizó y el pago que depositó en el corte (abono) anterior (corteAnt). Para calcular el pago mínimo se debe considerar 15% del saldo, y para no generar intereses corresponde 85% del saldo. Considere que este saldo (actual) debe incluir 12% de los intereses causados por no realizar el pago mínimo para no generar intereses en el corte (abono) anterior y $200 por multa si abonó (en el corte anterior) menos del pago mínimo. Realice el algoritmo correspondiente y represéntelo mediante el diagrama de flujo y pseudocódigo. Ordenamiento de números
• Se pide a un usuario 2 números y se muestran en orden ascendente. • Se pide a un usuario 3 números y se muestran en orden descendente.
• Se pide a un usuario 4 números y se muestran en el orden que quiera el usuario.
Restricción de ingreso
Un programa que permita ingresar solamente el 1 y el 0. Vocales o consonantes
El usuario puede ingresar un carácter y se debe indicar si el carácter es vocal, consonante, número u otro.
Conversión de unidades de masa
Dada la masa expresada en Kg transformar a otra unidad de acuerdo a un menú. El menú tiene las siguientes opciones:
1. Hectogramos 2. Gramos 3. Decigramos 4. Centigramos 5. Miligramos
Mayor y menor de 10 números
El usuario ingresa 10 números y el programa muestra el menor y el mayor de los números ingresados.
Estructura de selección Miscelánea
1. Elabore un algoritmo que calcule independientemente la suma de los pares y los impares de los números entre 1 y 1000, utilizando un switch.
2. En la feria del hogar se ha encontrado una tienda que vende al contado y al crédito en 6, 12, 18, 24 mensualidades sus artefactos: televisores, refrigeradoras, hornos micro hondas. Se desea saber en cualquier momento cuántas ventas se han realizado al contado, cuántas al crédito en 6, cuantas al crédito en 12, cuántas al en 18, cuántas en 24 mensualidades.
3. Una persona va de compras N veces a un supermercado donde le obsequian un chocolate por cada vez que compra más de $5. Se desea saber cuántos chocolates ha ganado en las N veces que compró.
4. Una empresa tiene N trabajadores, a cada uno de ellos se le paga un sueldo según las horas trabajadas a cierta tarifa por hora. Además a cada trabajador cuyo sueldo superó los $600 se le descuenta 10% por concepto de impuesto a la renta. Se desea saber cuántos trabajadores gana más de $600, cuántos ganan hasta $600 y cuánto dinero se tiene que pagar al estado por concepto de impuestos
5. Se ponen a la venta las entradas para un partido de fútbol internacional. El precio de la entrada depende de la tribuna: tribuna norte y sur cuesta $25, tribuna este cuesta $45 y tribuna oeste cuesta $65. Diseñe un algoritmo que controle la venta de entradas a fin de poder saber la cantidad de personas que asisten a cada tribuna, la cantidad total de personas (asistencia) y el monto total recaudado por la venta de todas las entradas (recaudación). 6.
Meses, de números a letras
El programa solicita el ingreso de un número que representa un mes y lo escribe en letras. Si el número ingresado es mayor que 12 o menor que 1, el programa envía el mensaje “¡ERROR! No existe tal mes.”. En caso contrario, si el número ingresado fue 1, se imprimirá en pantalla “Enero”, si el número ingresado fue 2, se imprimirá “Febrero”, etc.
Signo zodiacal
Elaborar un algoritmo para leer la fecha de nacimiento (mes y día) de una persona y muestre su signo zodiacal; si se ingresa un mes o día inconsistente se debe presentar un mensaje que diga “Fecha no reconocida.”. Tome en cuenta la siguiente información:
• Acuario: enero 21 - febrero 20 • Piscis: febrero 21 - marzo 20 • Aries: marzo 21 - abril 20 • Tauro: abril 21 - mayo 20 • Géminis: mayo 21 - junio 20 • Cáncer: junio 21 - julio 20 • Leo: julio 21 - agosto 20
• Virgo: agosto 21 - septiembre 20 • Libra: septiembre 21 - octubre 20 • Escorpión: octubre 21 - noviembre 20 • Sagitario: noviembre 21 - diciembre 20 • Capricornio: diciembre 21 - enero 20 Total de ventas
Ingresar la información de personas hasta que el usuario ingrese n (no más datos). Ingrese la nacionalidad (ecuatoriano, ecu; extranjero, ext), la talla (sma, med, lar), sexo (masculino, mas; femenino, fem) y el importe por la venta (imp). Se calcula un descuento de acuerdo a las siguientes condiciones:
• ecu, sma, mas: descuento 5%. • ecu, sma, fem: descuento 4%. • ecu, med, mas: descuento 7%. • ecu, med, fem: descuento 9%. • ecu, lar, mas: descuento 10%. • ecu, lar, fem: descuento 12%. • ext, sma, mas: descuento 4%. • ext, sma, fem: descuento 5%. • ext, med, mas: descuento 9%. • ext, med, fem: descuento 7%. • ext, lar, mas: descuento 12%. • ext, lar, fem: descuento 10%.
Mostrar el número de clientes nacionales, el número de clientes extranjeros, número de tallas sma, med y lar, número de hombres, número de mujeres, e importe total por todas las compras.
Estructura de repetición WHILE Miscelánea
1. Elabore un algoritmo que permita solucionar el siguiente enunciado: se ingresan por el teclado del computador 2 números enteros positivos, encontrar la suma y el promedio de todos los factoriales de los números pares comprendidos entre esos dos números ingresados. Mostrar la suma y el promedio.
Se pide representar el algoritmo a través del diagrama de flujo, pseudocódigo y realizar la prueba de escritorio.
Ejemplo: A= 2 B= 8
Números contenidos entre A y B son: 3,4,5,6,7 de donde 4 y 6 son números pares.
Se calcula el factorial de 4! = 24 y de 6!=720. La suma de los 2 factoriales es 24 + 720 = 744, el promedio es 744/2= 372.
2. Se sabe que la media geométrica y la media aritmética se calculan mediante las siguientes fórmulas:
• MedG = RaízN-ésima(num1 num2 num3 ... numN) • MedA = (num1 + num2 + num3 + ... + numN) / N
Desarrolle un algoritmo que lea N valores, calcule ambas medias y que imprima la que sea menor.
3. Una pareja desea invertir su dinero en un banco, el cual otorga el 2% de interés anual. ¿Cuál será la cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es reinvertida?
4. Haga la prueba de escritorio e indique cuál es el resultado en pantalla de ejecutar el siguiente algoritmo:
Algoritmo misterioso
Definir suma, i, j Como Entero; Para i <- 1 Hasta 4 Con Paso 1 Hacer
Para j <- 3 Hasta 0 Con Paso -1 Hacer suma <- i * (10^i) + j;
Escribir Sin Saltar suma, " "; Fin Para
Escribir " "; Fin Para
FinAlgoritmo
5. * Haga la prueba de escritorio e indique cuál es el resultado en pantalla de ejecutar el siguiente algoritmo:
Algoritmo misterioso n = 7;
Para i = 0 hasta n Con Paso 1
Para j = n-i hasta 1 Con Paso -1 Mostrar Sin Saltar "#"; FinPara Mostrar ""; FinPara FinAlgoritmo 6. Pregunta Números de n a m
1. Hacer un programa que imprima los números enteros del 1 al 5. 2. Hacer un programa que imprima los números enteros desde 1 a n. 3. Hacer un programa que imprima los números enteros desde n a 1. 4. Hacer un programa que imprima los números enteros de n a m (n<m). 5. Hacer un programa que imprima los números enteros de m a n (n<m). Números pares del 1 al 100
Desarrolle un algoritmo que imprima en pantalla los números pares entre 1 y 100, inclusivo.
Acumulador del 1 al 100
Contador de números impares
Hacer un programa que imprima en pantalla los números impares del 1 hasta el 10 y que imprima en pantalla la cantidad de números impares.
Múltiplos de n
1. Mostrar los múltiplos de 3 comprendidos entre los números 1 y 15.
2. Contar los números múltiplos de 3 comprendidos entre los números 1 y 15. 3. Contar y sumar los números múltiplos de 3 comprendidos entre los números
1 y 15.
4. Contar y sumar los números múltiplos de n (n>1) comprendidos entre los números enteros m y w (m<w).
Proceso SumaDeMultiplosDeN acu<-0
Escribir 'Ingrese el límite inferior (m)' Leer m
Escribir 'Ingrese el límite superior (w)' Leer w
Escribir 'Ingrese n' Leer n
Para i<-m Hasta w Con Paso 1 Hacer r<-i MOD n Si r=0 Entonces acu<-acu+i Fin Si Fin Para Escribir 'Suma: ' Escribir acu FinProceso
Suma y promedio de n números
1. Pedir 5 números al usuario y mostrar la suma y promedio de los números ingresados.
2. Preguntar al usuario cuántos números va a ingresar. Ingresar los n números y mostrar la suma y promedio de los n números ingresados.
Mayor y menor de una serie de números
1. Imprimir el mayor de una serie de cinco números ingresados por el usuario. 2. Imprimir el menor de una serie de cinco números ingresados por el usuario. 3. Preguntar al usuario cuántos números va a ingresar. Leer los n números.
Imprimir el mayor y el menor de los n números ingresados. Subsidio familiar
El gobierno ha implementado como parte de su programa social, un subsidio familiar bajo la siguiente reglamentación:
• Las familias que tienen hasta 2 hijos, reciben $70, las que tienen entre 3 y 5 reciben $90 y las que tienen 6 o más reciben $120 mensual.
• Por cada hijo en edad escolar reciben $10 adicionales. Se considera la edad escolar entre 6 y 18 años.
• Si la madre de familia fuera viuda, la familia recibe $20 adicionales.
Determinar el monto mensual que recibirá una familia de acuerdo a su realidad familiar.
Validación: haga una siguiente versión de su programa en donde se indique cuando el usuario ingresa un valor incoherente; si se ingresa un valor incoherente, el programa termina en ese momento.
* Factura
Desarrolle un algoritmo que realice la facturación de productos. Considerando que se realiza la compra de N productos, que cada producto tiene un precio de venta X, y que hay algunos productos que se les impone el 14% del IVA. El programa deberá tener las siguientes opciones de menú:
1. Registro de items: ingreso de los precios de los N productos indicando si se les aplica o no el IVA.
2. Facturación: muestra el valor total a pagar y el descuento realizado. 3. Salir
Para calcular el descuento: si el valor total es mayor a 100 dólares se realizará un descuento del 10% sobre el monto total. Si el valor total es mayor a 200 dolares se