Professional Documents
Culture Documents
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 por
4):
Ejemplo de ejecucin
PI=3.141573
Solucin
#include<stdio.h>
void main(void)
{
double pi=0.0;
int i;
int signo=1;
for(i=1;i<200000;i+=2)
{
pi+=signo*1.0/i;
signo*=-1;
}
pi=pi*4;
printf("PI=%f\n",pi);
}
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 sean
negativos. 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<stdio.h>
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");
}
ELAI-UPM
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 <stdio.h>
void main()
{
int A, B, i;
do
{
printf("Introduzca A y B:\n");
scanf("%d %d", &A, &B);
}
while ((A<=0)||(B<=0)||(B<=A));
printf("Los multiplos de 7 entre %d y %d son:\n", A, B);
for(i=A;i<=B;i++)
if(i%7==0)
printf("%d\n",i);
}
ELAI-UPM
Nombre de la nota
Muy deficiente
Insuficiente
Suficiente
Notable
Sobresaliente
Ejemplo de ejecucin
Introduzca nota: 6
Suficiente
Introduzca nota: 51
Nmero incorrecto.
Introduzca nota: -1
Nmero incorrecto.
Solucin o soluciones
#include <stdio.h>
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);
}
ELAI-UPM
Ejemplo de ejecucin
BASE = 2
EXPONENTE = 3
2^3 = 8
Solucin o soluciones
#include <stdio.h>
void main()
{
int i, base, expo, resu;
printf("BASE = ");
scanf("%d",&base);
printf("EXPONENTE = ");
scanf("%d",&expo);
resu = base;
for(i=1; i<expo; i++)
resu = resu*base;
printf("%d^%d = %d\n", base, expo,resu);
}
ELAI-UPM
Ejemplo de ejecucin
Introduce dos numeros a multiplicar: 3 4
El resultado de multiplicar 3 x 4 es 12
Solucin o soluciones
#include <stdio.h>
void main()
{
int num1, num2, mult=0, i;
printf("Introduce dos numeros a multiplicar:");
scanf("%d %d",&num1,&num2);
for(i=0; i<num2; i++)
mult = mult +num1;
printf("\n%d x %d = %d\n", num1,num2, mult);
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: 6.15
6.15
3.075
1.5735
Solucin o soluciones
#include <stdio.h>
void main()
{
float n;
printf("Introduzca n:");
scanf("%f",&n);
while(n>=1)
{
printf("%f",n);
n=n/2;
}
}
#include <stdio.h>
void main()
{
float n,d;
d=1.0;
printf("Introduzca n:");
scanf("%f",&n);
while(d<=n)
{
printf("%f", n/d);
d=2*d;
}
}
ELAI-UPM
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<stdio.h>
void main(void)
{
float posicion=0.0f,velocidad=0.0f,aceleracion;
float t;
printf("Introduzca aceleracion: ");
scanf("%f",&aceleracion);
for(t=0.0f; t<= 3.0f; t+=0.5f)
{
posicion=aceleracion*t*t;
velocidad=aceleracion*t;
printf("T:%f, Pos:%f, Vel: %f\n",t,posicion,velocidad);
}
}
ELAI-UPM
1 1 1 1
1
= 2 + 2 + 2 + ... + 2
2
1 2 3
n
i =1 i
suma =
Ejemplo de ejecucin
Introduzca n: -1
Introduzca n: 0
Introduzca n: 100
La suma vale 1.634984
Solucin o soluciones
//Con bucles do-while y for
#include <stdio.h>
#include <stdio.h>
void main()
{
int n, i;
float suma=0;
void main()
{
int n, i;
float suma=0;
do
{
printf("Introduzca n: ");
scanf("%d", &n);
}
while (n<1);
printf("Introduzca n: ");
scanf("%d", &n);
while (n<1)
{
printf("Introduzca n: ");
scanf("%d", &n);
}
for(i=1;i<=n;i++)
suma+=1.0f/(i*i);
i=1;
while (i<=n)
{
suma+=1.0f/(i*i);
i++;
}
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 al
numero 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 <stdio.h>
void main()
{
int i;
for(i=1;i<11;i++)
{
if(i == 3)
printf("He llegado al numero 3\n");
else if (i == 10)
printf("He terminado de contar\n");
else
printf("%d\n",i);
}
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: 5
*****
*****
*****
*****
*****
Solucin o soluciones
#include <stdio.h>
void main()
{
int n,i,j;
printf("Introduzca n:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("*");
printf("\n");
}
}
#include <stdio.h>
void main()
{
int n,i;
printf("Introduzca n:");
scanf("%d",&n);
for(i=1;i<=n*n;i++)
{
printf("*");
if(i%n==0)
printf("\n");
}
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca dato: 23.4
Introduzca dato: 65.3
Introduzca dato: 22.0
Introduzca dato: -2
Maximo: 65.300003, Minimo: 22.000000
Solucin
#include<stdio.h>
main()
{
float maximo=0.0f, minimo=100.0f, dato;
while(1)
{
printf("Introduzca dato: ");
scanf("%f",&dato);
if(dato<0.0f || dato>100.0f)
break;
if(maximo<dato)
maximo=dato;
if(minimo>dato)
minimo=dato;
}
printf("Maximo: %f, Minimo: %f\n",maximo, minimo);
}
ELAI-UPM
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<stdio.h>
#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<=3.4f;altura+=0.3f)
{
float volumen=PI*radio*radio*altura;
printf ("R=%.1f H=%.1f V=%.1f\n", radio, altura, volumen);
}
}
ELAI-UPM
Ejemplos de ejecucin
Teclee numero: 25
El numero 25 no es primo
Teclee numero: 17
El numero 17 es primo
Solucin
#include<stdio.h>
void main(void)
{
int numero,i;
printf("Teclee numero: ");
scanf("%d",&numero);
for (i=2;i<numero;i++)
{
if (numero%i==0)
break;
}
if (i==numero)
printf("El numero %d es primo\n",numero);
else
printf("El numero %d no es primo\n",numero);
}
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.
Solucin o soluciones
#include <stdio.h>
void main()
{
int A=8, B=19, m, i;
do
{
printf("Introduzca m: ");
scanf("%d", &m);
}
while (m<1);
for(i=A;i<=B;i+=m)
printf("%d\n", i);
}
ELAI-UPM
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 <stdio.h>
void main()
{
int i,j;
for(i=1;i<=8;i++)
{
for(j=1;j<=8;j++)
{
if((i+j)%2==0)
printf("B ");
else
printf("N ");
}
printf("\n");
}
}
ELAI-UPM
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 <stdio.h>
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<0)
break;
suma+=numero;
contador++;
}
media=(float)suma/contador;
printf("La media vale %f\n", media);
}
ELAI-UPM
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 <stdio.h>
void main()
{
int n, i;
do
{
printf("Introduzca n: ");
scanf("%d", &n);
}
while (n<1 || n>9);
printf("\nLa tabla del %d es\n", n);
for(i=1;i<=10;i++)
printf("%dx%d=%d\n", n, i, n*i);
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca la nota: 3.0
SUSPENSO. Desea Continuar (S/N): S
Introduzca la nota: 7.5
APROBADO. Desea Continuar (S/N): N
Solucin o soluciones
#include <stdio.h>
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');
}
ELAI-UPM
Titulo: Ao Bisiesto
Enunciado
Un 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: 1992
BISIESTO
Introduce un anio: -3
Solucin o soluciones
#include <stdio.h>
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);
}
ELAI-UPM
Ejemplo de ejecucin
Introduce el valor n: 10
a1 = 0.000000
a2 = 0.600000
a3 = -1.142857
a4 = 1.666667
a5 = -2.181818
a6 = 2.692308
a7 = -3.200000
a8 = 3.705882
a9 = -4.210526
a10 = 4.714286
Solucin o soluciones
#include <stdio.h>
void main()
{
int n, i;
float signo = 1, an;
printf("Introduce el valor n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
signo=(-1)*signo;
an=signo*(i*i-1)/(2*i+1);
printf("a%d = %f\n",i,an);
}
}
n2 1
.
2n + 1
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: -3
El nmero es negativo.
Introduzca n: 7
El nmero es positivo.
Introduzca n: 0
Solucin o soluciones
#include <stdio.h>
void main()
{
int n;
do {
printf("Introduzca n:");
scanf("%d",&n);
if(n>0)
printf("El nmero es positivo.\n");
if(n<0)
printf("El nmero es negativo.\n");
} while (n!=0);
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca nmero de da: 6
Sbado
Introduzca nmero de da: 2
Martes
Introduzca nmero de da: 75
Nmero incorrecto.
Introduzca nmero de da: 0
Nmero incorrecto.
Solucin o soluciones
#include <stdio.h>
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) ;
}
ELAI-UPM
Nombre de la nota
Muy deficiente
Insuficiente
Suficiente
Notable
Sobresaliente
Ejemplos de ejecucin
Introduzca nota: 8.1
Notable
Introduzca nota: 51.2
Nmero incorrecto.
Introduzca nota: 4.2
Insuficiente
Solucin o soluciones
#include <stdio.h>
void main()
{
float n;
while(1)
{
printf("Introduzca nota:");
scanf("%f",&n);
if(n<0 || n>10)
printf("Numero incorrecto\n");
else if (n<1)
printf("Muy deficiente\n");
else if(n<5)
printf("Insuficiente\n");
else if(n<7)
printf("Suficiente\n");
else if(n<9)
printf("Notable\n");
else
printf("Sobresaliente\n");
}
}