190 likes | 323 Views
Matrizes & Funções. Exercício 1. Construa funções para calcular o produto escalar, vetorial e misto entre vetores de três dimensões As funções devem receber como parâmetro arrays, que contêm cada um, as coordenadas x, y e z dos vetores. Resposta. Real produtoEscalar(real[] vet1, real[] vet2)
E N D
Exercício 1 • Construa funções para calcular o produto escalar, vetorial e misto entre vetores de três dimensões • As funções devem receber como parâmetro arrays, que contêm cada um, as coordenadas x, y e z dos vetores
Resposta Real produtoEscalar(real[] vet1, real[] vet2) Início real res = vet1[0]*vet2[0] res = res+ vet1[1]*vet2[1]+ vet1[2]*vet2[2] fim
Resposta Real produtoEscalar(real[] vet1, real[] vet2) Início real res = vet1[0]*vet2[0] res = res+ vet1[1]*vet2[1]+ vet1[2]*vet2[2] retorne res fim
Resposta Real[] prodVetorial(real[] vet1, real[] vet2) Início real[] res = real[3] res[0] = vet1[1]*vet2[2]-vet2[1]*vet1[2] res[0] = vet1[2]*vet2[0]-vet2[2]*vet1[0] res[2] = vet1[0]*vet2[1]-vet2[0]*vet1[1] retorne res fim
Resposta Real[] produtoVetorial(real[] vet1, real[] vet2) Início real[] res = real[3] res[0] = vet1[1]*vet2[2]-vet2[1]*vet1[2] res[1] = vet1[2]*vet2[0]-vet2[2]*vet1[0] res[2] = vet1[0]*vet2[1]-vet2[0]*vet1[1] retorne res fim
Resposta Real produtoMisto(real[] u, real[] v, real[] w) Início real[] vetAux = produtoVetorial(u,v) retorne produtoEscalar(vetAux,w) fim
Exercício 2 • Faça uma função que receba um conjunto de números e calcule a variância • A variância é dada por: • é a média desta amostra. Teste o sua função para a seqüência {1,2,3,4,5,6}. O resultado deve se aproximar de 2,9
Resposta Real calcVariância(real[] nums, inteiro tam) Início real media = calcularMedia(nums, tam) inteiro i=0 real somaQuad=0 para (i<tam;i=i+1) faça real aux = nums[i]- media somaQuad = somaQuad + aux*aux fimPara retorne somaQuad fim
Resposta Real calcVariância(real[] nums, inteiro tam) Início real media = calcularMedia(nums, tam) inteiro i=0 real somaQuad=0 para (i<tam;i=i+1) faça real aux = nums[i]- media somaQuad = somaQuad + aux*aux fimPara retorne somaQuad/((real)tam) fim Para casa: fazer a função calcularMedia
Exercício 3 • Faça um algoritmo que leia duas matrizes quadradas e calcule a multiplicação destas matrizes. A ordem, e os valores de cada matriz devem ser dados pelo usuário
Resposta Algoritmo Mult Matriz() Início inteiro ordem=0 real[][] matA real[][] matB imprimir “digite a ordem da matriz” ler ordem
matA=real[ordem][ordem] matB=real[ordem][ordem] inteiro i=0 para (i<ordem;i=i+1) faça inteiro j=0 para (j<ordem;j=j+1) faça imprimir “digite o elemento ”+i+“ ”+j+“ da matriz A” ler matA[i][j] fimPara fimPara
i=0 para (i<ordem;i=i+1) faça inteiro j=0 para (j<ordem;j=j+1) faça imprimir “digite o elemento ”+i+“ ”+j+“ da matriz B” ler matB[i][j] fimPara fimPara
real mult = real[ordem][ordem] i=0 para (i<ordem;i=i+1) faça inteiro j=0 para (j<ordem;j=j+1) faça mult[i][j]=0 inteiro k=0 para (k<ordem;k=k+1) mult[i][j]=mult[i][j]+matA[i][k]*matB[k][i] fimPara fimPara fimPara
i=0 para (i<ordem;i=i+1) faça inteiro j=0 para (j<ordem;j=j+1) faça imprimir mult[i][j] fimPara fimPara fim
Erro • O que há de errado no último algoritmo?
Erro • O que há de errado no último algoritmo? • Algoritmo Mult Matriz()
Erro • O que há de errado no último algoritmo? • Algoritmo Mult Matriz() • Algoritmo MultMatriz()