FUNDAMENTOS DE INFORMÁTICA
Dpto. Lenguajes y Ciencias de la Computación Escuela de Ingenierías Industriales
UNIVERSIDAD DE MÁLAGA
RELACIÓN DE EJERCICIOS
Tema 3: Introducción a lenguaje C/C++
NIVEL BÁSICO
1. Escribe el siguiente programa en tu ordenador:
#include <iostream>
using namespace std;
int main()
{
int a;
cout <<"Dame un valor: ";
cin >> a;
cout << a;
return 0;
}
Pruébalo con los siguientes tipos de datos y escribe al lado el resultado que has
obtenido:
• Un número entero Entrada ______________ Salida __________________
• Un número real Entrada _______________ Salida ___________________
• Un carácter Entrada ________________ Salida _____________________
Introduce ahora un número de 10 cifras, ¿qué resultado sale? _________________
¿Cuál es el problema?__________________________________________________
2. Repite el ejercicio anterior, pero haciendo que el programa declare la variable
utilizada para guardar el número como una variable real. Ejecuta el programa cuatro
veces, introduciendo los siguientes tipos de datos:
• Un número entero Entrada ________________ Salida __________________
• Un número decimal con menos de seis decimales Entrada _______________
Salida ______________
• Un número decimal con más de seis decimales Entrada _________________
Salida ______________
• Un carácter Entrada ________________ Salida ________________
1
3. El siguiente programa lee dos números enteros desde teclado, posteriormente los
suma, almacenando el resultado en una variable, y finalmente escribe por pantalla el
resultado de la suma. El programa tiene errores. Detéctalos y corrígelos
#include <iostream>
using namespace std
int main()
{
int a,b;
cout << "Dame un valor: ";
cin << a;
cout << "Dame otro valor: ";
cin >> b;
s=a+b;
cout << "El resultado de sumar " << a << " + " << b <<
" es " << s;
return 0;
}
Prueba el programa con las siguientes parejas de datos y anota el resultado que produce:
Entradas: 13567 y 543 Resultado _________________
¿Hay algún problema? ¿Cuál?
Entradas: 1111111111 y 2222222222 Resultado _________________
¿Hay algún problema? ¿Cuál?
4. El siguiente programa tiene 5 errores. Lee atentamente los mensajes de error que
indica el compilador y encuéntralos.
/*-------------------------------------------------------*/
/* Autor: */
/* Fecha: Versión: */
/*-------------------------------------------------------*/
/* Programa ejemplo sobre errores léxicos, */
/* sintácticos y semánticos */
/*-------------------------------------------------------*/
#include <iostream>;
using namespace std;
#define tasa 25.0
int main()
{
float horas, dias, total, neto;
cout << "Introduce las horas trabajadas: ";
cin >> horas;
cout << "Introduce los días trabajados: "
cin >> dias;
horas*dias = total;
neto = total-Tasa;
cout << "El valor total a pagar es: " >> total;
cout << "El valor neto a pagar es: " << NETO;
return 0;
}
5. Escribe un programa que lea una palabra de cuatro letras por teclado, y
posteriormente escriba dicha palabra de manera que cada letra se encuentre
2
codificada sustituyéndola por aquel carácter que le sigue en la tabla de códigos
ASCII.
6. Escribe un programa que lea una palabra de cuatro letras y a continuación la escriba
en mayúsculas. Hágalo usando la función toupper()de la librería cctype y sin
usarla. Nota: La función toupper() convierte la letra que se le pasa como
argumento a mayúscula si es posible. Análogamente existe la función tolower()
que convierte una letra a minúscula.
7. Escribe el resultado que produce cada una de las siguientes instrucciones, teniendo
en cuenta la declaración de variables que aparece. Piensa primero cual sería el
resultado y compruébalo después.
int d=2, v=50, n=10, t=5;
a. n / t + 3 g. d / 57
b. v / t + n - 10 * d h. 18 / -t
c. v - 3 * n + 4 * d i. v%3
d. v + n / t * d j. 'g'-'a'+1
e. (v + n) / (t + d) k. 'G'-'A'+1
f. v + n / t + d l. d*=n+1
8. Escriba un programa que muestre por pantalla el número de bytes que se reservan en
memoria para los siguientes tipos de datos: int, short int, long int, unsigned int,
unsigned short int y unsigned long int. Además el programa deberá mostrar los
rangos de valores permitidos para los mismos tipos de datos. Estos rangos se
calculan del siguiente modo:
Para los tipos enteros con signo: [-(2 n-1), 2 n-1-1]
Para los tipos enteros sin signo: [0, 2 n -1]
donde n es el número de bits reservado para cada tipo.
Nota: Utilice el operador sizeof(), que devuelve el número de bytes reservado
para cada tipo. Además utilice la función pow() de la librería cmath para calcular
cada potencia que aparece en la fórmula. Por ejemplo, para elevar 2 a n tendrá que
usar pow(2,n).
9. Escriba un programa para calcular el tiempo transcurrido, en minutos, necesario
para hacer un viaje. La ecuación es tiempo transcurrido = distancia total/velocidad
promedio. Suponga que la distancia está en kilómetros y la velocidad en
kilómetros/hora.
10. La ley de Coulomb indica que la fuerza, F, que actúa entre dos esferas con carga
eléctrica puede obtenerse con la fórmula F=kq1q2/r, donde q1 es la carga de la
primera esfera, q2 es la carga de la segunda esfera, r es la distancia entre los centros
de las dos esferas, y k es una constante de proporcionalidad (busque su valor).
Escribe un programa para calcular la fuerza, F.
3
11. Un tonel es un recipiente, generalmente de madera, muy utilizado para almacenar y
mejorar un vino. La forma de un tonel es muy característica y es un cilindro en el
que la parte central es más gruesa, es decir, tiene un diámetro mayor que los
extremos. Escriba un programa que lea las medidas de un tonel y nos devuelva su
capacidad, teniendo en cuenta que el volumen (V) de un tonel viene dado por la
siguiente fórmula: V = π l a2 , donde:
l es la longitud del tonel, su altura.
a = d/2 + 2/3(D/2 - d/2)
d es el diámetro del tonel en sus extremos.
D es el diámetro del tonel en el centro: D>d
Nota: Observe que si las medidas se dan en centímetros el resultado lo obtenemos
en centímetros cúbicos.
12. Modifique el programa anterior para que, suponiendo que las medidas de entrada
son dadas en centímetros, el resultado lo muestre en: litros, centímetros cúbicos y
metros cúbicos. Recuerde que 1 litro es equivalente a un decímetro cúbico. Indique
siempre la unidad de medida empleada.
13. Hacer un programa que pida:
a. El total de kilómetros recorridos.
b. El precio de la gasolina por litro.
c. El dinero de gasolina invertido en el viaje.
d. El tiempo que se ha tardado en el viaje (en horas y minutos).
Y calcule los siguientes datos:
a. El consumo de gasolina (en litros y euros) por cada 100 kilómetros.
b. El consumo de gasolina (en litros y euros) por cada kilómetro.
c. La velocidad media (en Km/h y m/sg).
14. Escriba un programa para calcular el valor de la pendiente de una línea que
conecta dos puntos (x1,y1) y (x2,y2). La pendiente está dada por la ecuación (y2-
y1)/(x2-x1). Haga que el programa también calcule el punto medio de la línea que
une los dos puntos, el cual viene dado por (x1+x2)/2,(y1+y2)/2.
15. Escribir un programa que calcule la distancia euclídea de dos puntos en el plano
definidos por sus dos coordenadas cada uno: (x1,y1) y (x2,y2). Utilice
variables de tipo double y la función sqrt(), de la biblioteca cmath, para
calcular la raíz cuadrada.
16. Escribe, compila y ejecuta un programa que calcule y devuelva la raíz cuarta de un
número.
17. El área de una elipse se obtiene con la fórmula πab , donde a es el radio menor de la
elipse y b es el radio mayor, y su perímetro se obtiene con la fórmula π[4(a+b)2]0.5.
Realice un programa que utilizando estas fórmulas calcule el área y el perímetro de
una elipse donde el radio menor y mayor se piden como entradas.
4
18. Si coloca una escalera de 3 metros a un ángulo de 85 grados al lado de un edificio,
la altura en la cual la escalera toca el edificio se puede calcular como altura=3 *
seno 85º. Calcule esta altura con una calculadora y luego escriba un programa que
obtenga y visualice el valor de la altura. Generalice el programa para cualquier
altura y cualquier ángulo, pidiéndolos adecuadamente como entradas.
Nota: Los argumentos de todas las funciones trigonométricas (seno, coseno, etc)
deben estar expresados en radianes. Por tanto, para obtener el seno, por ejemplo, de
un ángulo expresado en grados, primero deberá convertir el ángulo a radianes.
19. La máxima altura alcanzada por una pelota lanzada a una velocidad inicial v, en
metros/seg, a un ángulo θ está dada por la fórmula altura=(0.5 * v2 * seno θ )/g,
donde g es la gravedad que vale 9.8. Utilizando esta fórmula, escriba un programa
que calcule y visualice la altura alcanzada por una pelota lanzada a 5 millas/hora en
un ángulo de 60 grados.
Nota: asegúrese de convertir la velocidad inicial a las unidades correctas. Una milla
tiene 1609 metros.
20. La amplificación de los circuitos electrónicos está medida en unidades de decibelios,
los cuales se calculan como: 10 log(Po/Pi), donde Po es la potencia de la señal de
salida y Pi es la potencia de la señal de entrada. Utilizando esta fórmula escriba un
programa que calcule y visualice la amplificación en decibelios para una
potencia determinada de entrada y salida.