Post on 02-Oct-2015
description
Fundamentos de la Programacin Cuaderno de trabajo 3 1
Grado en Sistemas de la Informacin, turno de maana
Grado en Ingeniera Informtica, turno de maana
Ejercicios Resueltos
1. Escriba un programa capaz de identificar si un nmero ledo por teclado es
mltiplo de 3.
SOLUCION PROPUESTA:
#include
int main(void){
float n;
printf("Introduzca un nmero (preferiblemente entero): ");
scanf("%g",&n);
if ((int)n > n || (int)n%3 == 0){
printf("El numero %g es mltiplo de 3.\n", n);
}
else{
printf("%g es un bonito nmero, pero no es mltiplo de 3.\n", n);
}
return 0;
}
2. Escriba una funcin y su programa principal en C para calcular el factorial de un
nmero validado en el rango de 1 a 30. Cuando se pase el nmero N a la funcin
Factorial dicho nmero ya habr sido validado por otra funcin.
SOLUCION PROPUESTA:
#include
#include
long int Factorial(int x){
int i;
long int acu = 1;
for (i=1;i
Fundamentos de la Programacin Cuaderno de trabajo 3 2
int main(void){
float n;
int num;
printf("Introduce un numero entero entre 1 y 30: ");
scanf("%g",&n);
num = (int)n;
if ((n30) || !esValido(n)){
printf("Error!!: el nmero debe ser entero y estar
comprendido entre 1 y 30.\n");
return -1;
}
else{
printf("El factorial de %i es %ld\n",num,Factorial(num));
return 0;
}
}
Ejercicios propuestos
1. Escriba un cdigo que implemente el siguiente comportamiento: Si la compra es
superior a 100EUR se aplica un descuento del 5% si se paga al contado, pero si el
pago es con tarjeta slo se aplica el 2%
2. Escribir un programa que calcule el producto de dos nmeros enteros ledos
desde el teclado sin utilizar el operador de multiplicacin *. El programa no debe
asumir que ambos nmeros son mayores que cero y deber por tanto validar las
entradas.
3. Escribir un programa que lea la hora en notacin de 24 horas y la devuelva en
notacin de 12 horas (ejemplo: las 18:30 sern las 6:30 PM).
4. Una universidad acaba de modificar su sistema de representacin de la
calificacin de los alumnos, que como es sabido son valores entre 0 y 10. A partir
de ahora, se calificarn como A las notas mayores o iguales a 8,5, B las
mayores o iguales a 6,5, C las calificaciones mayores o iguales a 5, D las
calificaciones mayores o iguales a 3,5, y F todas las dems. Programe una
funcin que reciba una calificacin numrica y retorne la letra con la nueva
calificacin.
5. Escribir un programa que lea un nmero real y un nmero entero y calcule el
valor del primero elevado al segundo.
6. Escribir un algoritmo que tras leer tres enteros los escriba en pantalla ordenados.
7. Programe dos funciones en C que permitan determinar si un determinado
carcter es una vocal o no, implementando una funcin con if-else y otra con
switch.
8. Escribir un programa que, despus de preguntar cuntos nmeros se van a
introducir, pida esos nmeros y devuelva su media aritmtica, el mayor y el
menor. El programa debe controlar que la cantidad de nmeros es mayor de 2 y
en caso contrario ha de mostrar un mensaje de error.
Fundamentos de la Programacin Cuaderno de trabajo 3 3
9. Programe una funcin en C que reciba un nmero entero, y si es entre 1 y 12
escriba un mensaje por pantalla indicando el mes a que dicho nmero
corresponde. En caso contrario deber mostrar un mensaje de error.
10. Escribir un programa que lea un nmero entero positivo y:
a. determine cuntos dgitos se necesitan para escribir su valor.
b. calcule cuntas veces se puede dividir ese nmero por 2.
11. Escriba un programa en C que lea una letra por teclado correspondiente a un da
de la semana y muestre un men de comida para dicho da. Asegrese de que su
programa es robusto y por tanto comprueba que la letra leda es correcta, en
caso contrario muestre un mensaje de error.
12. Escribir un programa que lea una serie de nmeros enteros hasta que se
introduzca el nmero -9999, y cuente el total de nmeros introducidos, el total de
valores positivos y el total de valores negativos. Hacerlo primero utilizando la
sentencia while y despus la sentencia do-while.
13. Obtener las races de una ecuacin de segundo grado ax bx c2 0 a partir de
sus coeficientes a, b y c. Recuerde que si el discriminante es cero la raz es nica
(-b/2xa) y que si el discriminante es negativo las races son imaginarias, en cuyo
caso deber indicarse con un mensaje races imaginarias y mostrarse indicado
as:
X1 = (-b + discriminante1/2)/ (2*a)
14. Escribir un programa que pida un nmero lmite y calcule cuntos trminos de la
serie armnica son necesarios para que su suma supere dicho lmite, es decir,
determine el menor nmero n tal que:
11
2
1
3
1 ........
nlmite
El programa ha de ser robusto, es decir, no asumir que el nmero introducido por
el usuario es positivo ni entero.
15. Escribir un programa que lea dos caracteres y averige si se introdujeron en el
orden de su cdigo ASCII o no. Se deber adems comprobar si el primero de
ellos es una cifra, y en caso afirmativo indicar si es impar y si es o no primo.
Modularice la solucin.
16. Escribir un programa que lea un entero positivo n y genere:
a. una tabla con las n primeras potencias de 2.
b. una tabla con las potencias de 2 que son menores o iguales que n.
17. Escribir un programa que acepte un ao escrito en cifras arbigas y lo visualice
escrito en nmeros romanos, dentro del rango 1 a 2000. (I=1, V=5, X=10, L=50,
C=100, D=500, M=1000).
18. El director de un banco necesita un programa para determinar cundo un
solicitante de un prstamo hipotecario est cualificado para obtenerlo. El criterio
para la concesin del prstamo se gua por las siguientes caractersticas: el
sueldo base del solicitante debe ser al menos el 20% del precio de la vivienda,
Fundamentos de la Programacin Cuaderno de trabajo 3 4
debe haber trabajado al menos 5 aos, sus ingresos anuales han de ser al menos
el 40% del precio de la compra, y si tiene otros crditos, stos no deben superar
el 20% del sueldo anual. Realizar un programa modularizado para decidir si un
solicitante es vlido o no.
19. Escribir un programa que muestre un men en pantalla que permita calcular el
seno, coseno, tangente, cotangente, secante y cosecante. El men se mostrar
hasta que el usuario decida salir. El men quedar:
1. Seno 2. Coseno
...
0. Salir
Elija una opcin:
20. Una compaa de alquiler de automviles desea un programa para emitir sus
facturas, con las siguientes consideraciones:
a. Una cantidad fija de 100EUR si no se rebasan los 300 Km.
b. Si la distancia recorrida es mayor que 300 Km:
i. Si la distancia es menor o igual que 1000 Km, se cobrarn las
100EUR ms el kilometraje que exceda de 300 Km a razn de 30
cntimos/Km.
ii. Si la distancia es mayor que 1000 Km, se cobrarn los 100EUR ms
el kilometraje a razn de 30 cntimos/Km para los kilmetros entre
el 300 y el 1000 y 20 cntimos/Km para el resto.