lunes, 9 de mayo de 2011

Practica 9

Práctica 9. Problema 1


Descripción

Escriba un programa que permita que se introduzcan nombres y les asigne una calificación aleatoria, después muestre quienes son los alumnos que aprobaron con un promedio de 70 o mayor.


Pseudocódigo

void introdatos(Real M[10][5])
{
entero r, c
Real suma
randomize()
for(r=0 to 10 step  r++)
{
suma=0
for(c=0 to 4 step c++)
{
M[r][c]=(Real)random(100)+1
suma=suma+M[r][c]
}
M[r][4]=suma/4
}
}
void imprimetabla(Real M[10][5], caracter nombre[10][25])
{
entero r, c
print"Alumnos\t   1ro 2do 3ro 4to prom"
for(r=0 to 10 step r++)
{print"Alumno "(r+1)": "nombre[r]"\t"
for(c=0 to 5 step c++)
{
print"M[r][c]"\t"}
}
}
void intronombre(caracter nombre[10][25])
{
entero i
for(i=0  to 10 step  i++)
{
print"Nombre "(i+1)": "
read (nombre[i], 25, '\n')
}
}
void imprimeaprobados(Real M[10][5], caracter nombre[10][25])
{
print"Listado de alumnos aprobados "
print"Nombre  Promedio"
for(entero I=0 to 10 step  I++)
{
if(M[I][4]>=70)
{
printnombre[I]"  "M[I][4]
}
}
}
real promedio(float M[10][5])
{
real prom
real suma=0
for(entero i=0 to 10 step i++)
{
suma=suma+M[i][4]
}
prom=suma/10
return prom}
real mayor(float M[10][5])
{
float mayor1=0
for(entero i=0 to 10 step i++)
{
if(M[i][4]>mayor1)
{
mayor1=M[i][4]
}
}
return mayor1}
Inicio
{
caracter n[10][25]
real M[10][5]
introdatos(M)
intronombre(n)
imprimetabla(M, n)
imprimeaprobados(M, n)
print"Promedio General: "promedio(M)
print"Mayor promedio: "mayor(M)}

Codigo en C++

#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 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<<"Mayor promedio: "<<mayor(M);
getch();
}


Corrida




Práctica 9. Problema 2

Descripción

Un ingeniero elaboro un arreglo bidimensional de 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 en forma interactiva 15 valores del arreglo y que determine el número total cuyos rangos sean menores a 60, mayor igual a 60, x<70, x>=70, x<80, x>=80, x<=90,mayor a 90.

Pseudocódigo

void imprimir(int a,int b,int c,int d,int e)
void rangos(int &a,int &b,int &c,int &d,int &e,float m[3][5])
void introducir(float m[3][5])

void imprimir (int a,int b,int c,int d,int e)
{
Print "voltajes menores a 60: ", a
Print "voltajes mayores o iguales a 60 pero menores a 70: ", b
print  "voltajes mayores o iguales a 70 pero menores a 80: ", c
print "voltajes mayores o iguales a 80 pero menores a 90: ", d
print "voltajes mayores o iguales a 90: ", e
}

void introducer (float m[3][5])
{
entero r,c;
for(r=0 to to 3 step r++)
{
for(c=0  to 5 step c++)
{
Print "introduzca voltaje= "
Read m[r][c]
}
}
}

void rangos (int &a, int & b, int &c, int &d, int &e, float m[3][5])
{
int r,h
for (r=0 to 3 step r++)
 {
for(h=0 to 5 step h++)
{
 If (m[r][h]<60)
 {
 a=a+1
 }
 else
 if (m[r][h]<70)
 {
 b=b+1
 }
 else
 if (m[r][h]<80)
 {
 c=c+1
 }
 Else
If (m[r][h]<90)
{
d=d+1
}
Else
e=e+1
}
}
}

inicio
{
int a=0,b=0,c=0,d=0,e=0
float m[3][5]
introducir (m)
rangos (a,b,c,d,e,m)
imprimir (a,b,c,d,e)
fin
}



Código en C++

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
void imprimir(int a,int b,int c,int d,int e);
void rangos(int &a,int &b,int &c,int &d,int &e,float m[3][5]);
void introducir(float m[3][5]);
void imprimir(int a,int b,int c,int d,int e)
{
cout<<"Voltajes menores a 60: "<<a<<endl;
cout<<endl;
cout<<"Voltajes mayores o iguales a 60 pero menores a 70: "<<b<<endl;
cout<<endl;
cout<<"Voltajes mayores o iguales a 70 pero menores a 80: "<<c<<endl;
cout<<endl;
cout<<"Voltajes mayores o iguales a 80 pero menores a 90: "<<d<<endl;
cout<<endl;
cout<<"Voltajes mayores o iguales a 90: "<<e<<endl;
}

void introducir(float m[3][5])
{
int r,c;
for(r=0;r<3;r++)
{
for(c=0;c<5;c++)
{
cout<<"Introduzca voltaje= ";
cin>>m[r][c];
}
}
}
void rangos(int &a,int &b,int &c,int &d,int &e,float m[3][5])
{
int r,h;
for(r=0;r<3;r++)
{
for(h=0;h<5;h++)
{
if(m[r][h]<60)
{
a=a+1;
}
else
if(m[r][h]<70)
{
b=b+1;
}
else
if(m[r][h]<80)
{
c=c+1;
}
else
if(m[r][h]<90)
{
d=d+1;
}
else
e=e+1;
}
}
}

void main()
{
int a=0,b=0,c=0,d=0,e=0;
float m[3][5];
introducir(m);
rangos(a,b,c,d,e,m);
imprimir(a,b,c,d,e);
getch();
}


Corrida





Práctica 9. Problema 3

Descripción

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 y 2 [1][2] del arreglo resulte deben ser la suma del primero y segundo ,los arreglos primero y segundo deben inicializarse con números aleatorios. El valor de m y n defínalo con un valor constante.



Pseudocódigo

const entero m=2
const entero n=3
void primero(int A[m][n])
{
int a,b
randomize()
print "     Matriz A: "
for(a=0 a to m step a=a+1)
{
for(b=0 to n step b=b+1)
{
A[a][b]=random(100)+1
print A[a][b], " "
}
}
}
void segundo(int B[m][n])
{
entero c,d
randomize()
print "     Matriz B: "
for(c=0 c to m step c=c+1)
{
for(d=0 d to n step d=d+1)
{
B[c][d]=random(250)+1
print B[c][d], " "
}
}
}
void sumar(int A[m][n], int B[m][n], int C[m][n])
{
entero a,b
for(a=0 a to m step a=a+1)
for(b=0 b to n step b=b+1)
{
C[a][b]=A[a][b]+B[a][b]
}
}
void imprimedatos(int C[m][n])
{
entero a,b
print "     Suma: "
for(a=0 a to m step a=a+1)
{
for(b=0 b to n step b=b+1)
{
print C[a][b],"  "
}
}
}
inicio
{
entero A[m][n],B[m][n],C[m][n]
primero(A)
segundo(B)
sumar(A, B, C)
imprimedatos(C)
fin
}


Código en C++

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
const int n=3;
const int m=2;
void primero(int A[m][n])
{
int a,b;
randomize();
cout<<"     Matriz A: "<<endl;
for(a=0;a<m;a=a+1)
{
cout<<endl;
for(b=0;b<n;b=b+1)
{
A[a][b]=random(100)+1;
cout<<A[a][b]<<" ";
}
}
}
void segundo(int B[m][n])
{
int c, d;
randomize();
cout<<endl<<endl;
cout<<"     Matriz B: "<<endl;
for(c=0;c<m;c=c+1)
{
cout<<endl;
for(d=0;d<n;d=d+1)
{
B[c][d]=random(250)+1;
cout<<B[c][d]<<" ";
}
}
}
void sumar(int A[m][n], int B[m][n], int C[m][n])
{
int a,b;
for(a=0;a<m;a=a+1)
for(b=0;b<n;b=b+1)
{
C[a][b]=A[a][b]+B[a][b];
}
}
void imprimedatos(int C[m][n])
{
int a,b;
cout<<endl<<endl;
cout<<"      Suma: "<<endl<<endl;
for(a=0;a<m;a=a+1)
{
for(b=0;b<n;b=b+1)
{
cout<<C[a][b]<<"\t";}
cout<<endl;
}
}
void main ()
{
int A[m][n],B[m][n],C[m][n];
primero(A);
segundo(B);
sumar(A, B, C);
imprimedatos(C);
getch();
}

Corrida





Práctica 9. Problema 4

Descripción

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 * 5 en números enteros, despliegue los números subíndices del renglón y columna que correspondan al valor máximo.



Pseudocódigo

void Maximo (int a[4][5], int & maximo, int & posr, int & posc)
{
int r,c
maximo=0
posr=0
posc=0
for (r=0 to 4 step r++)
{
for (c=0 to 5 step c++)
{
if (a[r][c] > maximo)
{
maximo=a[r][c]
posr=r
posc=c
}
}
}

void introdatos (int a[4][5])
{
entero r,c
randomize()
for (r=0 to 4 step r++)
{
for (c=0 to 5 step c++)
{
a[r][c]=random(1000)+1
}
}
}



void imprimedatos(int a[4][5], int maximo,int & posr, int & posc)
{
entero r,c
print "                            listado de matriz\n"
for (r=0 to 4 step r++)
{
for (c=0 to 5 step c++)
{
print a[r][c]
}
}
print "fila: ",posr
print "columna: ",posc
print "El dato maximo es: ",">",maximo,"<  XD "
}
inicio
entero a[4][5], maximo, posr, posc
introdatos (a)
Maximo (a,maximo,posr,posc)
imprimedatos(a,maximo,posr,posc)
fin

Código en C++

#include <iostream.h>
#include <conio.h>
#include <stdlib>
void Maximo (int a[4][5], int & maximo, int & posr, int & posc)
{
int r,c;
maximo=0;
posr=0;
posc=0;
for (r=0;r<4;r++)
{
for (c=0;c<5;c++)
{
if (a[r][c] > maximo)
{
maximo=a[r][c];
posr=r;
posc=c;
}
}
}
}


void introdatos (int a[4][5])
{
int r,c;
randomize();
for (r=0;r<4;r++)
{
for (c=0;c<5;c++)
{
a[r][c]=random(1000)+1;
}
}
}


void imprimedatos(int a[4][5], int maximo,int & posr, int & posc)
{
int r,c;
cout<<"                            listado de matriz\n"<<endl;
for (r=0;r<4;r++)
{
for (c=0;c<5;c++)
{
cout<<a[r][c]<<"\t";
}
cout<<endl;
}
cout<<endl<<"fila: "<<posr<<endl;
cout<<"columna: "<<posc;
cout<<endl<<"El dato maximo es: "<<">"<<maximo<<"<  XD ";
}
void main()
{
int a[4][5], maximo, posr, posc;
introdatos (a);
Maximo (a,maximo,posr,posc);
imprimedatos(a,maximo,posr,posc);
getch();
}

Corrida







Práctica 9. Problema 5

Descripción

Un examen final tiene 100 preguntas de elección múltiple, cada pregunta tiene 5 respuestas a elegir de las cuales solo una es correcta y la información concerniente al estudiante puede representarse con "respuesta"(aquí se almacenan las respuestas correctas), "score"(aquí se almacenan las respuestas dadas por los estudiantes) y "name" almacena el nombre de los estudiantes. Las respuestas se codifican entre 1 y 5, cuando se indicó más de una respuesta, esta se representa 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.

Pseudocódigo

void respuestas(int resp[100])
{
randomize()
for(int i=0 TO 100 step i++)
{
resp[i]=random(6)+1
}
}
void score(int N, int sc[50][100])
{
randomize()
for(int r=0 to N step r++)
{
for(int c=0 to 100 step c++)
{
sc[r][c]=random(6)+1
}
}
}
void name(int N, char NA[50][30])
{
for(int i=0 to N step i++)
{
print "Nombre ",(i+1),": "
cin.getline(NA[i], 30, '\n')
if(i==0)
{
cin.getline(NA[i], 30, '\n')
}
}
}
void evaluar(int N, int resp[100], int sc[50][100], char NA[50][30])
{
real suma=0
for(int r=0 to N step r++)
{
suma=0
for(int c=0 to 100 step c++)
{
if(resp[c]==sc[r][c])
{
suma=suma+1
}
}
if(suma>=70)
{
print NA[r]
}
}
}
inicio
entero R[100], S[50][100]
caracter  ni[50][30]
entero x
do
{
print "Cantidad de alumnos a Evaluar: "
print x
}
while(x<=0 || x>50)
respuestas(R)
score(x, S)
name(x, ni)
print "Listado de Alumnos Aprobados: "
evaluar(x, R, S, ni)
fin


void introdatos (int a[4][5])
{
int r,c
randomize()
for (r=0 to 4 step r++)
{
for (c=0 to 5 step c++)
{
a[r][c]=random(1000)+1
}
}
}


void imprimedatos(int a[4][5], int maximo,int & posr, int & posc)
{
int r,c;
cout<<"                            listado de matriz\n"<<endl;
for (r=0;r<4;r++)
{
for (c=0;c<5;c++)
{
cout<<a[r][c]<<"\t";
}
cout<<endl;
}
cout<<endl<<"fila: "<<posr<<endl;
cout<<"columna: "<<posc;
cout<<endl<<"El dato maximo es: "<<">"<<maximo<<"<  XD ";
}

inicio
int a[4][5], maximo, posr, posc;
introdatos (a);
Maximo (a,maximo,posr,posc);
imprimedatos(a,maximo,posr,posc);
fin

Código en C++

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

void respuestas(int resp[100])
{
randomize();
for(int i=0; i<100; i++)
{
resp[i]=random(6)+1;}}

void score(int N, int sc[50][100])
{
randomize();
for(int r=0; r<N; r++)
{
for(int c=0; c<100; c++)
{
sc[r][c]=random(6)+1;}}}

void name(int N, char NA[50][30])
{
for(int i=0; i<N; i++)
{
cout<<"Nombre "<<(i+1)<<": ";
cin.getline(NA[i], 30, '\n');
if(i==0)
{
cin.getline(NA[i], 30, '\n');
}
}
}

void evaluar(int N, int resp[100], int sc[50][100], char NA[50][30])
{
float suma=0;
for(int r=0; r<N; r++)
{
suma=0;
for(int c=0; c<100; c++)
{
if(resp[c]==sc[r][c])
{
suma=suma+1;}}
if(suma>=70)
{
cout<<NA[r]<<endl;
}
}
}

void main()
{
int R[100], S[50][100];
char ni[50][30];
int x;
do
{
cout<<"Cantidad de alumnos a Evaluar: ";
cin>>x;}
while(x<=0 || x>50);
respuestas(R);
score(x, S);
name(x, ni);
cout<<"Listado de Alumnos Aprobados: "<<endl<<endl;
evaluar(x, R, S, ni);
getch();
}


Corrida




Práctica 9. Problema 6

Descripción

Una campaña de manufactura 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 1 dimensión para leer los nombres de las plantas y un arreglo de 2 dimensiones (12 x 7) para leer la producción de las 12 plantas en los 7 días, la idea es leer el nombre de la planta y luego la producción hecha en cada día, imprimir el reporte.

Pseudocódigo

void np(char n[12][30])
{
entero i
for (i=0 to 12 step i++)
{
print "Nombre de la planta ",(i+1)
read n[i]
}
}
void ip(int p[12][7])
{
entero  i,j
randomize()
for(i=0 to 12 step i++)
{
for (j=0 to 7 step j++)
{
p[i][j]=random(10)+1
}
}
}

void totales(int p[12][7], int td[7])
{
entero i,j,suma
for (i=0 to 7 step i++)
{
suma=0
for (j=0 to 12 step j++)
{
suma=suma+p[j][i]
}
td[i]=suma
}
}

void imprimir(char n[12][30], int p[12][7], int td[7])
{
entero  i,j,k
print "lu"," ma","mie","ju","vi","sa","do"
for (i=0 to 12 step i++)
{
print n[i]
for (j=0 to 7 step j++)
{
print p[i][j]
}
}
print "totales"
for (k=0 to 7 step k++)
{
print td[k]
}
}

void tp(int p[12][7],int t[12])
{
entero i,j,suma
for (i=0 to 12 step i++)
{
suma=0
for(j=0 to 7 step j++)
{
suma=suma+p[i][j]
}
t[i]=suma
}
}

void mayor(int t[12], char n[12][30])
{
entero i,mayor=t[0],pp
for (i=1 to 12 step i++)
{
if(t[i]>mayor)
{
mayor =t[i]
pp=i
}
}
print "planta con mayor porduccion: planta ",(pp+1)
print "nombre: ",(n[pp+1])
print "produccion mayor ",mayor
}

inicio
entero p[12][7],td[7],t[12]
caracter n[12][30]
np(n)
ip(p)
totales(p,td)
tp(p,t)
imprimir(n,p,td)
mayor(t,n)
fin



Código en C++

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void np(char n[12][30])
{
int i;
for (i=0;i<12;i++)
{
cout<<"Nombre de la planta "<<(i+1)<<endl;
cin>>n[i];
}
}
void ip(int p[12][7])
{
int i,j;
randomize();
for(i=0;i<12;i++)
{
for (j=0;j<7;j++)
{
p[i][j]=random(10)+1;
}                                     
}
}

void totales(int p[12][7], int td[7])
{
int i,j,suma;
for (i=0;i<7;i++)
{
suma=0;
for (j=0;j<12;j++)
{
suma=suma+p[j][i];
}
td[i]=suma;
}
}

void imprimir(char n[12][30], int p[12][7], int td[7])
{
int i,j,k;
cout<<"\t"<<"lu"<<" \t"<<" ma"<<" \t"<<"mie"<<"\t "<<"ju"<<"\t "<<"vi"<<"\t "<<"sa"<<"\t "<<"do"<<endl;
for (i=0;i<12;i++)
{
cout<<n[i]<<"\t";
for (j=0;j<7;j++)
{
cout<<p[i][j]<<"\t";
}
cout<<endl;
}
cout<<"totales"<<"\t";
for (k=0;k<7;k++)
{
cout<<td[k]<<"\t";
}
cout<<endl;
}

void tp(int p[12][7],int t[12])
{
int i,j,suma;
for (i=0;i<12;i++)
{
suma=0;
for(j=0;j<7;j++)
{
suma=suma+p[i][j];
}
t[i]=suma;
}
}

void mayor(int t[12], char n[12][30])
{
int i,mayor=t[0],pp;
for (i=1;i<12;i++)
{
if(t[i]>mayor)
{
mayor =t[i];
pp=i;
}
}
cout<<endl<<"planta con mayor porduccion: planta "<<(pp+1)<<endl;
cout<<"nombre: "<<(n[pp+1])<<endl;
cout<<"produccion mayor "<<mayor<<endl;
}

void main()
{
int p[12][7],td[7],t[12];
char n[12][30];
np(n);
ip(p);
totales(p,td);
tp(p,t);
imprimir(n,p,td);
mayor(t,n);
getch();
}

Corrida





Práctica 9. Problema 7

Descripción

Elaborar un programa que lea el nombre de los trabajadores y su producción mensual por cada mes del año se requiere el siguiente reporte.
Pseudocódigo


void introdatos(int produccion[10][13], char nombres[10][25])
{
real suma=0
entero  i
for(int i=0 to 10 step i++)
{
suma=0
print "Nombre ",(i+1),": "
cin.getline(nombres[i], 25, '\n')
for(int j=0 to 12 step j++)
{
print "mes ",(j+1),": "
print produccion[i][j]
suma=suma+produccion[i][j]
}
produccion[i][12]=suma
cin.getline(nombres[15], 25)
}
}

void mostrar(int produccion[10][13], char nombres[10][25])
{
entero  I
float promedio=0
print "Nombres:  total de produccion:"
for(I=0 to 10 step I++)
{
print nombres[I],"  "
print produccion[I][12]
promedio=promedio+produccion[I][12]
}
print "PROMEDIO:   "
print (promedio/10)
}

inicio
entero produccion[10][13]
caracter n[10][25]
introdatos(produccion, n)
mostrar(produccion, n)
fin

Código en C++


#include <iostream.h>
#include <conio.h>
void introdatos(int produccion[10][13], char nombres[10][25])
{
float suma=0;
int i;
for(int i=0; i<10; i++)
{
suma=0;
cout<<"Nombre "<<(i+1)<<": ";
cin.getline(nombres[i], 25, '\n');
for(int j=0; j<12; j++)
{
cout<<"mes "<<(j+1)<<": ";
cin>>produccion[i][j];
suma=suma+produccion[i][j];}
produccion[i][12]=suma;
cin.getline(nombres[15], 25);
}
}

void mostrar(int produccion[10][13], char nombres[10][25])
{
int I;
float promedio=0;
cout<<"Nombres:  total de produccion:"<<endl;
for(I=0; I<10; I++)
{
cout<<nombres[I]<<"  ";
cout<<produccion[I][12]<<endl;
promedio=promedio+produccion[I][12];
}
cout<<endl;
cout<<"PROMEDIO:   ";
cout<<(promedio/10);
}
void main()
{
int produccion[10][13];
char n[10][25];
introdatos(produccion, n);
mostrar(produccion, n);
getch();
}

Corrida







Práctica 9. Problema 8

Descripción

Una matriz es nula si todos sus elementos son iguales a cero, elaborar un programa que lea una matriz de números de (5 x 4) e indique si la matriz es nula o no.
Pseudocódigo

void leer(int n[5][4])
{
entero r, c, suma=0
for(r=0 to 5 step r++)
{
for(c=0 to 4 step c++)
{
print "Introduzca Numero: "
read n[r][c]
if(n[r][c]==0)
{
suma=suma+1
}
}
}
if(suma==20)
{
print "Es nula"
}
else
{
print "No es nula"
}
}
inicio
int n[5][4]
leer(n)
fin

Código en C++

#include <iostream.h>
#include <conio.h>
void leer(int n[5][4])
{
int r, c, suma=0;
for(r=0; r<5; r++)
{
for(c=0; c<4; c++)
{
cout<<"Introduzca Numero: ";
cin>>n[r][c];
if(n[r][c]==0)
{suma=suma+1;}}}
if(suma==20)
{
cout<<"Es nula"<<endl;}
else
{
cout<<"No es nula"<<endl;}}
void main()
{
int n[5][4];
leer(n);
getch();
}
Corrida





Práctica 9. Problema 9

Descripción

Generar una matriz de (10 x 10) ,con ceros en los elementos en la diagonal principal, a los demás colocar un 1 e imprimirlo.

Pseudocódigo

void mat (int m[10][10])
{
entero i,j
for (i=0 to 10 step i++)
{
for (j=0 to 10 step j++)
{
if (i==j)
m[i][j]=0
else
m[i][j]=1
print m[i][j]
}
}
}
inicio
int m[10][10]
mat(m)
fin



Código en C++

#include <iostream.h>
#include <conio.h>
void mat (int m[10][10])
{
int i,j;
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
if (i==j)
m[i][j]=0;
else
m[i][j]=1;
cout<<m[i][j];
}
cout<<endl;
}
}
void main()
{
int m[10][10];
mat(m);
getch();
}


Corrida








Práctica 9. Problema 10

Descripción

Elaborar un programa que permita leer una matriz de (5 x 6) ,que la imprima , y que imprima la sumatoria por renglones y por columnas ,utilizando un arreglo unidimensional para obtener la sumatoria de todos los renglones y otro de 1 dimensión para calcular la sumatoria de todas las columnas, imprimir el mayor.

Pseudocódigo

void matriz(int a[5][6])
{
for(int c=0 to 5 step c++)
{
for(int r=0 to 6 step r++)
{
print "Dato: "
read a[c][r]
}
}
}
void sumatoriac(int a[5][6], int suma[5])
{
entero sumar
for(int c=0 to 5 step c++)
{
sumar=0
for(int r=0 to 6 step r++)
{
sumar=sumar+a[c][r]
}
suma[c]=sumar
}
}
void sumatoriar(int a[5][6], int sumec[6])
{
entero sumer
for(int r=0 to 6 step r++)
{
sumer=0
for(int c=0 to 5 step c++)
{
sumer=sumer+a[c][r]
}
sumec[r]=sumer
}
}
void mayor(int a[5][6], int& maximo, int& posicionr, int& posicionc)
{
maximo=0
for(int c=0 to 5 step c++)
{
for(int r=0 to 6 step r++)
{
if(a[c][r]>maximo)
{maximo=a[c][r]
posicionc=c
posicionr=r
}
}
}
}
void mostrar(int a[5][6], int suma[5], int sumec[6], int maximo, int posicionr, int posicionc)
{
print " Matriz "
for(int c=0 to 5 step c++)
{
for(int r=0 to 6 step r++)
{
print a[c][r]," "
}
print " suma ",suma[c]
}
for(int r=0 to 6 step r++)
{
print sumec[r]," "
}
print "    sumatoria de columnas "
print "Dato mayor: ",maximo
print "ubicacion"
print "renglon: ",(posicionc+1)
print "columna: ",(posicionr+1)
}
inicio
entero a[5][6],suma[5],sumec[6],maximo,posicionr,posicionc
print "Introduzca datos para la matriz "
matriz(a)
sumatoriac(a, suma)
sumatoriar(a, sumec)
mayor(a, maximo, posicionr, posicionc)
mostrar(a, suma, sumec, maximo, posicionr, posicionc)
fin


Código en C++

#include <iostream.h>
#include <conio.h>
void matriz(int a[5][6])
{
for(int c=0; c<5; c++)
{
for(int r=0; r<6; r++)
{
cout<<"Dato: ";
cin>>a[c][r];
}
}
}
void sumatoriac(int a[5][6], int suma[5])
{
int sumar;
for(int c=0; c<5; c++)
{
sumar=0;
for(int r=0; r<6; r++)
{
sumar=sumar+a[c][r];}
suma[c]=sumar;
}
}
void sumatoriar(int a[5][6], int sumec[6])
{
int sumer;
for(int r=0; r<6; r++)
{
sumer=0;
for(int c=0; c<5; c++)
{
sumer=sumer+a[c][r];
}
sumec[r]=sumer;
}
}
void mayor(int a[5][6], int& maximo, int& posicionr, int& posicionc)
{maximo=0;
for(int c=0; c<5; c++)
{
for(int r=0; r<6; r++)
{
if(a[c][r]>maximo)
{maximo=a[c][r];
posicionc=c;
posicionr=r;
}
}
}
}
void mostrar(int a[5][6], int suma[5], int sumec[6], int maximo, int posicionr, int posicionc)
{
cout<<endl;
cout<<" Matriz ";
cout<<endl;
for(int c=0; c<5; c++)
{
cout<<endl;
for(int r=0; r<6; r++)
{
cout<<a[c][r]<<" ";
}
cout<<" suma "<<suma[c];
}
cout<<endl<<endl;
for(int r=0; r<6; r++)
{
cout<<sumec[r]<<" ";}
cout<<"    sumatoria de columnas "<<endl<<endl;
cout<<"Dato mayor: "<<maximo<<endl;
cout<<"ubicacion"<<endl;
cout<<"renglon: "<<(posicionc+1)<<endl;
cout<<"columna: "<<(posicionr+1)<<endl;
}
void main()
{
int a[5][6],suma[5],sumec[6],maximo,posicionr,posicionc;
cout<<"Introduzca datos para la matriz "<<endl;
matriz(a);
sumatoriac(a, suma);
sumatoriar(a, sumec);
mayor(a, maximo, posicionr, posicionc);
mostrar(a, suma, sumec, maximo, posicionr, posicionc);
getch();
}

Corrida






Práctica 9. Problema 11

Descripción

Elaborar un programa que permita leer números para una matriz A  de 6 por 4, lo propio para una matriz B, que las imprima, indique si la matriz A es mayor que la matriz B para que la matriz A sea mayor que B, para cada elemento A[i][j] debe ser por lo menos igual a cada elemento B y j correspondiente, y debe existir al menos un A[i][j] mayor que su correspondiente B[i][j] en caso contrario A no es mayor que B.


Pseudocódigo

void generardatos(int A[6][4], int B[6][4])
{
randomize()
for(int i=0 to 6 step i++)
{
for(int j=0 to 4 step j++)
{
A[i][j]=random(100)+1
B[i][j]=random(100)+1
}
}
}

void imprimematriz(int M[6][4])
{
for(int i=0 to 6 step i++)
{
for(int j=0 to 4 step j++)
{
print M[i][j]<<"     "
}
}
}

int mayormatrices(int A[6][4], int B[6][4])
{
entero c1=0
for(int i=0 to 6 step i++)
{
for(int j=0 to 4 step j++)
{
if(A[i][j]>B[i][j])
{
c1=c1+1
}
}
return c1
}
}

inicio
entero A[6][4]
entero B[6][4]
entero c=0
generardatos(A, B)
print "       Matriz A "
imprimematriz(A)
print "       Matriz B "
imprimematriz(B)
c=mayormatrices(A, B)
if(c>0)
{
print "La matriz A es mayor "
}
else
{
print "La matriz A no es mayor "
}
fin



Código en C++

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

void generardatos(int A[6][4], int B[6][4])
{
randomize();
for(int i=0; i<6; i++)
{
for(int j=0; j<4; j++)
{
A[i][j]=random(100)+1;
B[i][j]=random(100)+1;
}
}
}

void imprimematriz(int M[6][4])
{
for(int i=0; i<6; i++)
{
for(int j=0; j<4; j++)
{
cout<<M[i][j]<<"     ";
}
cout<<endl;
}
}

int mayormatrices(int A[6][4], int B[6][4])
{
int c1=0;
for(int i=0; i<6; i++)
{
for(int j=0; j<4; j++)
{
if(A[i][j]>B[i][j])
{
c1=c1+1;
}
}
return c1;
}
}

void main()
{
int A[6][4];
int B[6][4];
int c=0;
generardatos(A, B);
cout<<"       Matriz A "<<endl<<endl;
imprimematriz(A);
cout<<endl;
cout<<"       Matriz B "<<endl<<endl;
imprimematriz(B);
c=mayormatrices(A, B);
if(c>0)
{
cout<<endl;
cout<<"La matriz A es mayor "<<endl;
}
else
{
cout<<endl;
cout<<"La matriz A no es mayor "<<endl;
}
getch();
}

Corrida






Práctica 9. Problema 12

Descripción

A) Escriba un programa que crea un archivo texto llamado puntos y que escriba los siguientes números en el archivo:
                                                              6.3     8.2     18.25     24.32
                                                              4.0     4.0     10.0       -5.0
                                                             -2.0    5.0       4.0         5.0

B) Utilizando los datos de (a) escriba un programa que lea cada registro (cada fila) e interprete en cada uno de ellos el 1er y 2do numero en registro como coordenadas de un punto y 3er y 4to como un 2do punto haga que calcule y muestre la pendiente y punto medio de los 2 números introducidos.

Pseudocódigo

Inciso A)

inicio
ofstream salida
salida.open("C:\\pruebasc++\\puntos.txt")
salida,"6.3  8.2  18.25  24.32"
salida,"4.9  4.0  10.0  -5.0"
salida,"2.0  5.0  4.0    5.0"
salida.close()
fin

Inciso B)

inicio
ifstream entrada
entrada.open("C:\\pruebasc++\\puntos.txt")
real  m[3][4],m1,m2,m3,pmx,pmy,pmx2,pmy2,pmx3,pmy3
entero i,j
for (i=0 to 3 step i++)
{
for (j=0 to 4 step j++)
{
entrada,m[i][j]
print <m[i][j],"  "
}
}
entrada.close()
m1=(m[0][3]-m[0][1])/(m[0][2]-m[0][0])
pmx= ((m[0][0]+m[0][2])/2)
pmy=((m[0][1]+m[0][3])/2 )
m2=(m[1][3]-m[1][1])/(m[1][2]-m[1][0])
pmx2= ((m[1][0]+m[1][2])/2)
pmy2=((m[1][1]+m[1][3])/2 )
m3=(m[2][3]-m[2][1])/(m[2][2]-m[2][0])
pmx3= ((m[2][0]+m[2][2])/2)
pmy3=((m[2][1]+m[2][3])/2 )
print "pendiente 1= ",m1
print "cordenadas del punto medio: ","<",pmx," , ",pmy,">"
print "pendiente 2=  ",m2
print "cordenadas del punto medio: ","<",pmx2," , ",pmy2,">"
print "pendiente 3=  ",m3
print "cordenadas del punto medio: ","<",pmx3," , ",pmy3,">"
fin

Código en C++

Inciso A)

#include <fstream.h>
#include <conio.h>
void main()
{
ofstream salida;
salida.open("C:\\pruebasc++\\puntos.txt");
salida<<"6.3  8.2  18.25  24.32"<<endl;
salida<<"4.9  4.0  10.0  -5.0"<<endl;
salida<<"2.0  5.0  4.0    5.0"<<endl;
salida.close();
getch();
}

Inciso B)

#include <fstream.h>
#include <conio.h>
void main()
{
ifstream entrada;
entrada.open("C:\\pruebasc++\\puntos.txt");
float m[3][4],m1,m2,m3,pmx,pmy,pmx2,pmy2,pmx3,pmy3;
int i,j;
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
entrada>>m[i][j];
cout<<m[i][j]<<"\t";
}
cout<<endl;
}
entrada.close();
m1=(m[0][3]-m[0][1])/(m[0][2]-m[0][0]);
pmx= ((m[0][0]+m[0][2])/2);
pmy=((m[0][1]+m[0][3])/2 );
m2=(m[1][3]-m[1][1])/(m[1][2]-m[1][0]);
pmx2= ((m[1][0]+m[1][2])/2);
pmy2=((m[1][1]+m[1][3])/2 );
m3=(m[2][3]-m[2][1])/(m[2][2]-m[2][0]);
pmx3= ((m[2][0]+m[2][2])/2);
pmy3=((m[2][1]+m[2][3])/2 );
cout<<"pendiente 1= "<<m1<<endl;
cout<<"cordenadas del punto medio: "<<"<"<<pmx<<" , "<<pmy<<">"<<endl;
cout<<"pendiente 2=  "<<m2<<endl;
cout<<"cordenadas del punto medio: "<<"<"<<pmx2<<" , "<<pmy2<<">"<<endl;
cout<<"pendiente 3=  "<<m3<<endl;
cout<<"cordenadas del punto medio: "<<"<"<<pmx3<<" , "<<pmy3<<">"<<endl;
getch();
}




Corrida

Inciso A)



Inciso B)









Práctica 9. Problema 13

Descripción

A) Escriba un programa que pueda crear un archivo llamado Voltios y escriba los siguientes datos.

                                                             120.3       122.7        90.7       99.8
                                                               95.3       120.5      127.3     120.8
                                                             123.2       118.4      123.8     115.6
                                                             122.4         95.6      118.2     120.0
                                                             123.5       130.2      123.9     124.4

 B) Con base al archivo voltios escriba un programa que lea cada registro en el archivo y calcule y despliegue el promedio de cada registro.

Pseudocódigo

Inciso A)

inicio
ofstream salida
salida.open("C:\\pruebasc++\\promedio.txt")
salida<<"120.03     122.7    90.3   99.8 "
salida<<"95.3  120.5  127.3  120.8 "
salida<<"123.2   118.4   123.8   113.6 "
salida<<"122.4  95.6   118.2   120.0"
salida<<"123.5   130.2    123.9   124.4"
salida.close()
fin
Inciso B)

void leer(float p[5][4])
{
entero i,j
ifstream salida;
salida.open("C:\\pruebasc++\\promedio.txt")
for (i=0 to 5 step i++)
{
for (j=0 to 4 step j++)
{
salida,p[i][j]
}
}
salida.close()
}

void prom(float p[5][4])
{
entero i,j
real suma,pm
for (i=0 to 5 step i++)
{
suma=0
for (j=0 to 4 step j++)
{
suma=suma+p[i][j]
}
pm=suma/4
print "promedio del registro  ",pm
}
}


inicio
real  p[5][4]
leer(p)
prom(p)
fin


Código en C++

Inciso A)

#include <fstream.h>
#include <conio.h>
void main()
{
ofstream salida;
salida.open("C:\\pruebasc++\\promedio.txt");
salida<<"120.03     122.7    90.3   99.8 "<<endl;
salida<<"95.3  120.5  127.3  120.8 "<<endl;
salida<<"123.2   118.4   123.8   113.6 "<<endl;
salida<<"122.4  95.6   118.2   120.0"<<endl;
salida<<"123.5   130.2    123.9   124.4"<<endl;
salida.close();
getch();
}
Inciso B)

#include <fstream.h>
#include <conio.h>
void leer(float p[5][4])
{
int i,j;
ifstream salida;
salida.open("C:\\pruebasc++\\promedio.txt");
for (i=0;i<5;i++)
{
for (j=0;j<4;j++)
{
salida>>p[i][j];
}
}
salida.close();
}
void prom(float p[5][4])
{
int i,j;
float suma,pm;
for (i=0;i<5;i++)
{
suma=0;
for (j=0;j<4;j++)
{
suma=suma+p[i][j];
}
pm=suma/4;
cout<<"promedio del registro=  "<<pm<<endl;
}
}
void main()
{
float p[5][4];
leer(p);
prom(p);
getch();
}

Corrida

Inciso A)


Inciso B)





















No hay comentarios:

Publicar un comentario