Está en la página 1de 8

Tarea

A) La misma matriz al hallar el valor visualice el mensaje y luego reemplácelo


por el valor 500
Diagrama de flujos
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<iomanip>
using namespace std;
void main(){
srand((unsigned)time(NULL));
int A[100][100],filas,columnas,f,c,buscar;
bool existe=false;
cout<<"Digite el numero de filas ===> ";cin>>filas;
cout<<"Digite el numero de columnas ===> ";cin>>columnas;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
A[i][j]=rand()%21;
}
}
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<setw(3)<<A[i][j];
}
cout<<endl;
}
cout<<"Ingrese el elemento a buscar ===> ";cin>>buscar;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
if (A[i][j]==buscar){
A[i][j]=500;
existe=true;
f=i;
c=j;
}
}
}
if (existe==true){
cout<<"El elemento se encuentra en la fila "<<f+1<<" y en la columna
"<<c+1<<endl;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<setw(4)<<A[i][j];
}
cout<<endl;
}
}
else{
cout<<"El elemento no se encuentra en la matriz"<<endl;
}
system("pause");
}
/*
Digite el numero de filas ===> 3
Digite el numero de columnas ===> 3
13 10 13
7 15 12
15 8 10
Ingrese el elemento a buscar ===> 12
El elemento se encuentra en la fila 2 y en la columna 3
13 10 13
7 15 500
15 8 10
Presione una tecla para continuar . . .
*/

B) Hallar los valores repetidos de la matriz y contabilizarlos


Diagrama de flujos
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<iomanip>
using namespace std;
void main(){
srand((unsigned)time(NULL));
int A[100][100],vector[1000],filas,columnas,c;
cout<<"Digite el numero de filas ===> ";cin>>filas;
cout<<"Digite el numero de columnas ===> ";cin>>columnas;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
A[i][j]=rand()%21;
}
}
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<setw(3)<<A[i][j];
}
cout<<endl;
}
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
vector[i*columnas+j]=A[i][j];
}
}
c=1;
for(int i=0;i<filas*columnas;i++){
c=1;
for(int j=0;j<filas*columnas;j++){
if((vector[i]!=100)&&!(i==j)){
if(vector[i]==vector[j]){
c++;
vector[j]=100;
}
}
}
if((vector[i]!=100)&&(c>1)){
cout<<"El numero "<<vector[i]<<" se repite "<<c<<" veces"<<endl;
}
}
system("pause");
}
/*
Digite el numero de filas ===> 3
Digite el numero de columnas ===> 4
19 1 12 3
13 15 17 19
6 1 11 14
El numero 19 se repite 2 veces
El numero 1 se repite 2 veces
Presione una tecla para continuar . . .
*/
C) Al valor hallado reemplazarlo por un divisor que se encuentre en la matriz
Diagrama de flujos
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<iomanip>
using namespace std;
void main(){
srand((unsigned)time(NULL));
int A[100][100],filas,columnas,b,m,n;
int contiene=0,sin=0;
cout<<"Digite el numero de filas ===> ";cin>>filas;
cout<<"Digite el numero de columnas ===> ";cin>>columnas;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
A[i][j]=rand()%21+1;
}
}
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<setw(3)<<A[i][j];
}
cout<<endl;
}
cout<<"Ingrese el elemento a buscar ==> ";cin>>b;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
if(b==A[i][j]){
m=i;
n=j;
contiene=1;
}
}
}
if(contiene==1){
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
if((b>A[i][j])&&(A[i][j]!=0)&&(b%A[i][j]==0)){
A[m][n]=A[i][j];
sin=1;
}
}
}
if(sin==1){
cout<<"El numero "<<b<<" de la fila y columna "<<m+1<<","<<n+1<<" sera
reemplazado por su divisor "<<A[m][n]<<endl;
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<setw(3)<<A[i][j];
}
cout<<endl;
}
}
else {
cout<<b<<" no tiene divisores entre los elementos de esta
matriz"<<endl;

}
}
else{
cout<<"El elemento no se encuentra en la matriz"<<endl;
}
system("pause");
}
/*
Digite el numero de filas ===> 3
Digite el numero de columnas ===> 8
20 1 15 13 19 6 12 17
17 12 6 7 15 3 19 20
8 15 6 11 2 12 3 1
Ingrese el elemento a buscar ==> 20
El numero 20 de la fila y columna 2,8 sera reemplazado por su divisor 1
20 1 15 13 19 6 12 17
17 12 6 7 15 3 19 1
8 15 6 11 2 12 3 1
Presione una tecla para continuar . . .
*/
Tarea
// Genere 02 matrices aleatorias y realice lo siguiente:
a. Sumar dos matrices
b. Diferencia de dos matrices
c. producto de dos matrices
d. cociente de dos matrices
e. Resto de dos matrices
f. hallar las diagonales de las dos matrices y mostrarlas
g. Cuántos valores de cada diagonal coinciden
   En un menú

Código fuente:

#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<iomanip>
using namespace std;
void main(){
srand((unsigned)time(NULL));
int A[100][100],B[100][100],a[1000],b[1000],orden,respuesta,c;
float C[100][100];
cout<<"Digite el orden de ambas matrices cuadradas ===> ";cin>>orden;
cout<<"Las matrices generadas son las siguientes:"<<endl;
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
A[i][j]=rand()%48+1;
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(3)<<A[i][j];
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
B[i][j]=rand()%48+1;
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(3)<<B[i][j];
}
cout<<endl;
}
cout<<endl;
cout<<"Presione '1' para sumar las matrices"<<endl;
cout<<"Presione '2' para restar las matrices"<<endl;
cout<<"Presione '3' para multiplicar las matrices"<<endl;
cout<<"Presione '4' para dividir los elementos de las matrices"<<endl;
cout<<"Presione '5' para hallar el resto de los elementos de las
matrices"<<endl;
cout<<"Presione '6' para mostar las diagonales de cada matriz y en cuantos
valores coinciden"<<endl;
cout<<"Digite su opcion ===> ";cin>>respuesta;
switch(respuesta){
case 1:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
C[i][j]=A[i][j]+B[i][j];
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(3)<<C[i][j];
}
cout<<endl;
}
break;
case 2:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
C[i][j]=A[i][j]-B[i][j];
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(3)<<C[i][j];
}
cout<<endl;
}
break;
case 3:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
C[i][j]=0;
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
for(int n=0;n<orden;n++){
C[i][j]=C[i][j]+A[i][n]*B[n][j];
}
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(5)<<C[i][j];
}
cout<<endl;
}
break;
case 4:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
C[i][j]=1.0*A[i][j]/B[i][j];
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(10)<<C[i][j];
}
cout<<endl;
}
break;
case 5:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
C[i][j]=A[i][j]%B[i][j];
}
}
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
cout<<setw(3)<<C[i][j];
}
cout<<endl;
}
break;
case 6:
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
if(i==j){
a[i]=A[i][j];
}
}
}
cout<<"[";
for(int i=0;i<orden;i++){
cout<<setw(3)<<a[i];
}
cout<<"]";
cout<<endl;
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
if(i==j){
b[i]=B[i][j];
}
}
}
cout<<"[";
for(int i=0;i<orden;i++){
cout<<setw(3)<<b[i];
}
cout<<"]";
cout<<endl;
for(int i=0;i<orden;i++){
for(int j=0;j<orden;j++){
if(a[i]==b[j]){
b[j]=0;
cout<<"El numero "<<a[i]<<" se encuentra en ambas
diagonales"<<endl;
}
}
}
break;
}
system("pause");
}
/*
Digite el orden de ambas matrices cuadradas ===> 5
Las matrices generadas son las siguientes:
9 40 28 10 45
26 1 20 21 43
30 21 12 33 25
6 15 7 38 16
30 30 19 39 33

48 16 26 10 37
4 24 10 25 44
20 6 13 4 28
43 12 43 38 47
2 2 28 27 24

Presione '1' para sumar las matrices


Presione '2' para restar las matrices
Presione '3' para multiplicar las matrices
Presione '4' para dividir los elementos de las matrices
Presione '5' para hallar el resto de los elementos de las matrices
Presione '6' para mostar las diagonales de cada matriz y en cuantos valores
coinciden
Digite su opcion ===> 6
[ 9 1 12 38 33]
[ 48 24 13 38 24]
El numero 38 se encuentra en ambas diagonales
Presione una tecla para continuar . . .
*/
Comentario: Profesor no utilicé el do-while porque empieza a haber errores en los programas.

También podría gustarte