Sunday, November 28, 2010

Linguagem C: Dependência Linear

Este programa abaixo, para dois vetores escolhidos pelo usuário, informa se há dependência linear entre eles ou não.

Ele faz a utilização de uma struct para a criação de vetores e utiliza-se de uma função chamada linear() para determinar se há dependência linear ou não.

Obs: o programa foi compilado na plataforma Mac com o Xcode. Para compilar em Windows, a chamada para o comando do sistema operacional

system("clear");

deve ser trocado por

system("cls");

para limpar a tela do console

=====================================================

#include "stdio.h"
#include "stdlib.h"

struct vetor {
float x;
float y;
float z;
} v1, v2, v3;

int linear();

int main (int argc, const char * argv[]) {

int resultado = 0;

system("clear");

printf("Este programa determina se os vetores informados são linearmente dependentes ou não:\n");
printf("************************************************************************************\n");

printf("\n");
printf("Informe as coordenadas do vetor v1: \n\n");
printf("Coordenada x: "); scanf("%f", &v1.x);
printf("Coordenada y: "); scanf("%f", &v1.y);
printf("Coordenada z: "); scanf("%f", &v1.z);

printf("\n");
printf("Informe as coordenadas do vetor v2: \n");
printf("Coordenada x: "); scanf("%f", &v2.x);
printf("Coordenada y: "); scanf("%f", &v2.y);
printf("Coordenada z: "); scanf("%f", &v2.z);

printf("\n");
printf("Informe as coordenadas do vetor v3: \n");
printf("Coordenada x: "); scanf("%f", &v3.x);
printf("Coordenada y: "); scanf("%f", &v3.y);
printf("Coordenada z: "); scanf("%f", &v3.z);

resultado = linear();

printf("\n***************************************************************\n");

if (resultado == 0)
printf("Os vetores informados são linearmente dependentes");
else
printf("Os vetores informados são linearmente independentes");

printf("\n***************************************************************\n\n");

return 0;
}

int linear()
{
float resultado = ((v1.x * v2.y * v3.z) + (v1.y * v2.z * v3.x) + (v1.z * v2.x * v3.y)
- (v3.x * v2.y * v1.z) - (v3.y * v2.z * v1.x) - (v3.z * v2.x * v1.y));

if (resultado == 0.0)
return 0;
else
return 1;
}

No comments:

Post a Comment