Upload
richard-carrion-abollaneda
View
216
Download
0
Embed Size (px)
Citation preview
7/23/2019 Ejer Cici Os Practic as 1
1/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Calculo de PI
Enunciado
Realizar un programa que calcule una aproximacin al nmero PI, mediante el
sumatorio de los 100.000 primeros trminos de la serie (y finalmente multiplicada por4):
Nota: Utilicese un bucle fory nmeros de precisin doble (double)
Ejemplo de ejecucin
PI=3.141573
Solucin#include
void main(void)
{
double pi=0.0;
int i;
int signo=1;
for(i=1;i
7/23/2019 Ejer Cici Os Practic as 1
2/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Divisible
Enunciado
Dados dos nmeros enteros tecleados por el usuario, comprobar si el primero es
divisible por el segundo, repitiendo la operacin, hasta que ambos nmeros seannegativos. Si los dos nmeros tecleados son negativos, se termina el programa.
Ejemplo de ejecucin
Escriba dos numeros separados por un espacio:
15 4
El 15 no es divisible por 4
Escriba dos numeros separados por un espacio:
12 -3
El 12 es divisible por -3
Escriba dos numeros separados por un espacio:
-25 5
El -25 es divisible por 5
Escriba dos numeros separados por un espacio:
-1 -3
El -1 no es divisible por -3
Fin del programa
Solucin#include
void main()
{
int num,val;
do
{
printf ("Escriba dos numeros separados por un espacio:\n");
scanf ("%d %d",&num,&val);
if (num%val==0)
printf ("El %d es divisible por %d\n",num,val);
else
printf ("El %d no es divisible por %d\n",num,val);
}
while(num>0 || val>0);
printf("Fin del programa\n");
}
7/23/2019 Ejer Cici Os Practic as 1
3/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Mltiplos de 7 entre A y B
Enunciado
Realizar un programa que imprima los mltiplos de 7 entre A y B, ambos inclusive,donde A y B son valores enteros introducidos por el usuario desde el teclado.
El programa debe garantizar que A y B son mayores que 0 y que B>A. Si el usuario
introduce valores que no cumplen alguna de estas condiciones, el programa se los
volver a pedir (el programa pedir reiteradamente los nmeros si alguna condicin no
se cumple).
Ejemplo de ejecucin
Introduzca A y B:
-10 25
Introduzca A y B:
25 10
Introduzca A y B:
10 25
Los multiplos de 7 entre 10 y 25 son:
14
21
Solucin#include
void main()
{
int A, B, i;
do
{
printf("Introduzca A y B:\n");
scanf("%d %d", &A, &B);
}
while ((A
7/23/2019 Ejer Cici Os Practic as 1
4/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Notas 0-10
Enunciado
Realizar un programa que acepte por el teclado un nmero entero. Dado ese nmero, el
programa presenta por pantalla un nombre de nota asociado a ese nmero, segn latabla. El programa vuelve al principio, para que se pueda introducir otro nmero, hasta
que se introduzca un nmero negativo, en cuyo caso el programa termina. Si el nmero
no es vlido, (negativo o mayor que 10), se indica con un mensaje "Nmero incorrecto".
Nmero Nombre de la nota
0-1 Muy deficiente
2-4 Insuficiente
5-6 Suficiente
7-8 Notable
9-10 Sobresaliente
Debe emplearse una instruccin switch-case
Ejemplo de ejecucin
Introduzca nota: 6
Suficiente
Introduzca nota: 51
Nmero incorrecto.
Introduzca nota: -1
Nmero incorrecto.
Solucin o soluciones#include
void main()
{
int n;
do
{
printf("Introduzca nota:");
scanf("%d",&n);
switch(n)
{
case 0:
case 1: printf("Muy deficiente"); break;
case 2:
case 3:
case 4: printf("Insuficiente"); break;
case 5:
case 6: printf("Suficiente"); break;
case 7:
case 8: printf("Notable"); break;
case 9:
case 10: printf("Sobresaliente"); break;
default: printf("Nmero incorrecto");
}
} while(n>0);
}
7/23/2019 Ejer Cici Os Practic as 1
5/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Potencia de un nmero entero
Enunciado
Realizar un programa que permita calcular la potencia de un nmero entero, donde la
base y el exponente son introducidos por el usuario.
Ejemplo de ejecucin
BASE = 2
EXPONENTE = 3
2^3 = 8
Solucin o soluciones#include
void main()
{int i, base, expo, resu;
printf("BASE = ");
scanf("%d",&base);
printf("EXPONENTE = ");
scanf("%d",&expo);
resu = base;
for(i=1; i
7/23/2019 Ejer Cici Os Practic as 1
6/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Multiplicacin de dos nmeros a travs de la suma
Enunciado
Realizar un programa en el que se pida al usuario dos nmeros enteros. Se pide realizarla multiplicacin de los mismos a travs de la suma. Por ejemplo: 3x4 = 3+3+3+3, o
5x10= 5+5+5+ (10 veces)+5
La nica estructura de control que puede ser utilizada es el for
Ejemplo de ejecucin
Introduce dos numeros a multiplicar: 3 4
El resultado de multiplicar 3 x 4 es 12
Solucin o soluciones#include
void main()
{
int num1, num2, mult=0, i;
printf("Introduce dos numeros a multiplicar:");
scanf("%d %d",&num1,&num2);
for(i=0; i
7/23/2019 Ejer Cici Os Practic as 1
7/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Mitades sucesivas
Enunciado
Realizar un programa que acepte por el teclado un nmero con decimales, y nos
presenta por pantalla ese nmero, la mitad de ese nmero, la mitad de la mitad, y assucesivamente. Cuando el resultado sea menor que 1, el programa termina.
Ejemplo de ejecucin
Introduzca n: 6.15
6.15
3.075
1.5735
Solucin o soluciones#include
void main()
{
float n;
printf("Introduzca n:");
scanf("%f",&n);
while(n>=1)
{
printf("%f",n);n=n/2;
}
}
#include
void main()
{
float n,d;
d=1.0;
printf("Introduzca n:");
scanf("%f",&n);
while(d
7/23/2019 Ejer Cici Os Practic as 1
8/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Objeto acelerado
Enunciado
Se pide realizar un programa que calcule la distancia que recorre un objeto y la
velocidad alcanzada en cada intervalo de 0.5 segundo durante los 3 primeros segundosde su movimiento. El objeto se mueve desde la posicin cero, con velocidad inicial nula
y con una aceleracin constante tecleada por el usuario.
Se debe utilizar un bucle para dicho clculo.
Ejemplo de ejecucin
Introduzca aceleracion: 3
T: 0.000000, Pos: 0.000000, Vel: 0.000000
T: 0.500000, Pos: 0.750000, Vel: 1.500000
T: 1.000000, Pos: 3.000000, Vel: 3.000000
T: 1.500000, Pos: 6.750000, Vel: 4.500000
T: 2.000000, Pos: 12.000000, Vel: 6.000000
T: 2.500000, Pos: 18.750000, Vel: 7.500000
T: 3.000000, Pos: 27.000000, Vel: 9.000000
Solucin#include
void main(void)
{
float posicion=0.0f,velocidad=0.0f,aceleracion;
float t;
printf("Introduzca aceleracion: ");
scanf("%f",&aceleracion);
for(t=0.0f; t
7/23/2019 Ejer Cici Os Practic as 1
9/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Suma de una serie
Enunciado
Realizar un programa que calcule la suma de la siguiente serie:
22221
2
1
3
1
2
1
1
11
n...
isuma
n
i
++++===
El valor de n ser introducido por el usuario desde el teclado. Si el usuario introduce un
valor de n menor que 1, el programa se lo volver a pedir de forma reiterada hasta que
el usuario introduzca un nmero mayor o igual que 1.
Ejemplo de ejecucin
Introduzca n: -1
Introduzca n: 0Introduzca n: 100
La suma vale 1.634984
Solucin o soluciones//Con bucles do-while y for
#include
void main()
{
int n, i;
float suma=0;
do
{
printf("Introduzca n: ");
scanf("%d", &n);
}
while (n
7/23/2019 Ejer Cici Os Practic as 1
10/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Contando
Enunciado
Realizar un programa que cuente desde 1 hasta 10. Imprima los valores en lneas
sucesivas. Si el nmero contado es 3 imprima el siguiente mensaje: He llegado alnumero 3. Si el nmero contado es 10 imprima: He terminado de contar
Ejemplo de ejecucin
1
2
He llegado al numero 3
4
5
6
7
8
9
He terminado de contar
Solucin o soluciones#include
void main()
{
int i;
for(i=1;i
7/23/2019 Ejer Cici Os Practic as 1
11/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Cuadrado de asteriscos
Enunciado
Realizar un programa que dibuje en la pantalla un cuadrado de asteriscos de lado n,
siendo n teclado por el usuario, y pudiendo ser cualquier numero entero positivo.
La nica estructura de control que puede ser utilizada es el for
Ejemplo de ejecucin
Introduzca n: 5
*****
*****
*****
*****
*****
Solucin o soluciones#include
void main()
{
int n,i,j;
printf("Introduzca n:");
scanf("%d",&n);
for(i=0;i
7/23/2019 Ejer Cici Os Practic as 1
12/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Mximo y mnimo
Enunciado
Se pide realizar un programa que calcule el mximo y el mnimo de unos datos
tecleados por el usuario y que deben estar en el rango [0.0 100.0]. Si se introducen datosfuera de ese rango, la introduccin de datos termina y se muestra por pantalla los
valores del mximo y el mnimo.
Utilizar un bucle while
Ejemplo de ejecucin
Introduzca dato: 23.4
Introduzca dato: 65.3
Introduzca dato: 22.0
Introduzca dato: -2Maximo: 65.300003, Minimo: 22.000000
Solucin#include
main()
{
float maximo=0.0f, minimo=100.0f, dato;
while(1)
{
printf("Introduzca dato: ");
scanf("%f",&dato);
if(dato100.0f)
break;
if(maximodato)
minimo=dato;
}
printf("Maximo: %f, Minimo: %f\n",maximo, minimo);
}
7/23/2019 Ejer Cici Os Practic as 1
13/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Volmenes de cilindros.
Enunciado
Escribir una tabla con los volmenes de un cilindro cuyo radio se solicita al usuario y
cuya altura vara desde 1.0 hasta 3.4 metros, cada 0.3 metros.
Ejemplo de ejecucin
Introduzca el radio: 1.5
Tabla de volumenes:
R=1.5 H=1.0 V=7.1
R=1.5 H=1.3 V=9.2
R=1.5 H=1.6 V=11.3
R=1.5 H=1.9 V=13.4
R=1.5 H=2.2 V=15.6
R=1.5 H=2.5 V=17.7
R=1.5 H=2.8 V=19.8
R=1.5 H=3.1 V=21.9
R=1.5 H=3.4 V=24.0
Solucin#include
#define PI 3.141592
void main (void)
{float radio, altura;
printf("Introduzca el radio: ");
scanf("%f",&radio);
printf("Tabla de volumenes:\n");
for(altura=1.0f;altura
7/23/2019 Ejer Cici Os Practic as 1
14/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Numero primo
Enunciado
Realizar un programa que solicite un nmero entero al usuario y le informe si dicho
numero es primo o no.
Ejemplos de ejecucin
Teclee numero: 25
El numero 25 no es primo
Teclee numero: 17
El numero 17 es primo
Solucin#include
void main(void)
{
int numero,i;
printf("Teclee numero: ");
scanf("%d",&numero);
for (i=2;i
7/23/2019 Ejer Cici Os Practic as 1
15/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Contar de A a B de m en m
Enunciado
Hacer un programa que imprima los nmeros enteros de A a B, contando de m en m.
Los valores de A y B sern asignados dentro del programa en codigo, mediante la
inicializacin de las variables en su declaracin. Por ejemplo, A=8 y B=19.
El valor de m ser introducido por el usuario desde el teclado. Si el usuario introduce un
valor de m menor que 1, el programa se lo volver a pedir de forma reiterada hasta que
el usuario introduzca un nmero mayor o igual que 1.
Ejemplo de ejecucin (para A=8 y B=19)
Introduzca m: -1
Introduzca m: 0
Introduzca m: 3
8
11
14
17
Solucin o soluciones#include
void main()
{
int A=8, B=19, m, i;
do
{
printf("Introduzca m: ");
scanf("%d", &m);
}
while (m
7/23/2019 Ejer Cici Os Practic as 1
16/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Tablero de ajedrez
Enunciado
Hacer un programa que imprima en la pantalla un tablero de ajedrez de 8x8 mediante eluso de bucles for, uno para las filas y otro para las columnas. Para representar el tablero
se utilizar para la casilla negra una N y para la casilla blanca una B. La primera casilla
puede ser blanca (B) o negra (N).
Nota: la suma de la fila y columna de una casilla de un color es un nmero par y la del
otro un nmero impar.
Ejemplo de ejecucin (con la primera casilla blanca)
B N B N B N B N
N B N B N B N B
B N B N B N B N
N B N B N B N B
B N B N B N B N
N B N B N B N B
B N B N B N B N
N B N B N B N B
Solucin o soluciones#include
void main()
{
int i,j;
for(i=1;i
7/23/2019 Ejer Cici Os Practic as 1
17/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Media de un conjunto de nmeros
Enunciado
Hacer un programa que calcule la media de un nmero indeterminado de nmerosenteros introducidos por el usuario desde el teclado. La introduccin de nmeros
finalizar cuando el usuario introduzca un nmero negativo.
Ejemplo de ejecucin
Introduzca numeros enteros y calculare la media
(para terminar introduzca un numero negativo)
1
4
-3
La media vale 2.500000
Solucin o soluciones#include
void main()
{
int suma=0, numero, contador=0;
float media;
printf("Introduzca numeros enteros y calculare la media\n");
printf("(para terminar introduzca un numero negativo)\n");
while(1){
scanf("%d", &numero);
if(numero
7/23/2019 Ejer Cici Os Practic as 1
18/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Ttulo: Tabla de multiplicar de un nmero del 1 al 9
Enunciado
Hacer un programa que imprima en la pantalla la tabla de multiplicar del nmero n queser introducido por el usuario desde el teclado y cuyo valor debe estar comprendido
entre 1 y 9, ambos inclusive. Si el usuario introduce un valor fuera de ese intervalo, el
programa se lo volver a pedir de forma reiterada hasta que el usuario introduzca un
nmero correcto.
Ejemplo de ejecucin
Introduzca n: 0
Introduzca n: -1
Introduzca n: 7
La tabla del 7 es
7x1=7
7x2=14
7x3=21
7x4=28
7x5 =35
7x6=42
7x7=49
7x8=56
7x9=63
7x10=70
Solucin o soluciones#include
void main()
{
int n, i;
do
{
printf("Introduzca n: ");
scanf("%d", &n);
}while (n9);
printf("\nLa tabla del %d es\n", n);
for(i=1;i
7/23/2019 Ejer Cici Os Practic as 1
19/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Aprobado o Suspenso?
Enunciado
Realizar un programa en el que se pida al introducir la nota de una asignatura y seindique si est aprobado (a partir de 5 puntos) o suspenso (menos de 5 puntos). Repita la
operacin tantas veces como el usuario desee, realizndole la pregunta si quiere
continuar, cuya respuesta ser un carcter s o n. El programa debe funcionar
independientemente de si dichos caracteres estn en maysculas o minsculas
La nica estructura de control que puede ser utilizada es el do-while
Ejemplo de ejecucin
Introduzca la nota: 3.0
SUSPENSO. Desea Continuar (S/N): SIntroduzca la nota: 7.5
APROBADO. Desea Continuar (S/N): N
Solucin o soluciones#include
void main()
{
float nota;
char var;
do
{
printf("Introduce la nota: ");
scanf("%f",¬a);
if(nota >= 5.0)
printf("APROBADO. Desea Continuar(S/N): ");
else
printf("SUSPENSO. Desea Continuar(S/N): ");
fflush(stdin);
scanf("%c",&var);
}while(var != 'N' && var != 'n');
}
7/23/2019 Ejer Cici Os Practic as 1
20/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Ao Bisiesto
EnunciadoUn ao es bisiesto si es divisible por 4 y no por 100 o bien es divisible por 400. Hacer
un programa que pida al usuario un ao y muestre si es o no bisiesto. El programa se
repite indefinidamente, hasta que el usuario teclea un ao negativo
Ejemplo de ejecucin
Introduce un anio: 1996
BISIESTO
Introduce un anio:1997
NO BISIESTO
Introduce un anio: 1998
NO BISIESTO
Introduce un anio: 2000
BISIESTO
Introduce un anio: 2100
NO BISIESTO
Introduce un anio: 2200
NO BISIESTO
Introduce un anio: 2400
BISIESTO
Introduce un anio: 1992BISIESTO
Introduce un anio: -3
Solucin o soluciones
#include
void main()
{
int anio, bis;
do{
printf("Introduce un anio: ");
scanf("%d",&anio);
bis=((anio%4 == 0) && (anio%100 != 0)) ||(anio%400 == 0);
if(bis)
printf("BISIESTO\n");
else
printf("NO BISIESTO\n");
}while(anio>=0);
}
7/23/2019 Ejer Cici Os Practic as 1
21/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Calculo de una sucesin
Enunciado
Realizar un programa para calcular los n trminos de la sucesin: ( )12
11
2
+
=
n
na
n
n.
El valor n es introducido por el usuario.
Ejemplo de ejecucin
Introduce el valor n: 10
a1 = 0.000000
a2 = 0.600000
a3 = -1.142857
a4 = 1.666667a5 = -2.181818
a6 = 2.692308
a7 = -3.200000
a8 = 3.705882
a9 = -4.210526
a10 = 4.714286
Solucin o soluciones#include
void main(){
int n, i;
float signo = 1, an;
printf("Introduce el valor n: ");
scanf("%d",&n);
for(i=1;i
7/23/2019 Ejer Cici Os Practic as 1
22/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Positivo o negativo
EnunciadoRealizar un programa que pida un nmero de tipo entero por teclado e indique si el
nmero es positivo o negativo. El programa termina si ese nmero 0.
Realizar el bucle con una estructura do while
Ejemplo de ejecucin
Introduzca n: -3
El nmero es negativo.
Introduzca n: 7
El nmero es positivo.Introduzca n: 0
Solucin o soluciones#include
void main()
{
int n;
do {
printf("Introduzca n:");
scanf("%d",&n);
if(n>0)
printf("El nmero es positivo.\n");
if(n
7/23/2019 Ejer Cici Os Practic as 1
23/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Nmero de da de la semana
Enunciado
Realizar un programa que acepte por el teclado un nmero entero. Dado ese nmero, el
programa presenta por pantalla el nombre de da asociado a ese nmero, (1 es Lunes, 2es Martes, etc.). El programa vuelve al principio, para que se pueda introducir otro
nmero, hasta que se introduzca un 0, en cuyo caso el programa termina. Si el nmero
no corresponde a un mes (negativo, 0 o mayor que 7), se indica con un mensaje
"Nmero incorrecto"
Debe emplearse una instruccin switch
Ejemplo de ejecucin
Introduzca nmero de da: 6
SbadoIntroduzca nmero de da: 2
Martes
Introduzca nmero de da: 75
Nmero incorrecto.
Introduzca nmero de da: 0
Nmero incorrecto.
Solucin o soluciones#include
void main()
{
int n;
do
{
printf("Introduzca nmero de da:");
scanf("%d",&n);
switch(n)
{
case 1: printf("Lunes"); break;
case 2: printf("Martes"); break;
case 3: printf("Mircoles"); break;
case 4: printf("Jueves"); break;
case 5: printf("Viernes"); break;
case 6: printf("Sbado"); break;
case 7: printf("Domingo"); break;
default: printf("Nmero incorrecto");
}
} while(n!=0) ;
}
7/23/2019 Ejer Cici Os Practic as 1
24/24
Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM
Titulo: Notas 0-10 (con if )
Enunciado
Realizar un programa que acepte por el teclado un nmero decimal. Dado ese nmero,
el programa presenta por pantalla un nombre de nota asociado a ese nmero, segn latabla. Si el nmero no es vlido, (negativo o mayor que 10), se indica con un mensaje
"Nmero incorrecto". El programa se repite indefinidamente hasta que se pulsa ctrl.+C.
Nmero Nombre de la nota
0-1 Muy deficiente
1-5 Insuficiente
5-7 Suficiente
7-9 Notable
9-10 Sobresaliente
Debe emplearse nicamente la instruccin alternativa if - else if, dentro de un
bucle while
Ejemplos de ejecucin
Introduzca nota: 8.1
Notable
Introduzca nota: 51.2
Nmero incorrecto.
Introduzca nota: 4.2
Insuficiente
Solucin o soluciones#include
void main()
{
float n;
while(1)
{
printf("Introduzca nota:");
scanf("%f",&n);
if(n10)
printf("Numero incorrecto\n");
else if (n