Sunteți pe pagina 1din 3

1- Enunciado: Realizar un programa que permita leer en un archivo dos matrices de numeros

reales, A(mxn) y B (nxp); Calcular y almacenar en un archivo producto matricial. Suponer


para el ejemplo m=3, n=4 y p=5

2. Programacion en C++:

#include<iostream>
#include<iomanip>
#include<fstream>//acceso a los recursos de c++ Para entrada y salida
en disco
#include<conio.h>
using namespace System;
using namespace std;
int main()
{
Console::Title::set (" UIS - E3T - Programación Visual C++ -
Programado por Diego Rozo ");
Console::BackgroundColor::set(ConsoleColor::Blue);
const int M=3, N=4, P=5;
int i,j,k; // Contadores
float suma, A[M][N], B[N][P], C[M][P];// Declaracion de arreglos
Console::Clear(); //Limpiar Pantalla
Console::ForegroundColor::set(ConsoleColor::white); // Color de
Fuente
cout<<"\n\t PRODUCTO DE MATRICES: C(MxN) x B(NxP) \n";
cout<<"\t Lectura y Escritura en archivos \n";
Console::ForegroundColor::set(ConsoleColor::DarkRed); // Cambiar
nuevamente la Fuente de Color
//Preparar un archivo de texto para lectura
cout<<"\n Se va a abrir un archivo para lectura \n";
ifstream entrada("D:\\Documentos\\matrices.dat");
// Verificar que el archivo se abre correctamente o no
if (entrada==NULL)
{
cout<<"\n\t\t\t\t\t Imposible Abrir matrices.dat";
cout<<"\n\n\t\t\t"; getch(); return 0;
}
else
{
cout<<"\n\t\t\t\t\t El archivo se ejecuto exitosamente \n
";
}
for (i=0; i<M; i++)
{
for (j=0; j<N; j++)
{
entrada>>A[i][j];
}
}
for (i=0; i<N; i++)
{
for (j=0; j<P; j++)
{
entrada>>B[i][j];
}
}
// Vamos a realizar la multiplicacion y el resultado se va a
almacenar en D:\\Documentos\\resultado.dat
ofstream salida("D:\\Documentos\\producto.txt");
cout<<"\n Matriz A \n";
salida<<" Archivo Creado por el programa \n ";
salida<<" Matriz A \n ";
for ( i=0; i<M; i++)
{
for (j=0; j<N; j++)
{
cout<<setw(11)<<A[i][j];salida<<setw(12)<<A[i][j];
}
cout<<"\n"; salida<<"\n ";
}

cout<<"\n Matriz B \n";


salida<<" Matriz B \n";
for ( i=0; i<N; i++)
{
for (j=0; j<P; j++)
{
cout<<setw(11)<<B[i][j];salida<<setw(12)<<B[i][j];
}
cout<<"\n"; salida<<"\n ";
}
//***************************************************
//obtencion del producto AxB
Console::ForegroundColor::set(ConsoleColor::White);
cout<<"\n Se va a calcular el producto matricial \n";
for (i=0; i<M; i++) // i indice de filas de a o indice de filas
de AxB
{
for (j=0; j<P; j++) // j indice de columnas de B
{
suma=0; // acumulador para AxB
for (k=0; k<N; k++) // calcular un elemento del
producto
{
suma=suma+ A[i][k] * B[k][j];
C[i][j]= suma;

}
}
}
// imprimir el producto en la pantalla y en el archivo de salida
cout<<"\n Imprime en pantalla y Guarda en disco el archivo \n";
Console::ForegroundColor::set(ConsoleColor::DarkGreen);
cout<<"\n Matriz AB \n";
salida<<" Matriz AB \n";
for (i=0; i<M; i++)
{
for (j=0; j<P; j++)
{
cout<<setw(11)<<C[i][j];salida<<setw(11)<<C[i][j];
}
cout<<"\n"; salida<<"\n";
}
entrada.close(); salida.close();
cout<<"\n\t\t\t\t Pulse una tecla para finalizar el programa ";
Console::ReadKey;
getch();
}
3. Ejecucion del Programa:

S-ar putea să vă placă și