Matrizes Complexas
AEDS III - 2014/2
Trabalho Prático 0
Matrizes Complexas
Introdução
Este relatório tem como objetivo descrever a implementação do problema de multiplicação de matrizes de números complexos. Um número complexo é aquele que pode ser escrito na forma z = x + iy, ou seja, possui duas partes: x é a parte real e iy é a parte imaginária, sendo que i denota a unidade imaginária.
O usuário deverá informar as matrizes através um arquivo de entrada, que poderá conter vários pares de matrizes (várias instâncias) a serem multiplicados e o resultado de cada multiplicação deverá ser exibido em um arquivo de saída.
Solução Proposta
A solução para este problema consiste basicamente em implementar um algoritmo que obtém os dados do arquivo e realiza a multplicação das matrizes informadas.
Como os elementos da matriz são números complexos, a multiplicação entre eles é realizada de forma diferente da usual, uma vez o produto desta operação se dá da seguinte forma:
(a+bi)*(c+di) = (ac-bd)+(bc+ad)i
Além disso, o programa permite ao usuário realizar várias instâncias de multiplicação, ou seja, realizar várias multiplicações sucessivas.
O resultado das multiplicações será impresso em um arquivo de saída.
Implementação
O arquivo recebido pelo programa possui a seguinte estrutura:
Sendo que:
O número de instâncias significa a quantidade de pares de matrizes do arquivo, ou seja, quantas multiplicações serão feitas;
As dimensões da matriz possuem dois inteiros x e y que indicam as duas dimensões;
A quantidade de valores das células das matrizes será igual a x*y. O conteúdo de cada célula deverá ser um número complexo;
Inicialmente, foi criada uma estrutura chamada NumeroComplexo. Ela é responsável por armazenar a parte real e a parte imaginária do número complexo em variáveis do tipo double. Para ser armazenado, o número é lido como uma string e passado para uma função que divide a variável para obter