Download - 3 unidad
3ER INFORME
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL
ING. CARLOS ROMERO SHOLLANDE
BARRIOS URBINA ADMER
TRUJILLO – PERU
2011
CURSO:
LENGUAJE DE PROGRAMACION
CAPITULO 9 – PROCEDIMIENTOS Y FUNCIONES
EJERCICIO 2:
Ingresar dos datos. Si el primero es menor que el segundo, calcular los factoriales de
ambos datos, y reportar el cociente del factorial del primero entre el doble del factorial
del segundo. En caso contrario, determinar las sumas acumulativas de los números
naturales hasta dichos datos, luego reportar el producto de dichas sumas. Crear las
funciones factorial() y sumatoria().
CODIFICACION:
#include<iostream.h>
#include<conio.h>
main(){
int n,m,s,s1,s2,x;
long int a,b;
float c;
int sumatoria(int);
long int factorial(int);
clrscr();
cout<<"Ingresar el primer dato: ";cin>>n;
cout<<"Ingresar el segundo dato: ";cin>>m;
cout<<endl;
if(n<m){
a=factorial(n); b=factorial(m);
c=(float)a/(2*b);
cout<<"El cociente del dato1 entre el doble del dato2 es: "<<c;}
else{
s1=sumatoria(n); s2=sumatoria(m);
s=s1*s2;
cout<<"El producto de las sumas acumulativas de los datos son: "<<s;}
getch();
}
long int factorial(int x){
register int i;
auto long int t=1;
for(i=1;i<=x;i++)t=t*i;
return(t);}
int sumatoria(int x){
int i;
int s=0;
for(i=1;i<=x;i++)s=s+i;
return(s);}
EJERCICIO 4:
Ingresar dos datos. En caso de que cualquiera de ellos sea impar, calcular el factorial
del primer dato y la suma acumulativa de los naturales hasta el segundo dato y luego
reportar el resto o residuo de la división de ambos. En caso contrario, determinar la
combinatoria teniendo en cuenta que el mayor de ellos equivale al numero total de
elementos y que el numero de elementos de cada grupo es 3.
CODIFICACION:
#include<iostream.h>
#include<conio.h>
main(){
int n1,n2,a,s,r;
long int factorial(int);
int suma(int);
float m,c,d,e,g,h,f;
clrscr();
cout<<"Ingresar el primer dato: ";cin>>n1;
cout<<endl;
cout<<"Ingresar el segundo dato: ";cin>>n2;
cout<<endl;
if((n1%2)!=0 || (n2%2)!=0){
a=factorial(n1); s=suma(n2);
r=(a%s);
cout<<"El resto del factorial y la suma de los datos es: "<<r;}
else{
if(n1>n2){
c=factorial(n1); d=factorial((n1)-3);
f=(float)c/(6*d);
cout<<"La combinatoria del mayor dato es: "<<f;}
else{
e=factorial(n2); g=factorial((n2)-3);
h=(float)e/(6*g);
cout<<"La combinatoria del mayor dato es: "<<h;}}
getch();
}
long int factorial(int x){
register int i;
auto long int t=1;
for(i=1;i<=x;i++)t=t*i;
return(t);}
int suma(int x){
register int j;
auto int r=0;
for(j=1;j<=x;j++)r=r+j;
return(r);}
EJERCICIO 6:
Llenar un vector de 20 elementos con los primeros veinte números de fibonacci, crear
la función de fibonacci(). Calcular la suma de los elementos que se ubican en las
posiciones pares de dicho vector. Reportar el vector y la suma encontrados. Los dos
primeros elementos de esta serie son 0 y 1, y el resto de los elementos se calculan
sumando los dos predecesores inmediatos.
CODIFICACIÓN:
#include<iostream.h>
#include<conio.h>
main(){
int u,i,s,x[20],p[20];
int fibonacci(int*);
cout<<"Los 20 primeros terminos fibonacci son: "<<endl;
fibonacci(x);
cout<<endl;
cout<<endl;
s=0;
for(i=1;i<=20;i++){
if((i%2)!=0){
s=s+*(x+i);}}
cout<<"La suma de los elementos pares de fibonacci es: "<<s;
getch();
}
fibonacci(int x[20]){
int i;
*(x+1)=0;
*(x+2)=1;
cout<<*(x+1)<<" "<<*(x+2)<<" ";
for(i=3;i<=20;i++){
*(x+i)=*(x+1)+*(x+2);
cout<<*(x+i)<<" ";
*(x+1)=*(x+2); *(x+2)=*(x+i);}
}
CAPITULO 10 – RECURSIVIDAD
EJERCICIO 1:
Utilizar una función recursiva para calcular la suma: 1+2+3+…+(n-1)+n
CODIFICACIÓN:
#include<iostream.h>
#include<conio.h>
void main(){
int n;
int sumatoria(int);
clrscr();
cout<<"Ingresar el numero de elementos de la sumatoria de los naturales"<<endl;
cin>>n;
cout<<"La sumatoria de los "<<n<<" numeros naturales son: "<<sumatoria(n);
getch();
}
int sumatoria(int x){
if(x<=1)return 1;
else return x+sumatoria(x-1);}
EJERCICIO 2:
Utilizar una función recursiva que permita calcular la combinatoria de n elementos
tomados en grupos de k.
CODIFICACIÓN:
#include<iostream.h>
#include<conio.h>
void main(){
int n,k;
long int f,g,h;
float c;
long int factorial(int);
clrscr();
cout<<"Ingresar el numero de elementos a combinar: ";cin>>n;
cout<<endl;
cout<<"Ingresar el numero de elementos de los grupos: ";cin>>k;
f=factorial(n); g=factorial(k); h=factorial(n-k);
c=(float)f/(g*h);
cout<<endl;
cout<<"La combinatoria de "<<n<<" en "<<k<<" es: "<<c;
getch();
}
long int factorial(int x){
if(x<=1)return(1);
else return x*factorial(x-1);}
EJERCICIO 2:
Utilizar un procedimiento recursivo que permita contar las palabras de una frase.
CODIFICACIÓN:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void main(){
char f[20];
void conteo(char*);
clrscr();
cout<<"Ingresar la frase: "<<endl;
gets(f);
cout<<endl;
conteo(f);
getch();
}
void conteo(char x[20]) {
int s,r,i;
s=0;
for(i=0;x[i];i++){
if(x[i]==' ')s=s+1;}
r=s+1;
cout<<"El numero de palabras de la frase es: "<<r; }
CAPITULO 11 – ESTRUCTURAS
EJERCICIO 4:
Crear un arreglo de estructura con los datos de los estudiantes de la Escuela de
Ingeniería Industrial de una Universidad (Apellidos y Nombres, Código y Sexo), luego
reportar lo siguiente:
Total de los estudiantes de sexo masculino
Total de los estudiantes de sexo femenino
Listado de los estudiantes de sexo masculino
Listado de los estudiantes de sexo femenino
Listado completo de estudiantes ordenado alfabéticamente
CODIFICACIÓN:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
main(){
struct universidad{
char nombre[20];
char codigo[5];
char sexo[2];}alumno[10];
int i,n,s,r,j;
char t[10];
clrscr();
cout<<"Ingresar el numero de alumnos: ";cin>>n;
cout<<endl<<endl;
cout<<"Ingresar los datos de los alumnos: "<<endl<<endl;
for(i=1;i<=n;i++){
cout<<"Ingresar el nombres y apellido del alumno: ";gets(alumno[i].nombre);
cout<<"Ingresar el sexo del alumno: ";gets(alumno[i].sexo);
cout<<"Ingresar el codigo del alumno: ";gets(alumno[i].codigo);
cout<<endl<<endl;}
s=0;
cout<<"La lista de alumnos varones son: "<<endl;
for(i=1;i<=n;i++){
if(strcmp(alumno[i].sexo,"m")==0){s=s+1;
cout<<alumno[i].nombre<<endl;}}
cout<<endl;
cout<<"El total de estudiantes masculinos: "<<s<<endl;
cout<<endl;
r=0;
cout<<"La lista de alumnas mujeres son: "<<endl;
for(i=1;i<=n;i++){
if(strcmp(alumno[i].sexo,"f")==0){r=r+1;
cout<<alumno[i].nombre<<endl;}}
cout<<endl;
cout<<"El total de estudiantes femeninos: "<<r<<endl;
cout<<endl;
for(i=1;i<=n-1;i++){
for(j=i+1;j<=n;j++){
if(strcmp(alumno[i].nombre,alumno[j].nombre)>0){
strcpy(t,alumno[i].nombre);
strcpy(alumno[i].nombre,alumno[j].nombre);
strcpy(alumno[j].nombre,t);}}}
cout<<"La lista ordenada alfabeticamente es:"<<endl;
for(i=1;i<=n;i++){
cout<<alumno[i].nombre<<endl;}
getch();
}