Está en la página 1de 11

******************************************************** PROGRAMACION APLICADA A LA INGENIERIA CIVIL OOCC GUIA N2 Ayudante: Rodrigo Torres Aguirre/2009 Compilador utilizado:Dev-C++ version 4.9.9.

2 ******************************************************** 1-Dado como entrada dos nmeros enteros, positivos y distintos: a y b, determine si el mayor es mltiplo del menor. Indicacin: considere usar operadores para divisin entera (/ en C/C++) y para resto de divisin 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 mltiplos 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 numricos y genere como salida la suma de los valores pares y la multiplicacin de los impares. Considere que un valor negativo significa que no hay ms datos y no debe ser considerado como dato vlido. #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 trminos 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 trminos de la siguiente serie, y adems 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 aproximacin 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 matrcula, 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 tambin diferenciando por sexo. Considere el fin de datos de matrcula 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: da (1 al 31), mes (1,12) y ao (en nmero), genere como salida la fecha del da siguiente. Indicacin: considere meses de 31 das enero, marzo, mayo, julio, agosto, octubre, diciembre, y todos los restantes de 30 das, salvo febrero que siempre tendra 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 ao:\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 nmeros que se pueden generar a partir de la frmula 4n + 3 son primos. Construya un programa que genere los 100 primeros nmeros de la serie dada por la frmula anterior y en cada caso determine si es que efectivamente el nmero es primo. La comprobacin la puede hacer determinando si el nmero 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 nmero es perfecto si la suma de los divisores del nmero es igual al nmero. Escriba un programa que determine si un nmero ingresado como entrada a un programa es perfecto o no. Por ejemplo 6 y 28 son nmeros 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 nmeros 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 nmero es deficiente si no alcanza a ser perfecto. En este caso, si la suma de los divisores del nmero es menor que el nmero. En el sentido contrario, se dice que un nmero 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 nmero es deficiente, perfecto o abundante. Indique adems 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 nmeros son primos gemelos si ambos son primos y estn 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 nmeros 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 nmeros 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 nmeros 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