• No se han encontrado resultados

Ejercicios Básicos de Programación

N/A
N/A
Protected

Academic year: 2021

Share "Ejercicios Básicos de Programación"

Copied!
193
0
0

Texto completo

(1)

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

(2)

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

(3)

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

(4)

* 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

(5)

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

(6)

* 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

(7)

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

(8)

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

(9)
(10)

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.

(11)

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

(12)

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

(13)

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

(14)

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)

(15)

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

(16)

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

(17)

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?

(18)

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

(19)

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.

(20)

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.

(21)

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

(22)

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 .

(23)

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

|

,

(24)

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.

(25)

* 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.

(26)

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

(27)

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.

(28)

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 var3var2 debe contener el valor de la variable var4var1 debe contener el valor de la variable var5var3 debe contener el valor de la variable var2

(29)

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.

(30)

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

(31)

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):

(32)

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?

* *****

(33)

** ***** * ***** ** ***** * ***** 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 "**";

(34)

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

(35)

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.

(36)

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

(37)

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;

(38)

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

(39)

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

(40)

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

(41)

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;

(42)

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.

(43)

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

(44)

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.

(45)

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).

(46)

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.”

(47)

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”.

(48)

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.

(49)

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.

(50)

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.

(51)

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.

(52)

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%.

(53)

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.

(54)

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

(55)

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

(56)

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.

(57)

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

Referencias

Documento similar

3.8 Punto de ejecución de un programa 3.8.1 Función principal de un programa en C, función main() 10 4 Operaciones de entrada/salida 4.1 Salida de datos 4.1.1 Sintaxis general

Diseñe un programa que reciba como parámetros el precio y la cantidad del artículo que compra, Calcule y despliegue el monto total a pagar por la compra

En C, el programa invoca a la función con su nombre seguida por una lista de parámetros actuales que deben coincidir en cantidad, tipo y orden con los de la función que fue

2.. 3) Crear un programa que multiplique dos números enteros de la siguiente forma: pedirá al usuario un primer número entero. Si se ha tecleado un número distinto de cero, se

En el peor caso, (cuando el arreglo inicial está ordenado al revés, de mayor a menor) cada llamada a insert con parámetros a e i realiza i-1 comparaciones (ya que el nuevo elemento

parámetro de salida mov , tal y como se indica en el siguiente ejemplo.. Diseñe un programa para gestionar una agenda personal, donde la información que se almacena de ca- da persona

Escribir un programa para calcular el volumen de líquido en un tanque de 0.9 m de diámetro y 1.8 m de altura total. El volumen debe calcularse en

Función Main: Todo programa en C tiene una función principal main que puede iniciarse con la siguiente estructura:.. void main (void) o Int main