Está en la página 1de 11

********************************************************

PROGRAMACION APLICADA A LA INGENIERIA CIVIL OOCC


GUIA Nº2
Ayudante: Rodrigo Torres Aguirre/2009
Compilador utilizado:Dev-C++ version 4.9.9.2
********************************************************

1-Dado como entrada dos números enteros, positivos y distintos: a y b, determine si


el mayor es múltiplo del menor. Indicación: considere usar operadores para división
entera (/ en C/C++) y para resto de división entera (% en C/C++).
#include<stdio.h>
#include<conio.h>
main(){
int a,b;
printf("Ingrese el Numero a:");
scanf("%d",&a);
while(a<=0){
printf("Numero ingresado es Incorrecto.\n");
printf("Ingrese el Numero Nuevamente (mayor que cero): ");
scanf("%d", &a);
}
printf("\nIngrese el Numero b:");
scanf("%d",&b);
while(b<=0){
printf("Numero ingresado es Incorrecto.\n");
printf("Ingrese el Numero Nuevamente (mayor que cero): ");
scanf("%d",&b);
}
if(a%b==0){
printf("%d es multiplo de %d",a,b);
}
else if(a%b==1){
printf("%d no es multiplo de %d",a,b);
}
if(b%a==0){
printf("%d es multiplo de %d",b,a);
}
else if(b%a==1){
printf("%d no es multiplo de %d",b,a);
}
getche();
}
----------------------------------------------------------------------------------
2-Dado como entrada cuatro valores enteros: a, b, c, y d, genere como salida todas las
relaciones de igualdad. Esto puede ser "todos son iguales", "son iguales a y b", "son
iguales a, b y c", etc.
#include<stdio.h>
#include<conio.h>
main(){
int a,b,c,d;
printf("Ingrese el numero a:");
scanf("%d",&a);
printf("Ingrese el numero b:");
scanf("%d",&b);
printf("Ingrese el numero c:");
scanf("%d",&c);
printf("Ingrese el numero d:");
scanf("%d",&d);
if(a==b){printf("\ta son iguales b\n");}
else{printf("\ta son distintos b\n");}
if(a==c){printf("\ta son iguales c\n");}
else{printf("\ta son distintos b\n");}
if(a==d){printf("\ta son iguales d\n");}
else{printf("\ta son distintos d\n");}
if(b==c){printf("\tb son iguales c\n");}
else{printf("\tb son distintos c\n");}
if(b==d){printf("\tb son iguales d\n");}
else{printf("\tb son distintos d\n");}
if(d==c){printf("\td son iguales c\n");}
else{printf("\td son distintos c\n");}
if(a==b && b==c){printf("\ta,b,c son iguales\n");}
if(a==c && c==d){printf("\ta,c,d son iguales\n");}
if(a==b && a==d){printf("\ta,b,d son iguales\n");}
if(b==c && c==d){printf("\tb,c,d son iguales\n");}
if(a==b && b==c && c==d){printf("\ttodos son iguales");}
getche();
}
----------------------------------------------------------------------------------
3-Construya un algoritmo que reciba como entrada un cierto valor n, y genere como salida
n veces la palabra "hola".
#include<stdio.h>
#include<conio.h>
main(){
int n,i;
printf("Ingrese el valor de n:");
scanf("%d",&n);
i=1;
while(i<=n){
printf("\t%d-hola\n",i);
i=i+1;
}
getche();
}
----------------------------------------------------------------------------------
4-Construya un algoritmo que reciba como entrada un cierto valor n y genere como salida
el valor de la serie: 1*2 + 2*3 + 3*4 + 4*5 + …+(n-1)*n+n*(n+1)
#include<stdio.h>
#include<conio.h>
main(){
int n,suma,i,a;
printf("Ingrese el numero n:");
scanf("%d",&n);
i=1;
suma=0;
while(i<=n){
a=i*(i+1);
suma=suma+a;
i=i+1;
}
printf("El resultado de la suma es:%d",suma);
getche();
}
----------------------------------------------------------------------------------
5-Construya un algoritmo que reciba como entrada dos valores: a y b, donde a < b. Este
algoritmo debe generar como salida los múltiplos de a que son menores que b.
#include<stdio.h>
#include<conio.h>
main(){
int a,b,i,k;
printf("ingrese a:");
scanf("%d",&a);
printf("ingrese b:");
scanf("%d",&b);
i=1;
if(a<b){
printf("los multiplos de a son:\n");
while(i<b){
if(a%i==0){
printf("\n\t%d",i);
}
i=i+1;
}
}
else{
printf("\ningrese a y b, de tal forma que a<b");
}
getche();
}
----------------------------------------------------------------------------------
6-Construya un algoritmo que reciba como entrada una secuencia de valores numéricos
y genere como salida la suma de los valores pares y la multiplicación de los impares.
Considere que un valor negativo significa que no hay más datos y no debe ser considerado
como dato válido.
#include<stdio.h>
#include<conio.h>
main(){
int n,i,dato,pares,multiplicados;
printf("Ingrese el numero de valores:");scanf("%d",&n);
i=1;
pares=0;
multiplicados=1;
while(i<=n){
printf("Valor:");
scanf("%d",&dato);
if(dato%2==0){
pares=pares+dato;
}
if(dato%2==1){
multiplicados=multiplicados*dato;
}
i=i+1;
}
printf("La suma de los pares es:%d\n",pares);
printf("La multiplicacion de los impares es:%d",multiplicados);
getche();
}
----------------------------------------------------------------------------------
7-Construya un algoritmo que genere como salida los términos de la siguiente
serie: 2, 5, 7, 10, 12, 15, 17,…,1800.
#include<stdio.h>
#include<conio.h>
main(){
int i,pares,impares;
printf("Los terminos de la serie son:\n");
i=0;
while(i<=359){
pares=5*i+2;
impares=5*i+5;
printf("-%d-%d",pares,impares);
i=i+1;
}
getche();
}
----------------------------------------------------------------------------------
8-Construya un algoritmo que genere los términos de la siguiente serie, y además calcule
su valor para un n dado: 1-1/2+1/3-1/4+1/5-...+1/n
#include<stdio.h>
#include<conio.h>
main(){
float suma,n,i;
printf("ingrese la cantidad de terminos:");
scanf("%f",&n);
i=1;
suma=0;
while(i<=n){
suma=suma+pow((double)-1,(double)i+1)*(1/i);
i++;
}
printf("el resultado es:%f",suma);
getche();
}
----------------------------------------------------------------------------------
9-Construya un algoritmo que reciba como entrada un valor n y calcule una aproximación
del valor de e, como la suma de la siguiente serie:
1+1/2!+1/3!+1/4!+1/5!+...+1/n!
#include<stdio.h>
#include<conio.h>
main(){
int n,i;
float suma,den;
printf("Ingrese el valor de n:");
scanf("%d",&n);
i=1;
suma=0;
den=1;
while(i<=n){
den=den*i;
suma=suma+1/den;
i=i+1;
}
printf("Una aproximacion del numero e es:%f",suma);
getche();
}
----------------------------------------------------------------------------------
10-El valor de e^x se puede aproximar por la suma:
1+(x/1!)+(x^2/2!)+(x^3/3!)+(x^4/4!)+...+(x^n/n!) Escriba un algoritmo que tome
valores para x y n como entrada y visualice la suma para los valores proporcionados
desde teclado.
#include<stdio.h>
#include<conio.h>
main(){
int n,i,x;
float suma,pot,f;
printf("Ingrese el valor n:");
scanf("%d",&n);
printf("Ingrese el valor x:");
scanf("%d",&x);
i=1;
pot=1;
suma=1;
f=1;
while(i<=n){
f=f*i;
pot=pot*x;
suma=suma+pot/f;
i=i+1;
}
printf("La suma de e^x es:%f",suma);
getche();
}
----------------------------------------------------------------------------------
11-Escriba un algoritmo que permita imprimir el resultado de la siguiente suma:
Sn(a,b) = 1/a + 1/(a + b) + 1/(a +2b) + 1/ (a + 3b)+…. +1/ (a + nb) ,en donde a, b y
n se ingresan por teclado.
#include<stdio.h>
#include<conio.h>
main(){
int n,i,a,b;
float suma,den;
printf("Ingrese a:");scanf("%d",&a);
printf("Ingrese b:");scanf("%d",&b);
printf("Ingrese n:");scanf("%d",&n);
i=0;
suma=0;
while(i<=n){
den=a+i*b;
suma=suma+(1/den);
i=i+1;
}
printf("El resultado de la suma es Sn(%d,%d)=%f",a,b,suma);
getche();
}
----------------------------------------------------------------------------------
12-Se tiene una tabla con los datos de matrícula, peso, estatura y sexo de los alumnos
de la USACH. Construya un algoritmo que reciba los datos de la tabla antes mencionada,
calcule y genere como salida el promedio de los pesos y de las estaturas. Su algoritmo
debe entregar estos valores considerando todos los individuos y también diferenciando
por sexo. Considere el fin de datos de matrícula con el valor cero (0).
#include<stdio.h>
#include<conio.h>
main(){
int n,i,sexo,matricula,cantHombres,cantMujeres;//a=1(hombre) a=0(mujer)
float promPesoHombres,promPesoMujeres,peso,altura,hombres,estaturaH,
mujeres,estaturaM,X,Y,promedioPeso,promedioAltura;
printf("Ingrese el numero de alumnos:");scanf("%d",&n);
i=1;
hombres=0;
estaturaH=0;
mujeres=0;
estaturaM=0;
cantHombres=0;
cantMujeres=0;
while(i<=n){
printf("\nMatricula:");scanf("%d",&matricula);
printf("Sexo (hombre=1,mujer=0):");scanf("%d",&sexo);
if(matricula>0){
if(sexo==1){
printf("Peso:");scanf("%f",&peso);
printf("Altura:");scanf("%f",&altura);
hombres=hombres+peso;
estaturaH=estaturaH+altura;
cantHombres=cantHombres+1;
}
else{
printf("Peso:");scanf("%f",&peso);
printf("Altura:");scanf("%f",&altura);
mujeres=mujeres+peso;
estaturaM=estaturaM+altura;
cantMujeres=cantMujeres+1;
}
}
promPesoHombres=hombres/cantHombres;
promPesoMujeres=mujeres/cantMujeres;
X=estaturaH/cantHombres;
Y=estaturaM/cantMujeres;
promedioPeso=(hombres+mujeres)/(cantHombres+cantMujeres);
promedioAltura=(estaturaH+estaturaM)/(cantHombres+cantMujeres);
i=i+1;
}
printf("\nEl promedio de peso entre hombres:%f",promPesoHombres);
printf("\nEl promedio de peso entre mujeres:%f",promPesoMujeres);
printf("\nEl promedio de altura entre hombres:%f",X);
printf("\nEl promedio de altura entre mujeres:%f",Y);
printf("\nEl promedio total del peso de los alumnos:%f",promedioPeso);
printf("\nEl promedio total de la altura de los alumnos:%f",promedioAltura);
getche();
}
----------------------------------------------------------------------------------
13-Dado como entrada un fecha expresada en: día (1 al 31), mes (1,12) y año (en número),
genere como salida la fecha del día siguiente. Indicación: considere meses de 31 días
enero, marzo, mayo, julio, agosto, octubre, diciembre, y todos los restantes de 30 días,
salvo febrero que siempre tendría 28.
#include<stdio.h>
#include<conio.h>
main(){
int dia,mes,ano,nuevodia,nuevomes,nuevoano;
printf("***Ingrese la Fecha***\n");
printf("Lista de los meses del año:\n");
printf("\t1-Enero\n \t2-Febrero\n \t3-Marzo\n \t4-Abril\n \t5-Mayo\n");
printf("\t6-Junio\n \t7-Julio\n \t8-Agosto\n \t9-Septiembre\n");
printf("\t10-Octubre\n \t11-Noviembre\n \t12-Diciembre\n");
printf("\n-Ingrese el mes (entre 1 y 12):");
scanf("%d", &mes);
//Se puede ingresar desde el mes 1 al 12, en el caso contrario
//debera ingresarse el mes nuevamente
while(mes<1 || mes>12){
printf("\nMes ingresado incorrecto.\n");
printf("Ingrese el mes nuevamente: ");
scanf("%d", &mes);
}
//Mes de Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre
if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12){
printf("\n-Ingrese el dia: ");scanf("%d", &dia);
//Se pueden ingresar numeros desde el 1 hasta la indicacion en el
//enunciado del problema
while(dia < 1 || dia>31){
printf("Dia ingresado incorrecto.\n");
printf("Ingrese el dia nuevamente: ");scanf("%d", &dia);
}
printf("\n-Ingrese el ano: ");scanf("%d", &ano);
if(dia<31 && mes!=12){
nuevodia=dia+1;
nuevomes=mes;
nuevoano=ano;
}
else if(dia==31 && mes!=12){
nuevodia=1;
nuevomes=mes+1;
nuevoano=ano;
}
else if(dia==31 && mes==12){
nuevodia=1;
nuevomes=1;
nuevoano=ano+1;
}
}
//Mes de Abril, Junio, Septiembre y Noviembre
if(mes==4 || mes==6 || mes==9 || mes==11){
printf("\n-Ingrese el dia: ");scanf("%d", &dia);
while(dia < 1 || dia>30){
printf("Dia ingresado incorrecto.\n");
printf("Ingrese el dia nuevamente: ");scanf("%d", &dia);
}
printf("\n-Ingrese el ano: ");scanf("%d", &ano);
if(dia<30){
nuevodia=dia+1;
nuevomes=mes;
nuevoano=ano;
}
else if(dia==30){
nuevodia=1;
nuevomes=mes+1;
nuevoano=ano;
}
}
//Mes de Febrero
if(mes==2){
printf("\n-Ingrese el dia: ");scanf("%d", &dia);
while(dia < 1 || dia>28){
printf("Dia ingresado incorrecto.\n");
printf("Ingrese el dia nuevamente: ");scanf("%d", &dia);
}
printf("\n-Ingrese el ano: ");scanf("%d", &ano);
if(dia<28){
nuevodia=dia+1;
nuevomes=mes;
nuevoano=ano;
}
else if(dia==28){
nuevodia=1;
nuevomes=mes+1;
nuevoano=ano;
}
}
//RESULTADOS
printf("\n\n-La fecha es: %d/%d/%d\n",dia,mes,ano);
printf("-La fecha del dia siguiente es:%d/%d/%d\n",nuevodia,nuevomes,nuevoano);
getche();
}
----------------------------------------------------------------------------------
14-Se dice que todos los números que se pueden generar a partir de la fórmula
4n + 3 son primos. Construya un programa que genere los 100 primeros números de la serie
dada por la fórmula anterior y en cada caso determine si es que efectivamente el número
es primo. La comprobación la puede hacer determinando si el número tiene o no divisores.
#include<stdio.h>
#include<conio.h>
#define n 100
main(){
int i,j,cont,p;
for(i=0;i<n;i++){
p=(4*i)+3;
cont=0;
for(j=1;j<=p;j++){
if(p%j==0){
cont=cont+1;
}
}
if(cont==2){
printf("\n%d) El numero %d es Primo",i+1,p);
}
}
getche();
}
----------------------------------------------------------------------------------
15-Se dice que un número es perfecto si la suma de los divisores del número es igual
al número. Escriba un programa que determine si un número ingresado como entrada a un
programa es perfecto o no. Por ejemplo 6 y 28 son números perfectos.[Los numeros
perfectos estan dados por:(2^(n-1))*((2^n)-1)]
#include<stdio.h>
#include<conio.h>
main(){
int i,n,sum=0;
printf("Ingrese un numero:");
scanf("%d",&n);
printf("Los multiplos de a son:\n");
for(i=1;i<n;i++){
if(n%i==0){
printf("%d ",i);
sum=sum+i;
}
}
if(n==sum){
printf("\n\nEl numero %d es perfecto",n);
}
else{
printf("\n\nEl numero %d NO es perfecto",n);
}
getche();
}
----------------------------------------------------------------------------------
16-Escriba otro programa que determine los números perfectos que existen en un rango
de 1 a n, donde n es una entrada del programa.
#include<stdio.h>
#include<conio.h>
main(){
int i,j,n,sum;
printf("Ingrese el numero Limite Superior del Rango:");
scanf("%d",&n);

for(i=1;i<=n;i++){
sum=0;
for(j=1;j<i;j++){
if(i%j==0){
sum=sum+j;
}
}
if(i==sum){
printf("\n\nEl numero %d es perfecto",i);
}
}
getche();
}
----------------------------------------------------------------------------------
17-Se dice que un número es deficiente si no alcanza a ser perfecto. En este caso, si
la suma de los divisores del número es menor que el número. En el sentido contrario,
se dice que un número es abundante si la suma de sus divisores lo sobrepasa. Construya
un programa que para un rango de 1 a n, siendo n una entrada del programa, determine
si el número es deficiente, perfecto o abundante. Indique además el total de cada uno
de ellos en ese rango.
#include<stdio.h>
#include<conio.h>
main(){
int i,j,n,sum,perfectos=0,abundantes=0,deficientes=0;
printf("Ingrese el numero Limite Superior del rango:");
scanf("%d",&n);

for(i=1;i<=n;i++){
sum=0;
for(j=1;j<i;j++){
if(i%j==0){
sum=sum+j;
}
}
if(i==sum){
printf("\nEl numero %d es Perfecto",i);
perfectos++;
}
else if(i>sum){
printf("\nEl numero %d es Deficiente",i);
deficientes++;
}
else if(i<sum){
printf("\nEl numero %d es Abundante",i);
abundantes++;
}
}
printf("\n\n");
printf("\nLa cantidad de numeros Perfectos son:%d",perfectos);
printf("\nLa cantidad de numeros Deficientes son:%d",deficientes);
printf("\nLa cantidad de numeros Abundantes son:%d",abundantes);
getche();
}
----------------------------------------------------------------------------------
18-Se dice que dos números son primos gemelos si ambos son primos y están separados
por una distancia de 2. Por ejemplo, primos gemelos conocidos son:
3 y 5; 5 y 7; 11 y 13; 17 y 19, etc. Construya un programa que dado dos números n1 y
n2 indique si son primos gemelos o no.
#include<stdio.h>
#include<conio.h>
main(){
int i,n1,n2,cont;
printf("Ingrese el primer numero:");scanf("%d", &n1);
printf("Ingrese el segundo numero:");scanf("%d", &n2);
cont=0;
for(i=1;i<=n1;i++){
if(n1%i==0){
cont=cont+1;
}
}
if(cont==2){
printf("\nEl numero %d es Primo",n1);
}
cont=0;
for(i=1;i<=n2;i++){
if(n2%i==0){
cont=cont+1;
}
}
if(cont==2){
printf("\nEl numero %d es Primo",n2);
}
if(n1+2==n2 || n2+2==n1){
printf("\nLos numeros son primos gemelos");
}
else{
printf("\nLos numeros No son primos gemelos");
}
getche();
}
----------------------------------------------------------------------------------
19-Construya un programa que dado un rango de 1 a n, siendo n una entrada del programa,
determine los primos gemelos que se encuentren en ese rango.
#include<stdio.h>
#include<conio.h>
main(){
int i,j,n,cont1,cont2;
printf("Ingrese el numero Limite Superior del Rango:");
scanf("%d",&n);
printf("\nLos numeros son primos gemelos entre 1 y %d son:\n",n);
for(i=1;i<=n;i++){
cont1=0;
for(j=1;j<=i;j++){
if(i%j==0){
cont1=cont1+1;
}
}
cont2=0;
for(j=1;j<=(i-2);j++){
if((i-2)%j==0){
cont2=cont2+1;
}
}
if(cont1==2 && cont2==2){
printf("\nEl numero %d es Primo",i-2);
printf("\nEl numero %d es Primo",i);
printf("\nLos numeros son primos gemelos");
printf("\n\n");
}
}
getche();
}
----------------------------------------------------------------------------------
20-Se dice que dos números son amigos si la suma de los divisores de uno dan como resultado
el valor del otro y viceversa. Construya un programa que determine si dos números n1
y n2 ingresados por teclado son amigos.
//Un ejemplo de numeros amigos son el numero 220 y 284.
//Los divisores de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que
//suman 284.
//Los divisores de 284 son 1, 2, 4, 71 y 142, que suman 220.
#include<stdio.h>
#include<conio.h>
main(){
int i,j,n1,n2,sum1,sum2;
printf("Ingrese el primer numero:");scanf("%d", &n1);
printf("Ingrese el segundo numero:");scanf("%d", &n2);
sum1=0;
printf("\nLos multiplos de %d son:",n1);
for(i=1;i<n1;i++){
if(n1%i==0){
printf("%d ",i);
sum1=sum1+i;
}
}
sum2=0;
printf("\nLos multiplos de %d son:",n2);
for(j=1;j<n2;j++){
if(n2%j==0){
printf("%d ",j);
sum2=sum2+j;
}
}
if(n1==sum2 && n2==sum1){
printf("\n\nLos numeros %d y %d son amigos",n1,n2);
}
else{
printf("\n\nLos numeros %d y %d NO son amigos",n1,n2);
}
getche();
}
----------------------------------------------------------------------------------

También podría gustarte