lunes, 9 de mayo de 2011

practica 9

problema 1
Escriba un programa que almacene los nombres y calificaciones de 30 alumnos desplegando una tabla, asi como la lista de aprobados, el promedio del grupo y el promedio mas alto.


programa

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>


void introdatos(float M[10][5])
{int r, c;
float suma;
randomize();
for(r=0; r<10; r++)
{suma=0;
for(c=0; c<4; c++)
{M[r][c]=(float)random(100)+1;
suma=suma+M[r][c];}
M[r][4]=suma/4;}}


void imprimetabla(float M[10][5], char nombre[10][25])
{int r, c;
cout<<"Alumnos\t\t 1ro 2do 3ro 4to prom"<<endl<<endl;
for(r=0; r<10; r++)
{cout<<"Alumno "<<(r+1)<<": "<<nombre[r]<<"\t";
for(c=0; c<5; c++)
{cout<<M[r][c]<<"\t";}
cout<<endl;}}


void intronombre(char nombre[10][25])
{int i;
for(i=0; i<10; i++)
{cout<<"Nombre "<<(i+1)<<": ";
cin.getline(nombre[i], 25, '\n');}}


void imprimeaprobados(float M[10][5], char nombre[10][25])
{cout<<"Listado de alumnos aprobados "<<endl<<endl;
cout<<"Nombre Promedio"<<endl;
for(int I=0; I<10; I++)
{if(M[I][4]>=70)
{cout<<nombre[I]<<" "<<M[I][4]<<endl;}}}
float promedio(float M[10][5])
{float prom;
float suma=0;
for(int i=0; i<10; i++)
{suma=suma+M[i][4];}
prom=suma/10;
return prom;}
float mayor(float M[10][5])
{float mayor1=0;
for(int i=0; i<10; i++)
{if(M[i][4]>mayor1)
{mayor1=M[i][4];
}}
return mayor1;}
 void main()
{char n[10][25];
float M[10][5];
introdatos(M);
intronombre(n);
cout<<endl;
imprimetabla(M, n);
cout<<endl;
imprimeaprobados(M, n);
cout<<endl;
cout<<"Promedio General: "<<promedio(M)<<endl<<endl;
cout<<"Promedio mas alto: "<<mayor(M);
getch();
}









problema 2


Un ingeniero  elaboró un arreglo bidimensional con números reales con 3 renglones y 5 columnas.
Este arreglo contiene los voltajes de prueba obtenidos de un amplificador. Escriba un programa que introduzca de forma interactiva 15 valores del arreglo y que determine el número total de voltajes cuyos rangos sean menores de 60, mayores o iguales a 60, menores de 70, mayores o iguales a 70, menores de 80, mayores o iguales a 80, menores a 90 y mayores o iguales a 90.


programa

#include <iostream.h>
#include <conio.h>

void intronum(float v[5][3])
{
int a,b;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
cout<<"Introdusca voltaje "<<(b+1)<<" Prueba "<<(a+1)<<endl;
cin>>v[a][b];
}
}
}
float num(float v[5][3])
{
int a,b,c;
c=0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
if(v[a][b]<60)
c=c+1;
}
}
return c;
}
float num1(float v[5][3])
{
int a,b,c;
c=0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
if(v[a][b]>=60 && v[a][b]<70)
c=c+1;
}
}
return c;
}

float num2(float v[5][3])
{
int a,b,c;
c=0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
if(v[a][b]>=70 && v[a][b]<80)
c=c+1;
}
}
return c;
}
float num3(float v[5][3])
{
int a,b,c;
c=0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
if(v[a][b]>=80 && v[a][b]<90)
c=c+1;
}
}
return c;
}
float num4(float v[5][3])
{
int a,b,c;
c=0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
if(v[a][b]>=90)
c=c+1;
}
}
return c;
}
void main()
{
float a,b,c,d,x;
float v[5][3];
intronum(v);
x=num(v);
a=num1(v);
b=num2(v);
c=num3(v);
d=num4(v);
cout<<"Los valores que estan entre el rango menores a 60 son "<<x<<endl;
cout<<"Los valores que estan entre el rango de 60 a 70 son "<<a<<endl;
cout<<"Los valores que estan entre el rango de 70 a 80 son "<<b<<endl;
cout<<"Los valores que estan entre el rango de 80 a 90 son "<<c<<endl;
cout<<"Los valores que estan entre el rango de 90 en adelante son "<<d<<endl;
getch();
}






problema 3
Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales  denominados “primero” y “segundo”. Ambos arreglos deben de tener “m” renglones y “n” columnas. Por ejemplo los elementos [1][2] del arreglo que resulte deban ser la suma del primero y del segundo. Los arreglos “primero” y “segundo” deben inicializarse con números aleatorios. El valor de “m” y “n” defínalo con un valor constante.


programa

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
const int m=4;
const int n=3;
void intro(int a[m][n], int b[m][n])
{
int i,c;
randomize();
for(i=0;i<m;i++)
{
for(c=0;c<n;c++)
{
a[i][c]=random(10000)+1;
b[i][c]=random(10000)+1;
}
}
}
void imprimedatos(int a[m][n],int b[m][n],int d[m][n])
{
int i,c;
cout<<"Primer +   Segundo =  Tercero"<<endl;
for(i=0;i<m;i++)
{
for(c=0;c<n;c++)
{
cout<<a[i][c]<<"\t + "<<b[i][c]<<"\t =   "<<d[i][c]<<endl;
}
}
}
void sumar(int a[m][n],int b[m][n],int c[m][n])
{
int i,x;
for(i=0;i<m;i++)
{
for(x=0;x<n;x++)
{
c[i][x]=a[i][x]+ b[i][x];
}
}
}
void main()
{
int primer[m][n],segundo[m][n],tercer[m][n];
intro(primer,segundo);
sumar(primer,segundo,tercer);
imprimedatos(primer,segundo,tercer);
getch();
}









problema 4
Escriba un programa que encuentre y despliegue el valor máximo en  un arreglo bidimensional en números enteros. El arreglo debe declararse de 4 x 5 en números enteros, despliegue los números subíndice del renglón y columna que correspondan al valor máximo.


programa

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void intro(int a[4][5])
{
int i,c;
randomize();
for(i=0;i<4;i++)
{
for(c=0;c<5;c++)
{
a[i][c]=random(10000)+1;
}
}
}
void Maximo(int a[4][5],int &maximo,int &psr,int &psc)
{
int i,c;
for(i=0;i<4;i++)
{
for(c=0;c<5;c++)
{
if (a[i][c]>maximo)
{
maximo=a[i][c];
psr=i+1;
psc=c+1;
}
}
}
}
void imprimir(int a[4][5],int maximo,int psr,int psc)
{
int i,c;
for(i=0;i<4;i++)
{
for(c=0;c<5;c++)
{
cout<<a[i][c]<<"\t";
}
cout<<endl;
}
cout<<"El maximo es "<<maximo<<endl;
cout<<"Y esta en el renglon "<<psr<<endl;
cout<<"Columna "<<psc<<endl;
}
void main()
{
int x[4][5],maximo,psr,psc;
intro(x);
Maximo(x,maximo,psr,psc);
imprimir(x,maximo,psr,psc);
getch();
}







problema 5


Un examen final tiene 100 preguntas de elección múltiple. Cada pregunta tiene 5 respuestas a elegir, de las cuales solo una es la correcta.
Donde respuestas contiene las respuestas correctas del examen, escore es una matriz cuyos renglones son las respuestas a las 100 preguntas de elección múltiple dadas por los estudiantes y el vector name está compuesto por el nombre de ellos. Las respuestas de cada pregunta se codifican entre 1 y 5 cuando se inicio más de una respuesta esta posibilidad se indica con 6. Diseñe un programa cuyas salidas sean los nombres de los estudiantes     que aprobaron el examen. Se requiere una calificación mínima de 70 para aprobar.
programa

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void respuestas(int a[100])
{
int i;
for(i=0;i<100;i++)
{
a[i]=random(6)+1;
}
}
void ralumno(int n,int b[50][100])
{
int i,j;
for(j=0;j<n;j++)
{
for(i=0;i<100;i++)
{
b[j][i]=random(6)+1;
}
}
}
void nombre(int n,char alumno[50][25])
{
int i;
cin.ignore();
for(i=0;i<n;i++)
{
cout<<"Inserte nombre "<<(i+1)<<endl;
cin.getline(alumno[i],25,'\n');
}
}
void comparar(int n,int a[100],int b[50][100],int calificacion[50])
{
int i,j,suma;
for(j=0;j<n;j++)
{
suma=0;
for(i=0;i<100;i++)
{
if(a[i]==b[j][i])
{
suma=suma+1;
}
calificacion[j]=suma;
}
}
}
void Imprimir(int b[50][100],int n,int calificacion[50],char alumno[50][25])
{
int j;
for(j=0;j<n;j++)
{
if(calificacion[j]>=70)
cout<<alumno[j]<<" "<<calificacion[j]<<endl;
}
}
void main()
{
randomize();
int a[100],b[50][100],n,calificacion[50];
char alumno[50][25];
cout<<"Numero de Alumnos "<<endl;
cin>>n;
nombre(n,alumno);
respuestas(a);
ralumno(n,b);
comparar(n,a,b,calificacion);
Imprimir(b,n,calificacion,alumno);
getch();
}







problema 6
Una compañía manufacturera tiene 12 plantas. Elaborar un programa que permita leer el nombre de cada planta y la producción que se hizo en cada uno de los 7 días de la semana; utilizar un arreglo de una dimensión para leer los nombres de las plantas y un arreglo de 2 dimensiones (12x 7) para leer la producción de las 12 plantas los 7 días. La idea es leer el nombre de la planta y luego la producción hecha en cada uno de los 7 días.


programa

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>




void intro_prod(int prod[12][7],char planta[12][20])

{

int r,c;

randomize();

for(r=0;r<12;r++)

{

cout<<"Nombre de la Planta"<<(r+1)<<endl;

cin>>planta[r];

for(c=0;c<7;c++)

{

prod[r][c]=random(1000)+1;

}

}

}




void proplanta(int prod[12][7], int total[12])

{

int suma,r,c;

for(r=0;r<12;r++)

{

suma=0;

for(c=0;c<7;c++)

{

suma=prod[r][c]+suma;

}

total[r]=suma;

}

}

void prodia(int prod[12][7], int totaldia[7])

{

int r,c,suma;

for(c=0;c<7;c++)

{

suma=0;

for(r=0;r<12;r++)

{

suma=prod[r][c]+suma;

}

totaldia[c]=suma;

}

}




void producciontotal(int total[12],int & sumatoria)

{

sumatoria=0;

int r;

for(r=0;r<12;r++)

{

sumatoria=total[r]+sumatoria;

}

}




void maximaprod(int total[12],int & maximo,int & p)

{

int r;

maximo=0;

for(r=0;r<12;r++)

{

if(maximo<total[r])

{

maximo=total[r];

p=r;

}

}

}




void imprimir(int prod[12][7],int total[12],int totaldia[7],int & maximo,int &p,char planta[12][20],int sumatoria)

{

int r,c;

cout<<"Reporte Semanal de Produccion"<<endl;

cout<<"Planta"<<"\t"<<"Dia1"<<"\t"<<"Dia2"<<"\t"<<"Dia3"<<"\t"<<"Dia4"<<"\t"<<"Dia5"<<"\t"<<"Dia6"<<"\t"<<"Dia7"<<"\t"<<"Produccion Semanal"<<endl;

for(r=0;r<12;r++)

{

cout<<planta[r]<<"\t";

for(c=0;c<7;c++)

{

cout<<prod[r][c]<<"\t";

}

cout<<total[r]<<endl;

}

cout<<"Totales  ";

for(c=0;c<7;c++)

{

cout<<totaldia[c]<<"\t";

}

cout<<sumatoria<<endl;

cout<<"Planta mas Productiva "<<planta[p]<<endl;

cout<<"Produccion de la planta mas productiva "<<maximo<<endl;

}





void main()

{

int prod[12][7],total[12],totaldia[7],maximo,p,sumatoria;

char planta[12][20];

intro_prod(prod,planta);

proplanta(prod,total);

prodia(prod,totaldia);

maximaprod(total,maximo,p);

producciontotal(total,sumatoria);

imprimir(prod,total,totaldia,maximo,p,planta,sumatoria);

getch();

}







problema 7


Elaborar un programa de 10 trabajadores, mensual (producción) por cada uno de los 12 meses del año.

programa
#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

void intro_prod(int prod[10][12],char nombre[10][20])

{

int r,c;

randomize();

for(r=0;r<10;r++)

{

cout<<"Nombre "<<(r+1)<<endl;

cin>>nombre[r];

for(c=0;c<12;c++)

{

prod[r][c]=random(1000)+1;

}

}

}

void totaln(int prod[10][12], int total[10])

{

int suma,r,c;

for(r=0;r<10;r++)

{

suma=0;

for(c=0;c<12;c++)

{

suma=prod[r][c]+suma;

}

total[r]=suma;

}

}

void prom(int total[10],float & promedio)

{

int r;

float l,suma;

suma=0;

for(r=0;r<10;r++)

{

suma=suma+total[r];

}

l=r;

promedio=suma/l;

}

void imprimir(int prod[10][12],int total[10],char nombre[10][20],float promedio)

{

int r,c;

cout<<"Analisis de Produccion"<<endl;

cout<<"Nombre"<<"  Produccion Anual"<<endl;

for(r=0;r<10;r++)

{

cout<<nombre[r]<<"\t"<<total[r]<<endl;

}

cout<<"Promedio de la Produccion:"<<promedio<<endl;

}



void main()

{

int prod[10][12],total[10];

float promedio;

char nombre[10][20];

intro_prod(prod,nombre);

totaln(prod,total);

prom(total,promedio);

imprimir(prod,total,nombre,promedio);

getch();

}







problema 8
Una matriz es nula si todos sus elementos son iguales a 0. Elaborar un programa que lea una matriz de números de 5 x 4 e indique si la matriz es nula o no.


programa
#include <iostream.h>

#include <conio.h>

void matriz(int a[5][4])

{

int b,c,h;

h=0;

cout<<"Introdusca datos"<<endl;

for(b=0;b<5;b++)

{

for(c=0;c<4;c++)

{

cin>>a[b][c];

}

}

for(b=0;b<5;b++)

{

for(c=0;c<4;c++)

{

if(a[b][c]!=0)

{

h=h+1;

}

}

}

if(h!=0)

cout<<"No es nula"<<endl;

else

cout<<"Es nula"<<endl;

}

void main()

{

int a[5][4];

matriz(a);

getch();

}







problema 9 
Generar una matriz de 10 x 10 con ceros en los elementos en la diagonal principal; a las demás colocar un numero e imprimilo.


programa
#include <iostream.h>

#include <conio.h>

void matriz(int a[10][10])

{

int b,c;

for(b=0;b<10;b++)

{

for(c=0;c<10;c++)

{

if(b==c)

{

a[b][c]=0;

}

else

a[b][c]=1;

}

}

}

void imprimir(int a[10][10])

{

int b,c;

for(b=0;b<10;b++)

{

for(c=0;c<10;c++)

{

cout<<a[b][c];

}

cout<<endl;

}

}

void main()

{

int a[10][10];

matriz(a);

imprimir(a);

getch();

}











problema 10
Elaborar un programa que permita leer una matriz de 5 x 6, que la imprima, y que imprima la sumatoria por renglones y columnas, utiliza un arreglo unidimensional para obtener la sumatoria de todos los renglones y uno de una dimensión para la sumatoria de todas las columnas, imprima el dato mayor y la posición de los renglones.


programa
 #include <iostream.h>

#include <conio.h>

void matriz(int a[5][6])

{

int b,c;

cout<<"Ingrese datos de la matriz"<<endl;

for(b=0;b<5;b++)

{

cout<<"Columna "<<(b+1)<<endl;

for(c=0;c<6;c++)

{

cin>>a[b][c];

}

}

}

void sumatoriac(int a[5][6],int suma[6])

{

int b,c,sumar;

for(c=0;c<6;c++)

{

sumar=0;

for(b=0;b<5;b++)

{

sumar=a[b][c]+sumar;

}

suma[c]=sumar;

}

}

void sumatoriar(int a[5][6],int x[5])

{

int b,c,sumar;

for(b=0;b<5;b++)

{

sumar=0;

for(c=0;c<6;c++)

{

sumar=a[b][c]+sumar;

}

x[b]=sumar;

}

}

void mayor(int a[5][6],int &maximo,int & posicionr,int & posicionc)

{

int b,c;

maximo=0;

for (b=0;b<5;b++)

{

for (c=0;c<6;c++)

{

if(maximo<a[b][c])

{

maximo=a[b][c];

posicionr=b;

posicionc=c;

}

}

}

}

void imprimir(int a[5][6],int x[5],int suma[6],int maximo,int posicionr,int posicionc)

{

int b,c;

for(b=0;b<5;b++)

{

cout<<endl;

for(c=0;c<6;c++)

{

cout<<a[b][c]<<"\t";

}

}

cout<<endl;

for(b=0;b<5;b++)

{

cout<<"Sumatoria del renglon"<<(b+1)<<"  "<<x[b]<<endl;

}

for(b=0;b<6;b++)

{

cout<<"Sumatoria de la columna "<<(b+1)<<"  "<<suma[b]<<endl;

}

cout<<"Valor Maximo "<<maximo<<" En la posicion "<<"["<<(posicionr+1)<<"]"<<"["<<(posicionc+1)<<"]"<<endl;

}

void main()

{

int a[5][6],x[5],suma[6],maximo,posicionr,posicionc;

matriz(a);

sumatoriac(a,suma);

sumatoriar(a,x);

mayor(a,maximo,posicionr,posicionc);

imprimir(a,x,suma,maximo,posicionr,posicionc);

getch();

}







problema 11
Hacer un programa que permita leer números para una matriz A de (6 x 4) las propias para una matriz B, que las imprima ,si la matriz A es mayor que la matriz B. Para que la matriz A sea mayor B para cada elemento A[i][j] debe prolomenos ser igual aun elemento en B[i][j] correspondiente y debe existir al menos un A [i][j] mayor que su correspondiente B[i][j].


programa
#include <iostream.h>

#include <conio.h>

void matriz(int a[6][4])

{

int i,j;

cout<<"Ingrese Num de la Matriz"<<endl;

for(i=0;i<6;i++)

{

for(j=0;j<4;j++)

{

cin>>a[i][j];

}

}

}

void imprime_matriz(int a[6][4])

{

int i,j;

cout<<endl;

for(i=0;i<6;i++)

{

for(j=0;j<4;j++)

{

cout<<a[i][j]<<"\t";

}

cout<<endl;

}

}

void comparamatriz(int a[6][4],int b[6][4])

{

int i,j,h;

h=0;

for(i=0;i<6;i++)

{

for(j=0;j<4;j++)

{

if(a[i][j]>=b[i][j])

h=h+1;

}

}

if(h==0)

cout<<"La Matriz B es mayor a la A"<<endl;

else

cout<<"La Matriz A es mayor a la B"<<endl;

}

void main()

{

int a[6][4],b[6][4];

matriz(a);

matriz(b);

imprime_matriz(a);

imprime_matriz(b);

comparamatriz(a,b);

getch();

}






No hay comentarios:

Publicar un comentario