24 de fevereiro de 2010

Atividade 1 - Matrizes

Utilizando linguagem C, resolva os problemas abaixo. Entregue as respostas separadamente até o dia 19/02 as 23:55h

1- Calcular a determinante de uma matriz 4x4 através do método de Sarrus.


#include <stdio.h>
#include <math.h>
#include <conio.h>

int calcSarrus(int matriz[4][4], int coluna);

void main(void)
{

int matriz[4][4];
float dt;
int linha, coluna;

clrscr();

for(linha = 0; linha < 4; linha++){
for(coluna = 0; coluna < 4; coluna++){
printf("\nEntre com o valor de [%d][%d]: ", linha, coluna);
scanf("%d", &matriz[linha][coluna]);
}
}

printf("\nMatriz:\n");
for(linha = 0; linha < 4; linha++){
for(coluna = 0; coluna < 4; coluna++){
printf("\t[%d]", matriz[linha][coluna]);
}
printf("\n");
}

dt = 0;
for(coluna = 0; coluna < 4; coluna++){
dt += matriz[0][coluna] * pow(-1,(0+coluna)) * calcSarrus(matriz, coluna);
}

printf("\nValor da Determinante: %.0f", dt);

getch();

}

int calcSarrus(int matriz[4][4], int coluna){
int i, j, x, y, dt;
int m_temp[3][5];

x = 0;
y = 0;

for(i = 1; i < 4; i++){
for(j = 0; j < 4; j++){
if(j != coluna){
m_temp[x][y] = matriz[i][j];
if(y < 2)
m_temp[x][y+3] = matriz[i][j];
y++;
}
}
y = 0;
x++;
}

dt = (m_temp[0][0] * m_temp[1][1] * m_temp[2][2]) + (m_temp[0][1] * m_temp[1][2] * m_temp[2][0]) + (m_temp[1][1] * m_temp[1][0] * m_temp[2][1]) - (m_temp[0][0] * m_temp[1][2] * m_temp[2][1]) - (m_temp[0][1] * m_temp[1][0] * m_temp[2][2]) - (m_temp[0][2] * m_temp[1][1] * m_temp[2][0]);

return dt;

}


2- Resolver um sistema de duas equações a duas incógnitas através do método de Cramer.


#include <stdio.h>>
#include <conio.h>

void main(void)
{
int a1=0, a2=0, b1=0, b2=0, c1=0, c2=0;
float x,y,d,dx,dy;

clrscr();

printf("\na1: ");
scanf("%d", &a1);
printf("\nb1: ");
scanf("%d", &b1);
printf("\nc1: ");
scanf("%d", &c1);
printf("\na2: ");
scanf("%d", &a2);
printf("\nb2: ");
scanf("%d", &b2);
printf("\nc2: ");
scanf("%d", &c2);

d = (a1 * b2) - (a2 * b1);
dx = (c1 * b2) - (c2 * b1);
dy = (a1 * c2) - (a2 * c1);

if (d != 0.0){
x=(dx / d);
y=(dy / d);
}

printf("\nX: %.2f", x);
printf("\nY: %.2f", y);

getch();

}