Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Respostas Exercicios Matrizes, Exercícios de Matlab

Respostas Exercicios Matrizes - Matlab

Tipologia: Exercícios

2019

Compartilhado em 21/08/2019

Lufralo
Lufralo 🇧🇷

4

(1)

3 documentos

1 / 9

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
INE5201 - INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Exercícios sobre matrizes – exemplo de solução
1) Dada uma matriz M (5 x 7), preenchê-la por leitura e mostrar:
a) o maior elemento de cada linha da matriz;
b) o maior elemento de cada coluna da matriz;
c) a média dos elementos de cada coluna;
d) o produto de todos os elementos diferentes de zero;
e) quantos elementos são negativos;
f) posição ocupada (linha-coluna) por um elemento cujo valor será lido pelo programa.
{ exercicio 1 da lista de matrizes.
Cada item do exercicio esta' resolvido separadamente para maior clareza,
mas o mesmo loop que percorre a matriz poderia ter sido usado
para mais de um dos itens. }
var
i, j, maior, soma,N,produto,neg,achei,MAXLIN,MAXCOL:integer;
M: array [1..5, 1..7] of integer;
Begin
neg:=0;
produto:=1;
MAXLIN:=5;
MAXCOL:=7;
{ Leitura na matriz M }
write('digite os dados da matriz');
for i:=1 to MAXLIN
do begin
writeln('Linha ', i);
for j:=1 to MAXCOL do
readln(M[i,j]);
end;
{ o maior elemento de cada linha da matriz}
for i:=1 to MAXLIN
do begin
maior:=0;
for j:=1 to MAXCOL do
if M[i,j]>maior then maior:=M[i,j];
writeln('O maior elemento da linha ', i, ' eh ' ,maior);
end;
{ o maior elemento de cada coluna da matriz}
for j:=1 to MAXCOL
do begin
maior:=0;
for i:=1 to MAXLIN do
if M[i,j]>maior then maior:=M[i,j];
writeln('O maior elemento da coluna ',j,' eh ',maior);
end;
{ a média dos elementos de cada coluna}
for j:=1 to MAXCOL
do begin
soma:=0;
for i:=1 to MAXLIN do
soma:=soma+M[i,j];
writeln('A media da coluna ',j,' eh ',soma/MAXLIN);
end;
1
pf3
pf4
pf5
pf8
pf9

Pré-visualização parcial do texto

Baixe Respostas Exercicios Matrizes e outras Exercícios em PDF para Matlab, somente na Docsity!

INE5201 - INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

Exercícios sobre matrizes – exemplo de solução

1) Dada uma matriz M (5 x 7), preenchê-la por leitura e mostrar:

a) o maior elemento de cada linha da matriz;

b) o maior elemento de cada coluna da matriz;

c) a média dos elementos de cada coluna;

d) o produto de todos os elementos diferentes de zero;

e) quantos elementos são negativos;

f) posição ocupada (linha-coluna) por um elemento cujo valor será lido pelo programa.

{ exercicio 1 da lista de matrizes. Cada item do exercicio esta' resolvido separadamente para maior clareza, mas o mesmo loop que percorre a matriz poderia ter sido usado para mais de um dos itens. }

var i, j, maior, soma,N,produto,neg,achei,MAXLIN,MAXCOL:integer; M: array [1..5, 1..7] of integer;

Begin neg:=0; produto:=1; MAXLIN:=5; MAXCOL:=7;

{ Leitura na matriz M } write('digite os dados da matriz'); for i:=1 to MAXLIN do begin writeln('Linha ', i); for j:=1 to MAXCOL do readln(M[i,j]); end;

{ o maior elemento de cada linha da matriz} for i:=1 to MAXLIN do begin maior:=0; for j:=1 to MAXCOL do if M[i,j]>maior then maior:=M[i,j]; writeln('O maior elemento da linha ', i, ' eh ' ,maior); end;

{ o maior elemento de cada coluna da matriz} for j:=1 to MAXCOL do begin maior:=0; for i:=1 to MAXLIN do if M[i,j]>maior then maior:=M[i,j]; writeln('O maior elemento da coluna ',j,' eh ',maior); end;

{ a média dos elementos de cada coluna} for j:=1 to MAXCOL do begin soma:=0; for i:=1 to MAXLIN do soma:=soma+M[i,j]; writeln('A media da coluna ',j,' eh ',soma/MAXLIN); end;

{ o produto de todos os elementos diferentes de zero} for i:=1 to MAXLIN do for j:=1 to MAXCOL do if M[i,j]<>0 then produto:=produto*M[i,j]; writeln('O produto dos elementos nao nulos eh ',produto);

{ quantos elementos são negativos} for i:=1 to MAXLIN do for j:=1 to MAXCOL do if M[i,j]<0 then neg:=neg+1; writeln('O numero de elementos negativos eh ',neg);

{ posição ocupada (linha-coluna) por um elemento cujo valor será lido pelo programa} writeln; write('Indique o numero que deseja procurar na matriz: '); readln(N); achei:=0; for i:=1 to MAXLIN do for j:=1 to MAXCOL do if M[i,j]=N then begin writeln('Posicao na matriz: ',i,j); achei:=1; end;

if achei=0 then writeln('Este numero nao existe na matriz!!'); readln; end.

  1. Preencha uma matriz 3x3 por leitura e calcule e mostre a matriz e o seu determinante.

program determinante_ordem3; var M:array [1..3,1..3] of real; I,K:integer; det:real;

begin {prenchimento da matriz} writeln('Informe a matriz:'); for I:=1 to 3 do for k:= 1 to 3 do begin write('elemento ',I,',',K,': '); readln(M[I,K]); writeln; end;

{calculo do determinante} det:=M[1,1]M[2,2]M[3,3]+M[1,2]M[2,3]M[3,1]+M[2,1]M[3,2]M[1,3]; det:=det-M[1,3]M[2,2]M[3,1]-M[1,2]M[2,1]M[3,3]-M[2,3]M[3,2]M[1,1];

{mostra a matriz e o determinante} writeln('O determinante da matriz'); for I:=1 to 3 do begin writeln; for k:= 1 to 3 do write(M[I,K]:5:1); end; writeln; writeln;

0 e 10, podendo ter decimais. Cada uma das provas vale 40% e o trabalho 20% da

nota final. Fornecer: as 3 notas, a nota final e o conceito de cada um dos alunos da

turma. Fornecer também a média de cada uma das provas e do trabalho.

Tabela para conversão da nota final em conceito: Se NF >= 9,0 conceito A Se NF < 9,0 e MF >= 7,5 conceito B Se NF < 7,5 e MF >= 6,0 conceito C Se NF < 6,0 e MF >= 3,0 conceito R (prova de recuperação) Se NF < 3,0 conceito D

{ exercicio 4 da lista sobre matrizes } const MAXLIN = 20; const MAXCOL = 4; {2 provas + trabalho + media}

var nota:array[1..MAXLIN,1..MAXCOL] of real; media:array[1..MAXCOL] of real; conceito:array[1..MAXLIN] of char; I,J:integer; soma:real; begin { Leitura das notas } writeln('digite as notas dos alunos:'); for I:=1 to MAXLIN do begin writeln('Aluno ',I); for J:=1 to MAXCOL - do repeat readln(nota[I,J]); if (nota[I,J]<0) or (nota[I,J]>10) then writeln('Nota invalida'); until (nota[I,J]>=0) and (nota[I,J]<=10); end; {calculo da media e do conceito} for I:=1 to MAXLIN do begin nota[I,MAXCOL]:=(0.4nota[I,1]+0.4nota[I,2]+0.2*nota[I,3]); if (nota[I,MAXCOL]>=9) then conceito[I]:='A' else if(nota[I,MAXCOL]>=7.5) then conceito[I]:='B' else if(nota[I,MAXCOL]>=6) then conceito[I]:='C' else if(nota[I,MAXCOL]>=3) then conceito[I]:='R' else conceito[I]:='D'; end; { calcula medias} for J:=1 to MAXCOL do begin soma:=0; for I:=1 to MAXLIN do soma:=soma+nota[I,J]; media[J]:=soma/MAXLIN; end; { mostra resultados} writeln; writeln('Notas dos alunos:'); for I:=1 to MAXLIN do begin writeln; writeln('Aluno: ',I); for J:=1 to MAXCOL do write(nota[I,J]:8:2);

write(' conceito: ',conceito[I]); end; writeln; writeln('Medias:'); for I:=1 to MAXCOL do write(media[I]:8:2); readln; end.

  1. Uma cooperativa de agricultores coletou a temperatura mínima diária de 10 locais de

uma região ao longo do mês de agosto de 2009. Digitar esses valores (números reais). Valores válidos: entre –10 e 40. Mostrar para cada um dos 10 locais: as temperaturas fornecidas, a temperatura mínima, a máxima e a média das temperaturas do local. Mostrar também a temperatura mínima geral, a máxima geral e a média geral da região.

{exercicio 5 da lista de matrizes} {cada local corresponde a uma linha da matriz temp e cada coluna a um dia} const NL = 10; {numero de locais} const ND = 31; {numero de fdias} var I,J:integer; maior,menor,soma,S:real; temp: array [1..NL,1..ND] of real; media,min,max: array [1..NL] of real; begin

{ Leitura das temperaturas} writeln('Digite as temperaturas: '); for I:=1 to NL do begin writeln('Local ',I); for J:=1 to ND do repeat readln(temp[I,J]); if (temp[I,J]<-10) or (temp[I,J]>40) then writeln('Temperatura invalida'); until (temp[I,J]>=-10) and (temp[I,J]<=40); end;

{calculos} S:=0; for I:=1 to NL do begin maior:=temp[I,1]; menor:=temp[I,1]; soma:=0; for J:=1 to ND do begin if temp[I,J]>maior then maior:=temp[I,J]; if temp[I,J]<menor then menor:=temp[I,J]; soma:=soma+temp[I,J]; S:=S+temp[I,J]; end; min[I]:=menor; max[I]:=maior; media[I]:=soma/ND; end; maior:=max[1]; menor:=min[1]; for I:=1 to NL do begin if max[I]>maior then maior:=max[I];

writeln('matriz condensada:'); for i:=1 to k- do begin writeln; for j:=1 to 3 do write(cond[i,j]:3); end; readln; end.

  1. Na Teoria de Sistemas define-se como elemento minimax de uma matriz o menor

elemento da linha em que se encontra o maior elemento da matriz. Escreva um programa que preencha uma matriz M(10,10) por leitura e determine o seu elemento minimax.

{ exercicio 7 da lista sobre matrizes }

const MAXLIN = 10; const MAXCOL = 10; var i, j, L,C,maior, menor:integer; M: array[1..MAXLIN,1..MAXCOL] of integer; begin { Leitura na matriz M } writeln('digite os dados da matriz '); for i:=1 to MAXLIN do begin writeln('Linha ',i); for j:=1 to MAXCOL do readln(M[i,j]); end;

{procura o elemento minimax } maior:=M[1,1]; L:=1; C:=1; for i:=1 to MAXLIN do for j:=1 to MAXCOL do if M[i,j]>maior then begin maior:=M[i,j]; L:=i; C:=j; end; menor:=M[L,C]; for j:=1 to MAXCOL do if M[L,j]<menor then menor:=M[L,j];

{ mostra a matriz e o resultado} writeln; writeln('A matriz:'); for i:=1 to MAXLIN do begin writeln; for j:=1 to MAXCOL do write(M[i,j]:3); end; writeln; writeln('o elemento minimax da matriz eh: ',menor); readln; end.

  1. Matriz transposta, em matemática, é o resultado da troca de linhas por colunas em uma

determinada matriz. Faça um programa que leia uma matriz quadrada 10x10 e calcule a sua matriz transposta. Mostre a matriz transposta.

program matrizTransposta; const NL = 10; const NC = 10; var M,T:array [1..NL,1..NC] of integer; I,J:integer; begin {preenchimento da matriz} writeln('informe a matriz'); for I:=1 to NL do begin writeln('linha ',I); for J:=1 to NC do readln(M[i,j]); end;

{gera a matriz transposta} for I:=1 to NL do for J:=1 to NC do T[J,I]:=M[I,J];

{mostra a matriz transposta} for I:=1 to NL do begin writeln; for J:=1 to NC do write(T[I,J]:6); end; readln; end.

  1. Faça um programa que leia N e uma matriz NxN (com N<=20) e informe se a matriz

é simétrica ou não.

var M:array [1..20,1..20] of integer; I,J,N,NL,NC,simetrica:integer; begin

{preenchimento da matriz} writeln('Informe o nro de linhas da matriz quadrada: '); readln(N); NL:=N; NC:=N; writeln('informe a matriz'); for I:=1 to NL do begin writeln('linha ',I); for J:=1 to NC do readln(M[i,j]); end; {verifica se e' simetrica} simetrica:=1; for I:=1 to NL do for J:=1 to NC do if M[I,J] <> M[J,I] then simetrica:=0;

{mostra a matriz e a simetria} writeln; for I:=1 to NL do begin writeln; for J:=1 to NC do write(M[i,j]:3);