Ejercicio 1:
Escriba un programa que encuentre y despliegue el valor máximo y el valor mínimo de un arreglo bidimensional de números enteros también despliegue el índice del renglón y columna que corresponden al valor máximo y mínimo.
Código
#include <iostream.h>
#include <conio.h>
void introdatos(int v[5][4])
{
int r,c;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
cout<<"Dato"<<(r+1)<<","<<(c+1)<<":";
cin>>v[r][c];
} } }
void sumarenglon(int v[5][4])
{
int suma,r,c;
cout<<endl;
cout<<"Suma de renglones"<<endl;
cout<<endl;
for(r=0;r<5;r++)
{
suma=0;
for(c=0;c<4;c++)
{
suma=suma+v[r][c];
}
cout<<"Renglon"<<(r+1)<<": "<<suma<<endl;
} }
void sumacolumna(int v[5][4])
{
int suma,r,c;
cout<<endl;
cout<<"Suma de columnas"<<endl;
cout<<endl;
for(c=0;c<4;c++)
{
suma=0;
for(r=0;r<5;r++)
{
suma=suma+v[r][c];
}
cout<<"La suma de la columna  "<<(c+1)<<" es: "<<suma<<endl;
} }
void imprimetabla(int v[5][4])
{
int r,c;
cout<<endl;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
cout<<v[r][c]<<"\t";
}
cout<<endl;
} }
void maximo(int v[5][4],int &max,int &posr,int &posc)
{
int r,c;
max=v[0][0];
posr=0;
posc=0;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
if(v[r][c]>max)
{
max=v[r][c];
posr=r;
posc=c; } 
} } }
void minimo(int v[5][4],int &min,int &posr,int &posc)
{
int r,c;
min=v[0][0];
posr=0;
posc=0;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
if(v[r][c]<min)
{
min=v[r][c];
posr=r;
posc=c; }
} } }
void main()
{
int valores[5][4];
int max,min,posr,posc,posr1,posc1;
introdatos(valores);
sumarenglon(valores);
sumacolumna(valores);
imprimetabla(valores);
maximo(valores,max,posr,posc);
minimo(valores,min,posr1,posc1);
cout<<"El valor maximo es: "<<max<<" con posicion( "<<posr<<","<<posc<<" )"<<endl;
cout<<"El valor minimo es: "<<min<<" con posicion( "<<posr1<<","<<posc1<<" )"<<endl;
getch();
}
Ejercicio 2:
Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales denominado primero y segundo.Ambos arreglos deben tener dos renglones y 3 columnas.Agregar el metodo para la multiplicacion equiparable. Por ejemplo los elementos [1][2] del arreglo que resulte deben ser la suma de primero [1][2] y segundo [1][2]. Los arreglos primero y segundo son introducidos por el usuario.
Código
#include <iostream.h>
#include <conio.h>
void primera(int primera[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<"Dato: "<<(r+1)<<" , "<<(c+1)<<" : ";
cin>>primera[r][c];
} } }
void segunda(int segunda[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<"Dato: "<<(r+1)<<" , "<<(c+1)<<" : ";
cin>>segunda[r][c];
} } }
void suma(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0;r<2;r++)
{
for(int c=0;c<3;c++)
{
tercera[r][c]=primera[r][c]+segunda[r][c];
} } }
void multiplicacion(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0;r<2;r++)
{
for(int c=0;c<3;c++)
{
tercera[r][c]=primera[r][c]*segunda[r][c];
} } }
void imprimir(int v[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<v[r][c]<<"\t";
}
cout<<endl;
} }
void main()
{
int val[2][3];
int val1[2][3];
int val2[2][3];
int val3[2][3];
cout<<" ---** Tabla 1 **---"<<endl;
cout<<endl;
primera(val);
cout<<endl;
cout<<" ---** Tabla 2 **--- "<<endl;
cout<<endl;
segunda(val1);
suma(val,val1,val2);
multiplicacion(val,val1,val3);
cout<<endl;
cout<<" --------*Tabla 1*------- "<<endl;
cout<<endl;
imprimir(val);
cout<<endl;
cout<<" -------- *Tabla 2*------- "<<endl;
cout<<endl;
imprimir(val1);
cout<<endl;
cout<<" -------*Suma*------- "<<endl;
cout<<endl;
imprimir(val2);
cout<<endl;
cout<<" -----------*Multiplicacion*--------- "<<endl;
cout<<endl;
imprimir(val3);
getch();
}
Ejercicio 3:
Dada la matriz "a" de la forma
a11     a12.....a1m 
a21     a22.....a2m
an1     an2.....anm
La transpuesta de A´ de A está dada por 
a11     a21.....an1
a12     a22.....an2
a1m    a2m.....anm
Esto quiere decir que se obtiene cambiando renglones por columnas y viceversa, formulece un programa para obtener la matriz y la transpuesta.
Código
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void introdatos(int m[4][4])
{
int r,c;
randomize ();
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
m[r][c]=random(100)+1;
} } }
void imprimematriz(int m[4][4])
{
int r,c;
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
cout<<m[r][c]<<"\t";
}
cout<<endl;
} }
void transpuesta(int m[4][4], int m1[4][4])
{
int r,c;
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
m1[c][r]=m[r][c];
} } }
void main()
{
int a[4][4];
int a1[4][4];
introdatos(a);
transpuesta(a,a1);
cout<<endl;
cout<<"Matriz original"<<endl;
cout<<endl;
imprimematriz(a);
cout<<endl;
cout<<"Matriz compuesta"<<endl;
cout<<endl;
imprimematriz(a1);
getch();
}
Ejercicio 4:
Ejercicio 5:
Elaborar un programa que lea el nombre de  10 trabajadores y su produccion mensual por cada uno de los 12 meses del año, en dos arreglos uno para nombres y otro para produccion en los cuales las las "n" corresponden al trabajador.
Se requiere el siguiente reporte
Estacion                               Total Produccion
1                                                 xxxxxxx
2                                                 xxxxxxx
3                                                 xxxxxxx
4                                                 xxxxxxx
.
.
.
15                                               xxxxxxx
Total
Estacion mas productiva:________
Encargado de la Estacion:__________
Cantidad Producida:___________
Código
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void calculoprodanual(int produccion[15][12],int prodtotal[15])
{
int i,j;
for(i=0;i<15;i++)
{
int suma=0;
for(j=0;j<15;j++)
{
suma=suma+produccion[i][j];
cout<<produccion[i][j]<<"\t";
}
cout<<endl;
prodtotal[i]=suma;
}
}
void introdatos(char nombre[15][20],int produccion[15][12])
{
int i,j;
randomize();
for(i=0;i<15;i++)
{
cout<<endl;
cout<<"Nombre del Encargado Estacion "<<(i+1)<<" :";
cin>>nombre[i];
cout<<endl;
for(j=0;j<12;j++)
{
cout<<endl;
produccion[i][j]=random(50000)+1;
cout<<produccion[i][j]<<"     ";
}
cout<<endl;
}
}
void mayorproductividad(int prod_total[15],int &mayor,int &pos)
{
int i;
mayor=prod_total[0];
pos=0;
for (i=1;i<15;i++)
{
if(prod_total[i]>mayor)
{
mayor=prod_total[i];
pos=i;
}
}
}
void main()
{
int prod[15][12];
int ptotal[15];
char nom[15][20];
int may,p1;
introdatos(nom,prod);
calculoprodanual(prod,ptotal);
mayorproductividad(ptotal,may,p1);
cout<<"La estacion mas productiva es:"<<(p1+1)<<endl;
cout<<"Encargado de la estacion:"<<nom[p1]<<endl;
cout<<"Cantidad producida:"<<ptotal[p1]<<endl;
getch();
}
Ejercicio 6:
Calcular un programa que genere una matriz de 10 x 10 en la cual asigne ceros a todos los elementos excepto a los de la diagonal principal donde asignara unos, imprime dicha matriz.
Código
#include <iostream.h>
#include <conio.h>
void asignarvalores(int m[10][10])
{
int r,c;
for (r=0;r<10;r++)
{
for (c=0;c<10;c++)
{
if(r==c)
{
m[r][c]=1;
}
else{ m[r][c]=0; }
} } }
void imprimematriz(int m[10][10])
{
int i;
for (i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
cout<<m[i][j]<<"";
}
cout<<endl;
} }
void main ()
{
int matriz[10][10];
asignarvalores(matriz);
imprimematriz(matriz);
getch ();
}
Ejercicio 7:
Elaborar un programa que de el informe de 10 trabajadores y su producción mensual los 12 meses en 2 arreglos. El informe debe de ir de la siguiente manera:
Nombre                                 Total de producción:
________                             ________________
________                             ________________
________                             ________________
Promedio de producción:______________
Código
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void introdatos(int produccion[10][13])
{
randomize ();
int i,j,suma;
for (i=0;i<10;i++)
{
suma=0;
for (j=0;j<12;j++)
{
produccion[i][j]=random(5000)+1;
suma=suma+produccion[i][j];
cout<<produccion[i][j]<<"\t";
}
produccion[i][12]=suma;
} }
void leernombres(char name[10][25])
{
int i;
for (i=0;i<10;i++)
{
cout<<"Nombre del Trabajador: "<<(i+1)<<" : ";
cin.getline(name[i],25);
} }
void reporte(int produccion[10][13], char name[10][25])
{
int suma,i,prom;
cout<<endl;
cout<<"* Analisis de Produccion *"<<endl;
cout<<endl;
cout<<" Nombre\t Total Produccion "<<endl;
suma=0;
for(i=0;i<10;i++)
{
cout<<name[i]<<" \t "<<produccion[i][12]<<endl;
suma=suma+produccion[i][12]; }
prom=suma/10;
cout<<endl;
cout<<" Promedio de Produccion "<<prom<<endl;
cout<<endl;
cout<<" Listado de Trabajadores Mayores a "<<prom<<endl;
for (i=0;i<10;i++)
{
if (produccion[i][12]>prom)
{
cout<<name[i]<<endl;
} } }
void main ()
{
int p[10][13];
char nom[10][25];
leernombres(nom);
introdatos(p);
reporte(p,nom);
getch();
}
Ejercicio 8:
Realice un programa que cree un archivo con el nombre prueba.txt, con los valores:
10 32 45 66
42 90 35 46
28 76 31 92
Código
#include <fstream.h>
#include <conio.h>
void main()
{
ofstream salida;
salida.open("J://prog//prueba.txt");
salida<<" 10 32 45 66 "<<endl;
salida<<" 42 90 35 46 "<<endl;
salida<<" 28 76 31 92 "<<endl;
salida.close();
cout<<" Datos Almacenados "<<endl;
getch();
}
Ejercicio 9:
Ejecute el archivo creado en el ejercicio 8 en un programa completo. Que realice la suma de los renglones y columnas de los valores dados en el archivo.
Código
#include <fstream.h>
#include <conio.h>
void sumaren(int dato[3][4])
{
int suma,i,j;
cout<<endl;
cout<<"Suma de renglones: "<<endl;
cout<<endl;
for(i=0;i<3;i++)
{
suma=0;
for(j=0;j<4;j++)
{
suma=suma+dato[i][j];
}
cout<<"La suma del renglon: "<<(i+1)<<" es: "<<suma<<endl;
} }
void sumacol(int dato[3][4])
{
int suma,i,j;
cout<<endl;
cout<<"Suma de columnas: "<<endl;
cout<<endl;
for(j=0;j<4;j++)
{
suma=0;
for(i=0;i<3;i++)
{
suma=suma+dato[i][j];
}
cout<<"La suma de las Columnas: "<<(j+1)<<" es: "<<suma<<endl;
} }
void imprimir(int dato[3][4])
{
int i,j;
ifstream entrada;
entrada.open("c://practica 9//prueba.txt");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
entrada>>dato[i][j];
cout<<dato[i][j]<<" ";
}
cout<<endl;
}
entrada.close();
getch();
}
void main ()
{
int dato[3][4];
imprimir(dato);
sumaren(dato);
sumacol(dato);
getch();
}
Ejercicio 10:
Ejercicio 10.1:
Almacene los siguientes datos en un archivo.
10.1
a) 5,96,87,28,13,21,4,92,82,85,87,6,72,69,85,75,81,73.
10.2
b) Escriba un programa para calcular y desplegar el promedio de cada grupo de numeros en el archivo creado en el insciso a).Los datos se han arreglado en el archivo para que cada grupo de numeros, sea presedido por el numero de elementos de datos en el grupo. Entonces  el primer numero en el archivo, indica que los siguientes numeros se deben agrupar juntos. El numero cuatro indica que los siguientes cuatro numeros forman un grupo y el seis indica que los ultimos seis numeros hacen un grupo. 
Código
#include<fstream.h>
#include<conio.h>
void main()
{
ofstream f1;
f1.open("J://prog//grupos.txt");
f1<<5<<endl;
f1<<96<<endl;
f1<<87<<endl;
f1<<78<<endl;
f1<<93<<endl;
f1<<21<<endl;
f1<<9<<endl;
f1<<92<<endl;
f1<<31<<endl;
f1<<57<<endl;
f1<<6<<endl;
f1<<72<<endl;
f1<<69<<endl;
f1<<82<<endl;
f1<<75<<endl;
f1<<81<<endl;
f1<<73<<endl;
f1.close();
cout<<"Grupos almacenados"<<endl;
getch();
}
Ejercicio 10.2:
#include <fstream.h>
#include <conio.h>
void main()
{
ifstream f2;
f2.open("J://prog//grupos.txt");
int n,suma,numero,j,i;
for(i=1;i<=3;i++)
{
suma=0;
f2>>n;
for (j=1;j<=n;j++)
{
f2 >>numero;
suma=suma+numero;
}
int prom=suma/n;
cout<<"El promedio del grupo "<<(i)<<" : "<<prom<<endl;
}
f2.close();
getch();
}
Ejercicio 11:
Ejercicio 11.1:
Escriba un programa que pueda crear un archivo texto llamado voltios y escriba en el los siguientes 5 registros.
11.1
a) 120.3, 122.7, 90.3, 99.8, 95.3, 120.5, 127.3, 120.8, 123.2, 118.4, 123.8, 116.6, 122.4, 95.6, 118.2, 120.0, 123.5, 130.2, 123.9, 124.4.
Código
#include <fstream.h>
#include <conio.h>
void main()
{
ofstream archivo;
archivo.open("J://Prog//voltios.txt");
archivo<<"120.3 122.7 90.3 99.8"<<endl;
archivo<<"95.3 120.5 127.3 120.8"<<endl;
archivo<<"123.2 118.4 123.8 116.6"<<endl;
archivo<<"122.4 95.1 116.7 120.0"<<endl;
archivo<<"123.5 130.2 123.9 129.4"<<endl;
archivo.close();
cout<<"Archivo almacenado"<<endl;
getch();
}
Ejercicio 11.2:
b) Con base a los datos del archivo voltios escriba un programa que lea cada registro en el archivo.
Calcule y despliegue el promedio para cada registro.
Código
#include <fstream.h>
#include <conio.h>
void main()
{
ifstream archivo;
float num,suma,prom;
archivo.open("J://prog//voltios.txt");
for(int i=1;i<=5;i++)
{
suma=0.0;
for(int j=1;j<=4;j++)
{
archivo>>num;
suma=suma+num;
}
prom=suma/4;
cout<<endl;
cout<<"El promedio del registro"<<(i)<<" : "<<prom<<endl;
}
archivo.close();
getch();
}












No hay comentarios:
Publicar un comentario