Sunteți pe pagina 1din 7

FUNDAMENTOS DE PROGRAMACIÓN Algoritmos,

estructura de datos y objetos


Cuarta edición
Luis Joyanes Aguilar
ejercicios
CAPÍTULO 2 Metodología de la programación y desarrollo de
software
2.5. Diseñar un algoritmo que visualice y sume la serie de números 3, 6, 9, 12…, 99. 2.6. Escribir un
algoritmo que lea cuatro números y a continuación visualice el mayor de los cuatro. 2.7. Diseñar
un algoritmo que lea tres números y descubra si uno de ellos es la suma de los otros dos. 2.8.
Diseñar un algoritmo para calcular la velocidad (en m/s) de los corredores de la carrera de 1.500
metros. La entrada consistirá en parejas de números (minutos, segundos) que dan el tiempo del
corredor; por cada corredor, el algoritmo debe visualizar el tiempo en minutos y segundos, así
como la velocidad media.

Ejemplo de entrada de datos: (3,53) (3,40) (3,46) (3,52) (4,0) (0,0); el último par de datos se
utilizará como fin de entrada de datos. 2.9. Diseñar un algoritmo para determinar los números
primos iguales o menores que N (leído del teclado). (Un número primo sólo puede ser divisible por
él mismo y por la unidad.) 2.10. Escribir un algoritmo que calcule la superficie de un triángulo en
función de la base y la altura (S = 1/2 Base × Altura). 2.11. Calcular y visualizar la longitud de la
circunferencia y el área de un círculo de radio dado.

2.12. Escribir un algoritmo que encuentre el salario semanal de un trabajador, dada la tarifa
horaria y el número de horas trabajadas diariamente.

2.13. Escribir un algoritmo que indique si una palabra leída del teclado es un palíndromo. Un
palíndromo (capicúa) es una palabra que se lee igual en ambos sentidos como “radar”.

2.14. Escribir un algoritmo que cuente el número de ocurrencias de cada letra en una palabra leída
como entrada. Por ejemplo, "Mortimer" contiene dos "m", una "o", dos "r", una "i", una "t" y una
"e".

2.15. Muchos bancos y cajas de ahorro calculan los intereses de las cantidades depositadas por los
clientes diariamente según las premisas siguientes. Un capital de 1.000 euros, con una tasa de
interés del 6 por 100, renta un interés en un día de 0,06 multiplicado por 1.000 y dividido por 365.
Esta operación producirá 0,16 euros de interés y el capital acumulado será 1.000,16. El interés
para el segundo día se calculará multiplicando 0,06 por 1.000 y dividiendo el resultado por 365.
Diseñar un algoritmo que reciba tres entradas: el capital a depositar, la tasa de interés y la

1
duración del depósito en semanas, y calcular el capital total acumulado al final del período de
tiempo especificado.

CAPÍTULO 3 Estructura general de un programa

EJERCICIOS

3.1. Diseñar los algoritmos que resuelvan los siguientes problemas: a) Ir al cine. b) Comprar una
entrada para los toros. c) Colocar la mesa para comer. d) Cocer un huevo. e) Hacer una taza de té.
f) Fregar los platos del almuerzo. g) Buscar el número de teléfono de un alumno. h) Reparar un
pinchazo de una bicicleta. i) Pagar una multa de tráfico. j) Cambiar un neumático pinchado (se
dispone de herramientas y gato). k) Hacer palomitas de maíz en una olla puesta al fuego con
aceite, sal y maíz. l) Cambiar el cristal roto de una ventana. m) Hacer una llamada telefónica.
Considerar los casos: a) manual, con operadora; b) automático; c) cobro revertido. n) Quitar una
bombilla quemada de un techo. o) Encontrar la media de una lista indeterminada de números
positivos terminada con un número negativo.

3.2. ¿Cuáles de los siguientes identificadores no son válidos? a) XRayo b) X_Rayo c) R2D2 d) X e) 45
f) N14 g) ZZZZ h) 3μ

3.3. ¿Cuáles de las siguientes constantes no son válidas? a) 234 b) –8.975 c) 12E – 5 d) 0

e) 32,767 f) 1/2 g) 3.6E + 7 h) –7E12 i) 3.5 x 10 j) 0,456 k) 0.000001 l) 224E1

3.4. Evaluar la siguiente expresión para A = 2 y B = 5: 3 * A - 4 * B / A ^ 2

3.5. Evaluar la expresión 4 / 2 * 3 / 6 + 6 / 2 / 1 / 5 ^ 2 / 4 * 2

3.6. Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:

a) √ b2 – 4ac b) x2 + y2 z2

c)

3x + 2y 2z

d)

a+bc–d

e) 4x2 – 2x + 7 f)

x+yx

3x 5

g)

2
a bc

h) xyz

i)

y2 – y1 x2 – x1

j) 2πr

k)

43

πr3 h) (x2 – x1)2 + (y2 – y1)2

3.7. Escribir las siguientes expresiones algorítmicas como expresiones algebraicas: a) b ^ 2 – 4 * a *


c b) 3 * X ^ 4 – 5 * X ^ 3 + X 12 – 17 c) (b + d) / (c + 4) d) (x ^ 2 + y ^ 2) ^ (1 / 2)

3.8. Si el valor de A es 4, el valor de B es 5 y el valor de C es 1, evaluar las siguientes expresiones: a)


B * A – B ^ 2 / 4 * C b) (A * B) / 3 ^ 2 c) (((B + C) / 2 * A + 10) * 3 * B) – 6

3.9. Si el valor de A es 2, B es 3 y C es 2, evaluar la expresión:

A^B^C

3.10. Obtener el valor de cada una de las siguientes expresiones aritméticas: a) 7 div 2 b) 7 mod 2
c) 12 div 3 d) 12 mod 3 e) 0 mod 5 f) 15 mod 5 g) 7 * 10 – 50 mod 3 * 4 + 9 h) (7 * (10 – 5) mod 3) *
4 + 9 Nota: Considérese la prioridad de Pascal: más alta: *, /, div, mod; más baja: +, –.

3.11. Encontrar el valor de cada una de las siguientes expresiones o decir si no es una expresión
válida: a) 9 – 5 – 3 b) 2 div 3 + 3 / 5 c) 9 div 2 / 5 d) 7 mod 5 mod 3 e) 7 mod (5 mod 3) f) (7 mod 5)
mod 3 g) (7 mod 5 mod 3) h) ((12 + 3) div 2) / (8 – (5 + 1)) i) 12 / 2 * 3 j) raiz2 (cuadrado(4) k)
cuadrado (raiz2(4)) l) trunc(815) + redondeo(815)

Considérese la prioridad del Ejercicio 3.10.

3.12. Se desea calcular independiente la suma de los números pares e impares comprendidos
entre 1 y 200.

3.13. Leer una serie de números distintos de cero (el último número de la serie es –99) y obtener
el número mayor. Como resultado se debe visualizar el número mayor y un mensaje de indicación
de número negativo, caso de que se haya leído un número negativo.

3.14. Calcular y visualizar la suma y el producto de los números pares comprendidos entre 20 y
400, ambos inclusive.

3.15. Leer 500 números enteros y obtener cuántos son positivos.

3.16. Se trata de escribir el algoritmo que permita emitir la factura correspondiente a una compra
de un artícul o determinado, del que se adquieren una o varias unidades. El IVA a aplicar es del 15
por 100 y si el precio bruto (precio venta más IVA) es mayor de 1.000 euros, se debe realizar un
descuento del 5 por 100.

3
3.17. Calcular la suma de los cuadrados de los cien primeros números naturales.

3.18. Sumar los números pares del 2 al 100 e imprimir su valor.

3.19. Sumar diez números introducidos por teclado.

3.20. Calcular la media de cincuenta números e imprimir su resultado.

3.21. Calcular los N primeros múltiplos de 4 (4 inclusive), donde N es un valor introducido por
teclado.

3.22. Diseñar un diagrama que permita realizar un contador e imprimir los cien primeros números
enteros.

3.23. Dados diez números enteros, visualizar la suma de los números pares de la lista, cuántos
números pares existen y cuál es la media aritmética de los números impares.

3.24. Calcular la nota media de los alumnos de una clase considerando n-número de alumnos y c-
número de notas de cada alumno.

3.25. Escribir la suma de los diez primeros números pares.

3.26. Escribir un algoritmo que lea los datos de entrada de un archivo que sólo contiene números y
sume los números positivos.

3.27. Desarrollar un algoritmo que determine en un conjunto de cien números naturales: •


¿Cuántos son menores de 15? • ¿Cuántos son mayores de 50? • ¿Cuántos están comprendidos
entre 25 y 45?

CAPÍTULO 4 Flujo de control I: Estructuras selectivas


4.1. Escribir las sentencias si apropiadas para cada una de las siguientes condiciones:

a) Si un ángulo es igual a 90 grados, imprimir el mensaje "El ángulo es un ángulo recto" sino
imprimir el mensaje "El ángulo no es un ángulo recto". b) Si la temperatura es superior a 100
grados, visualizar el mensaje “por encima del punto de ebullición del agua” sino visualizar el
mensaje “por debajo del punto de ebullición del agua”. c) Si el número es positivo, sumar el
número a total de positivos, sino sumar al total de negativos. d) Si x es mayor que y, y z es menor
que 20, leer un valor para p. e) Si distancia es mayor que 20 y menos que 35, leer un valor para
tiempo.

4.2. Escribir un programa que solicite al usuario introducir dos números. Si el primer número
introducido es mayor que el segundo número, el programa debe imprimir el mensaje El primer
número es el mayor, en caso contrario el programa debe imprimir el mensaje El primer número es
el más pequeño. Considerar el caso de que ambos números sean iguales e imprimir el
correspondiente mensaje.

4.3. Dados tres números deducir cuál es el central.

4
4.4. Calcular la raíz cuadrada de un número y escribir su resultado. Considerando el caso en que el
número sea negativo.

4.5. Escribir los diferentes métodos para deducir si una variable o expresión numérica es par.

4.6. Diseñar un programa en el que a partir de una fecha introducida por teclado con el formato
DIA, MES, AÑO se obtenga la fecha del día siguiente.

4.7. Se desea realizar una estadística de los pesos de los alumnos de un colegio de acuerdo a la
siguiente tabla: Alumnos de menos de 40 kg. Alumnos entre 40 y 50 kg. Alumnos de más de 50 kg
y menos de 60 kg. Alumnos de más o igual a 60 kg.

4.8. Realizar un algoritmo que averigüe si dados dos números introducidos por teclado uno es
divisor del otro.

4.9. Un ángulo se considera agudo si es menor de 90 grados, obtuso si es mayor de 90 grados y


recto si es igual a 90 grados. Utilizando esta información, escribir un algoritmo que acepte un
ángulo en grados y visualice el tipo de ángulo correspondiente a los grados introducidos.

4.10. El sistema de calificación americano (de Estados Unidos) se suele calcular de acuerdo al
siguiente cuadro:

Grado numérico Grado en letra

Grado mayor o igual a 90 Menor de 90 pero mayor o igual a 80 Menor de 80 pero mayor o igual a
70 Menor de 70 pero mayor o igual a 69 Menor de 69

ABCDF

Fundamentos de programación

Utilizando esta información, escribir un algoritmo que acepte una calificación numérica del
estudiante (0-100), convierta esta calificación a su equivalente en letra y visualice la calificación
correspondiente en letra.

4.11. Escribir un programa que seleccione la operación aritmética a ejecutar entre dos números
dependiendo del valor de una variable denominada seleccionOp.

4.12. Escribir un programa que acepte dos números reales de un usuario y un código de selección.
Si el código introducido de selección es 1, entonces el programa suma los dos números
introducidos previamente y se visualiza el resultado; si el código de selección es 2, los números
deben ser multiplicados y visualizado el resultado; y si el código seleccionado es 3, el primer
número se debe dividir por el segundo número y visualizarse el resultado.

4.13. Escribir un algoritmo que visualice el siguiente doble mensaje Introduzca un mes (1 para
Enero, 2 para Febrero,…) Introduzca un día del mes

El algoritmo acepta y almacena un número en la variable mes en respuesta a la primera pregunta y


acepta y almacena un número en la variable dia en respuesta a la segunda pregunta. Si el mes
introducido no está entre 1 y 12 inclusive, se debe visualizar un mensaje de información al usuario
advirtiéndole de que el número introducido no es válido como mes; de igual forma se procede con

5
el número que representa el día del mes si no está en el rango entre 1 y 31. Modifique el algoritmo
para prever que el usuario introduzca números con decimales. Nota: como los años bisiestos,
febrero tiene 29 días, modifique el programa de modo que advierta al usuario si introduce un día
de mes que no existe (por ejemplo, 30 o 31). Considere también el hecho de que hay meses de 30
días y otros meses de 31 días, de modo que nunca se produzca error de int roducción de datos o
que en su defecto se visualice un mensaje al usuario advirtiéndole del error cometido.

4.14. Escriba un programa que simule el funcionamiento normal de un ascensor (elevador)


moderno con 25 pisos (niveles) y que posee dos botones de SUBIR y BAJAR, excepto en el piso
(nivel) inferior, que sólo existe botón de llamada para SUBIR y en el último piso (nivel) que sólo
existe botón de BAJAR

Flujo de control II: Estructuras repetitivas


5.1. Determinar la media de una lista indefinida de números positivos, terminados con un número
negativo.

5.2. Dado el nombre de un mes y si el año es o no bisiesto, deducir el número de días del mes.

5.3. Sumar los números enteros de 1 a 100 mediante: a) estructura repetir; b) estructura mientras;
c) estructura desde.

5.4. Determinar la media de una lista de números positivos terminada con un número no positivo
después del último número válido. 5.5. Imprimir todos los números primos entre 2 y 1.000
inclusive. 5.6. Se desea leer las calificaciones de una clase de informática y contar el número total
de aprobados (5 o mayor que 5).

5.7. Leer las notas de una clase de informática y deducir todas aquellas que son NOTABLES (>= 7 y
< 9).

5.8. Leer 100 números. Determinar la media de los números positivos y la media de los números
negativos.

5.9. Un comercio dispone de dos tipos de artículos en fichas correspondientes a diversas


sucursales con los siguientes campos: • código del artículo A o B, • precio unitario del artículo, •
número de artículos. La última ficha del archivo de artículos tiene un código de artículo, una letra
X. Se pide: • el número de artículos existentes de cada categoría, • el importe total de los artículos
de cada categoría.

5.10. Una estación climática proporciona un par de temperaturas diarias (máxima, mínima) (no es
posible que alguna o ambas temperaturas sea 9 grados). La pareja fin de temperaturas es 0,0. Se
pide determinar el número de días, cuyas temperaturas se han proporcionado, las medias máxima
y mínima, el número de errores —temperaturas de 9°— y el porcentaje que representaban.

5.11. Calcular:

E(x) = 1 + x =

6
x2 2!

+ ... +

nn n!

a) Para N que es un entero leído por teclado. b) Hasta que N sea tal que xn/n < E (por ejemplo, E =
10–4).

5.12. Calcular el enésimo término de la serie de Fibonacci definida por:

A1 = 1 A2 = 2 A3 = 1 + 2 = A1 + A2 An = An – 1 + An – 2 (n >= 3)

5.13. Se pretende leer todos los empleados de una empresa —situados en un archivo EMPRESA—
y a la terminación de la lectura del archivo se debe visualizar un mensaje «existen trabajadores
mayores de 65 años en un número de ...» y el número de trabajadores mayores de 65 años.

5.14. Un capital C está situado a un tipo de interés R. ¿Al término de cuántos años se doblará?

5.15. Se desea conocer una serie de datos de una empresa con 50 empleados: a) ¿Cuántos
empleados ganan más de 300.000 pesetas al mes (salarios altos); b) entre 100.000 y 300.000
pesetas (salarios medios); y c) menos de 100.000 pesetas (salarios bajos y empleados a tiempo
parcial)?

5.16. Imprimir una tabla de multiplicar como

1 2 3 4 ... 15 ** ** ** ** ** ... ** 1* 1 2 3 4 ... 15 2* 2 4 6 8 ... 30 3* 3 6 9 12 ... 45 4* 4 8 12 16 ...


60 . . . 15* 15 30 45 60 ... 225

5.17. Dado un entero positivo n (> 1), comprobar si es primo o compuesto

S-ar putea să vă placă și