Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejer Cici Os Practic As 2
Ejer Cici Os Practic As 2
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: -3
El numero es negativo.
Introduzca n: 5
La suma de los 5 primeros numeros es: 15
Solucin o soluciones
#include <stdio.h>
int suma_nprimeros(int n)
{
int i,suma=0;
for(i=1;i<=n;i++)
suma += i;
return suma;
}
void main()
{
int n,suma;
printf("Introduzca n:");
scanf("%d",&n);
if(n<0)
printf("El numero es negativo.\n");
else
{
suma=suma_nprimeros(n);
printf("La suma de los %d primeros numeros es: %d.\n",n,suma);
}
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: 3
0 --> -3
1 --> -1
2 --> 1
3 --> 3
4 --> 5
5 --> 7
6 --> 9
7 --> 11
8 --> 13
9 --> 15
10 --> 17
Solucin o soluciones
#include <stdio.h>
int funcion(int a,int b)
{
return (a*b-a-b);
}
void main()
{
int i,n,valor;
printf("Introduzca n:");
scanf("%d",&n);
for(i=0;i<=10;i++)
{
valor = funcion(i,n);
printf("%d --> %d\n", i, valor);
}
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca n: 200
Total: 232.000000
Introduzca n: 17
Total: 17.720000
Introduzca n: -1
Solucin o soluciones
#include <stdio.h>
float precio_con_iva(float precio, float iva_perct)
{
float iva;
iva=precio*(iva_perct/100.0);
return (precio+iva);
}
void main()
{
float precio=0.0;
float total;
while(1)
{
printf("Introduzca precio: ");
scanf("%f",&precio);
if(precio < 0.0 )
return;
total=precio_con_iva(precio,16);
printf("Total: %f \n", total);
}
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca temperatura y letra: 100 C
Temperatura: 212.000000 F
Introduzca temperatura y letra: 23 F
Total: -5.000000 C
Introduzca temperatura y letra: 199 j
Error , letra no valida
Introduzca temperatura y letra: 199 Z
Fin
Solucin o soluciones
#include <stdio.h>
float cent_fahr(float cent){
float fahr_cent(float fahr){
return ((cent*1.8)+32);
return ((fahr-32)/1.8);
}
}
void main()
{
float temper;
char escala;
while(1) {
printf("Introduzca temperatura y letra: ");
scanf("%f %c",&temper,&escala);
switch(escala)
{
case 'Z': printf("Fin\n");
return;
case 'F': printf("Temperatura: %f C\n",fahr_cent(temper));
break;
case 'C': printf("Temperatura: %f F\n",cent_fahr(temper));
break;
default: printf("Error, letra no valida\n");
}
}
}
ELAI-UPM
Titulo: Mximo de 3
Enunciado
Programar una funcin maximo3 para calcular el mximo de tres valores a , b y c de
tipo entero, que se admiten como parmetros y se retorna el valor del mayor. Esta
funcin usar a su vez a otra funcin maximo2 (que tambin debe programarse) que
calcula el mximo entre 2 valores a y b, que se pasan como parmetros a la funcin.
El programa principal pedir al usuario 2 valores, y usar la funcin maximo3 para
calcular el mayor entre 0 y esos dos valores.
Ejemplo de ejecucin
Introduzca 2 numeros: 2 5
El mayor es: 5
Introduzca 2 numeros: -2 -7
El mayor es: 0
Solucin o soluciones
#include <stdio.h>
int maximo2(int a,int b)
{
int mayor;
if(a>=b)
mayor=a;
else
mayor=b;
return mayor;
}
int maximo3(int a,int b,int c)
{
int mayor;
mayor=maximo2(a,maximo2(b,c));
return mayor;
}
void main()
{
int n1,n2, maximo;
printf("Introduzca 2 numeros:");
scanf("%d %d" ,&n1,&n2);
maximo=maximo3(0,n1,n2);
printf("El mayor es: %d\n",maximo);
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca un numero: -2
Introduzca un numero: 0
Introduzca un numero: 4
*
**
***
****
Solucin o soluciones
#include <stdio.h>
int entrada()
{
int val=-1;
while(val<=0) {
printf("Introduzca un numero: ");
scanf("%d",&val);
}
return val;
}
void asteriscos(int num)
{
int i;
for(i=1;i<=num;i++)
printf("*");
printf("\n");
}
void main()
{
int i,num;
num=entrada();
for(i=1;i<=num;i++)
asteriscos(i);
}
ELAI-UPM
Ejemplo de ejecucin
Cuandos terminos quieres calcular? -4
Cuandos terminos quieres calcular? 0
Cuandos terminos quieres calcular? 3
El termino 1 es 0.300000
El termino 3 es 0.500000
El termino 5 es 0.700000
Solucin o soluciones
#include <stdio.h>
float TerminoN (int);
void main()
{
int n,i;
float term;
do
{
printf("Cuandos terminos quieres calcular? ");
scanf("%d", &n);
}
while(n<=0);
for(i=1;i<n*2 ;i+=2)
{
term=TerminoN(i);
printf("El termino %d es %f \n",i,term);
}
}
float TerminoN (int n)
{
return (float)(n+2)/10; //tambien return (n+2)/10.0f;
}
ELAI-UPM
Ejemplo de ejecucin
Introduce n: 5
El termino n-esimo es: 0.125
Solucin o soluciones
#include <stdio.h>
int SumoN(int);
int FactN(int);
void main()
{
int n, a, b;
printf("Introduce n: ");
scanf("%d",&n);
a= SumoN(n);
b= FactN(n);
printf("El termino n-esimo es: %f", (float) a/b);
}
int SumoN(int a)
{
int i, resu=0;
for(i=0; i<=a;i++)
resu+=i;
return resu;
}
int FactN(int a)
{
int i, resu=1;
for(i=1; i<=a; i++)
resu*=i;
return resu;
}
ELAI-UPM
Ejemplo de ejecucin
Introduce el primer punto: 1 0
Introduce el segundo punto: 0 1
Solucin o soluciones
#include <stdio.h>
#include <math.h>
float dist (float, float, float, float);
void main()
{
float resu, x1,x2,y1,y2;
printf("Introduce el primer punto: ");
scanf("%f %f",&x1,&y1);
printf("Introduce el segundo punto: ");
scanf("%f %f",&x2,&y2);
resu=dist(x1,x2,y1,y2);
printf("La distancia es: %f", resu);
}
float dist(float a,float b,float c,float d)
{
return sqrt((a-b)*(a-b) + (c-d)*(c-d));
}
ELAI-UPM
Ejemplo de ejecucin
Introduce el numero: 3
Introduce a y b: 2 7
la suma es: 81
Solucin o soluciones
#include <stdio.h>
int Sumatorio (int n, int a, int b);
void main()
{
int a, b,num;
printf("Introduce el numero: ");
scanf("%d", &num);
printf("Introduce a y b: ");
scanf("%d %d", &a, &b);
printf("la suma es: %d \n",Sumatorio (num, a, b));
}
int Sumatorio(int n, int a, int b)
{
int i, sum=0;
for(i=a; i<=b; i++)
sum+=(n*i);
return sum;
}
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: 100
La suma vale 1.634984
Solucin o soluciones
#include <stdio.h>
float SumaSerie (int numero);
void main()
{
int n;
float s;
printf("Introduzca n: ");
scanf("%d", &n);
s=SumaSerie(n);
printf("La suma vale %f\n", s);
}
float SumaSerie (int numero)
{
int i;
float suma=0;
for(i=1;i<=numero;i++)
suma+=1.0f/(i*i);
return suma;
}
ELAI-UPM
Ttulo: Clculo de ab
Enunciado
Realizar un programa que calcule con una funcin, llamada potencia, el valor de ab,
donde a y b son dos nmeros enteros introducidos desde el teclado tal que a>0 y b>=0
(se supondr que el usuario introduce dos nmeros que cumplen estas condiciones).
Nota: no se pueden utilizar funciones de la librera de matemticas. El clculo de ab lo
realizar la funcin teniendo en cuenta que ab=aaa.a (b veces).
Ejemplos de ejecucin
Introduzca a y b: 2 0
2 elevado a 0 vale 1
Introduzca a y b: 2 4
2 elevado a 4 vale 16
Solucin o soluciones
#include <stdio.h>
int potencia (int base, int exponente);
void main()
{
int a, b, p;
printf("Introduzca a y b: ");
scanf("%d %d", &a, &b);
p=potencia(a, b);
printf("%d elevado a %d vale %d\n", a, b, p);
}
int potencia (int base, int exponente)
{
int i, aux=1;
for(i=1;i<=exponente;i++)
aux*=base;
return aux;
}
ELAI-UPM
1
1 1 1
1
= 1 + + + + ... +
1! 2! 3!
10!
n =0 n!
La suma de la serie se realizar dentro la funcin main(), pero har uso de una funcin
llamada factorial, a la cul se le pasa como argumento el valor de n y devuelve el valor
de n!. La funcin ser llamada cada vez que haya que calcular el factorial de n.
Ejemplo de ejecucin
El numero e vale aproximadamente 2.718282
Solucin o soluciones
#include <stdio.h>
int factorial (int n);
void main()
{
int i;
float suma=0.0f;
for(i=0;i<=10;i++)
suma+=(float)1/factorial(i);
printf("El numero e vale aproximadamente %f\n", suma);
}
int factorial (int n)
{
int i, aux=1;
for(i=1;i<=n;i++)
aux*=i;
return aux;
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca los nmeros: 12 -3 27
El minimo de ellos es 3
Solucin o soluciones
#include <stdio.h>
int minimo (int a, int b, int c);
void main()
{
int a, b, c, min;
printf("Introduzca los numeros: ");
scanf("%d %d %d", &a, &b, &c);
min=minimo(a, b, c);
printf("El minimo de ellos es %d\n", min);
}
int minimo (int a, int b, int
{
if (a>b)
//El mnimo
if(b<c)
return b;
else
return c;
else
//El mnimo
if(a<c)
return a;
else
return b;
}
//Tambien podria ser:
int minimo (int a, int b, int
{
int min=a;
if(b<min)
min=b;
if(c<min)
min=c;
return min;
}
c)
es b o c
es a o c
c)
ELAI-UPM
Ejemplo de ejecucin
Introduzca n y m: 10 25
Hay 2 multiplos de 7 entre 10 y 25
Solucin o soluciones
#include <stdio.h>
int multiplosde7 (int inferior, int superior);
void main ()
{
int n, m, nmul;
printf("Introduzca n y m: ");
scanf("%d %d", &n, &m);
nmul=multiplosde7(n, m);
printf("Hay %d multiplos de 7 entre %d y %d\n", nmul, n, m);
}
int multiplosde7 (int inferior, int superior)
{
int i, contador=0;
for(i=inferior; i<=superior; i++)
if(i%7==0)
contador++;
return contador;
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca a y b: 18 30
El MCD es: 6
Press any key to continue
Introduzca a y b: 2 -18
Error en los datos
Press any key to continue
Solucin o soluciones
#include <stdio.h>
int MCD( int a, int b);
void main()
{
int n1,n2,min;
printf("Introduzca a y b: ");
scanf("%d %d",&n1,&n2);
if(n1 <0 || n2 <0)
{
printf("Error en los datos\n");
return;
}
min=MCD(n1,n2);
printf("El MCD es: %d\n",min);
}
int MCD( int a, int b)
{
int i,mcd=1;
for(i=2;i<=a;i++)
{
if(a%i==0 && b%i==0)
mcd=i;
}
return mcd;
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca a y b:6 2
Resultado: 15
Solucin o soluciones
#include <stdio.h>
int factorial (int n);
int combinatorio (int a, int b);
void main()
{
int a,b,c;
printf("Introduzca a y b:");
scanf("%d %d",&a,&b);
c=combinatorio(a,b);
printf("Resultado: %d\n", c);
}
int factorial (int n)
{
int i, aux=1;
for(i=1;i<=n;i++)
aux*=i;
return aux;
}
int combinatorio (int a, int b)
{
return factorial(a)/(factorial(b)*factorial(a-b));
}
ELAI-UPM
Ejemplo de ejecucin
Introduzca un numero entre 1 y 10: -3
Introduzca un numero entre 1 y 10: 11
Introduzca un numero entre 1 y 10: 7
Tabla del 7
7x1=7
(tabla completa)
7 x 9 = 63
Solucin o soluciones
#include<stdio.h>
void TablaMultiplicar(int n);
int PideNumero();
main()
{
int i=PideNumero();
TablaMultiplicar(i);
}
void TablaMultiplicar(int n)
{
int i;
printf("Tabla del %d\n",n);
for (i=1; i<10; i++)
printf("%d x %d = %d\n",n,i,n*i);
}
int PideNumero()
{
int n;
do
{
printf("Introduzca un numero entre 1 y 10: ");
scanf("%d",&n);
}
while(n<1 || n>10);
return n;
}