TP0 - Algoritmos e estrutura de dados
ˆ
Departamento de Ciencia da Computacao
¸˜
Algoritmos e Estruturas de Dados III
2o Semestre de 2014
Trabalho Pr´tico 0 - Matrizes Complexas a Esse trabalho pr´tico tem como objetivo familiarizar o aluno com conceitos da linguagem C, do a ambiente de programa¸˜o Unix, aloca¸˜o dinˆmica e o utilit´rio make. ca ca a a
Problema
Este trabalho consiste em implementar um programa para multiplica¸˜o de matrizes. As maca trizes possuem n´meros complexos. Um n´mero complexo ´ um n´mero z que pode ser escrito na u u e u forma z = x + iy, em que x e y s˜o n´meros reais (tipo double) e i denota a unidade imagin´ria. A a u a multiplica¸˜o de um n´mero complexo (a+bi) por (c+di) = (ac-bd)+(bc+ad)i. As matrizes devem ca u ser alocadas e desalocadas dinˆmicamente com as fun¸˜es malloc() e free(). a co
Entrada e Sa´ ıda O programa dever´ solucionar m´ltiplas instˆncias do problema em uma unica execu¸˜o. Ser´ a u a ´ ca a passado na entrada de dados os tamanhos das matrizes em cada instˆncia do problema. A sa´ a ıda ser´ a matriz resultante, uma para cada instˆncia da entrada. A entrada ser´ lida de um arquivo e a a a o resultado do programa deve ser impresso em outro arquivo de sa´ ıda. Ambos arquivos devem ser passados por parˆmetro na chamada do execut´vel: a a
./tp0 input.txt output.txt
O arquivo de entrada possui um inteiro N na primeira linha onde N ´ o n´mero de instˆncias e u a a serem computadas. Em seguida, as N instˆncias s˜o definidas da seguinte forma. A primeira a a linha possui dois inteiros XY que indicam as 2 dimens˜es das matrizes. As linhas seguintes ter˜o o a
X ∗ Y n´meros complexos indicando os valores das c´lulas da matriz. Os n´meros complexos ser˜o u e u a sempre da forma a+bi mesmo que a ou b sejam 0.
Para cada instˆncia, deve ser impresso no arquivo de sa´ a ıda, a matriz resultante. Entre cada sa´ das instˆncias, incluir uma linha em branco