Você está na página 1de 9

INE5201 - INTRODUO CINCIA DA COMPUTAO

Exerccios sobre
a) b) c) d) e) !)

!"ri#es $ exe %&o 'e so&()*o

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


o maior elemento de cada linha da matriz; o maior elemento de cada coluna da matriz; a m dia dos elementos de cada coluna; o produto de todos os elementos di!erentes de zero; "uantos elementos s#o ne$ati%os; posi&#o ocupada (linha-coluna) por um elemento cu'o %alor ser( lido pelo pro$rama)

{ 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,M !"#N,M !C$"%integer& M% arra' (1..), 1..*+ o, integer& -egin neg%./& produto%.1& M !"#N%.)& M !C$"%.*& { "eitura na matriz M } 0rite1'digite os dados da matriz'2& ,or i%.1 to M !"#N do 3egin 0riteln1'"inha ', i2& ,or j%.1 to M !C$" do readln1M(i,j+2& end& { o maior elemento de cada linha da matriz} ,or i%.1 to M !"#N do 3egin maior%./& ,or j%.1 to M !C$" do i, M(i,j+4maior then maior%.M(i,j+& 0riteln1'$ maior elemento da linha ', i, ' eh ' ,maior2& end& { o maior elemento de cada coluna da matriz} ,or j%.1 to M !C$" do 3egin maior%./& ,or i%.1 to M !"#N do i, M(i,j+4maior then maior%.M(i,j+& 0riteln1'$ maior elemento da coluna ',j,' eh ',maior2& end& { a m5dia dos elementos de cada coluna} ,or j%.1 to M !C$" do 3egin soma%./& ,or i%.1 to M !"#N do soma%.soma6M(i,j+& 0riteln1' media da coluna ',j,' eh ',soma7M !"#N2& ) 1

end& { o produto de todos os elementos di,erentes de zero} ,or i%.1 to M !"#N do ,or j%.1 to M !C$" do i, M(i,j+84/ then produto%.produto9M(i,j+& 0riteln1'$ produto dos elementos nao nulos eh ',produto2& { quantos elementos s:o negativos} ,or i%.1 to M !"#N do ,or j%.1 to M !C$" do i, M(i,j+8/ then neg%.neg61& 0riteln1'$ numero de elementos negativos eh ',neg2& { posi;:o ocupada 1linha<coluna2 por um elemento cujo valor ser= lido pelo programa} 0riteln& 0rite1'#ndique o numero que deseja procurar na matriz% '2& readln1N2& achei%./& ,or i%.1 to M !"#N do ,or j%.1 to M !C$" do i, M(i,j+.N then 3egin 0riteln1'>osicao na matriz% ',i,j2& achei%.1& end& i, achei./ then 0riteln1'?ste numero nao existe na matriz@@'2& readln& end.

*) +reencha uma matriz ,x, por leitura e calcule e mostre a matriz e o seu determinante)
program determinanteAordemB& var M%arra' (1..B,1..B+ o, real& #,C%integer& det%real& 3egin {prenchimento da matriz} 0riteln1'#n,orme a matriz%'2& ,or #%.1 to B do ,or D%. 1 to B do 3egin 0rite1'elemento ',#,',',C,'% '2& readln1M(#,C+2& 0riteln& end& {calculo do determinante} det%.M(1,1+9M(E,E+9M(B,B+6M(1,E+9M(E,B+9M(B,1+6M(E,1+9M(B,E+9M(1,B+& det%.det<M(1,B+9M(E,E+9M(B,1+<M(1,E+9M(E,1+9M(B,B+<M(E,B+9M(B,E+9M(1,1+& {mostra a matriz e o determinante} 0riteln1'$ determinante da matriz'2& ,or #%.1 to B do 3egin 0riteln& ,or D%. 1 to B do 0rite1M(#,C+%)%12& end& 0riteln& ) *

0riteln& 0riteln1'eh ',det%/%B2& readln& end.

,) Dada uma matriz M (- x -), preench-la por leitura) .ormar um %etor (arran'o de uma dimens#o) com os elementos das linhas pares da matriz (se$unda, "uarta e sexta linhas)) .ormar outro %etor com os elementos da dia$onal principal somados com os elementos da mesma linha, contidos na dia$onal secund(ria) Mostrar a matriz e os dois %etores)
{ exercicio B da lista so3re matrizes} const M !"#N . F& M !C$" . F& M !pares . 1G& var #,H,C%integer& M%arra' (1..M !"#N,1..M !C$"+ o, integer& pares%arra'(1..M !pares+ o, integer& I>%arra'(1..M !"#N+ o, integer& 3egin { "eitura na matriz M} 0riteln1'digite os dados da matriz'2& ,or #%.1 to M !"#N do 3egin 0riteln1'"inha ' , #2& ,or H%.1 to M !C$" do readln1M(#,H+2& end& { vetor com os elementos das linhas pares} D%.1& ,or #%.E to M !"#N do 3egin ,or H%.1 to M !C$" do 3egin pares(D+%.M(#,H+& D%.D61& end& #%.#61& end& 0riteln& 0riteln1'Jetor com os elementos das linhas pares%'2& ,or #%.1 to M !pares do 0rite1pares(#+%)2& { o outro vetor } D%.1& ,or #%.1 to M !"#N do 3egin I>(D+%.M(#,#+6M(i,M !C$"<i61+& D%.D61& end& 0riteln& 0riteln1'$ outro vetor%'2& ,or #%.1 to M !"#N do 0rite1I>(#+%)2& readln& end.

/) 0o !inal do semestre, um pro!essor est( preparando os conceitos de uma turma com *1 alunos) .oram realizadas duas pro%as e um trabalho extra-classe, com notas entre 1 e 11, podendo ter decimais) 2ada uma das pro%as %ale /13 e o trabalho *13 da nota !inal) .ornecer: as , notas, a nota !inal e o conceito de cada um dos alunos da turma) .ornecer tamb m a m dia de cada uma das pro%as e do trabalho)
4abela para con%ers#o da nota !inal em conceito: 5e 0. 67 8,1 conceito 9 5e 0. : 8,1 e M. 67 7,5 conceito ; 5e 0. : 7,5 e M. 67 -,1 conceito 2 5e 0. : -,1 e M. 67 ,,1 conceito < (pro%a de recupera&#o) 5e 0. : ,,1 conceito D
{ exercicio K da lista so3re matrizes } const M !"#N . E/& const M !C$" . K& {E provas 6 tra3alho 6 media} var nota%arra'(1..M !"#N,1..M !C$"+ o, real& media%arra'(1..M !C$"+ o, real& conceito%arra'(1..M !"#N+ o, char& #,H%integer& soma%real&

3egin { "eitura das notas } 0riteln1'digite as notas dos alunos%'2& ,or #%.1 to M !"#N do 3egin 0riteln1' luno ',#2& ,or H%.1 to M !C$" <1 do repeat readln1nota(#,H+2& i, 1nota(#,H+8/2 or 1nota(#,H+41/2 then 0riteln1'Nota invalida'2& until 1nota(#,H+4./2 and 1nota(#,H+8.1/2& end& {calculo da media e do conceito} ,or #%.1 to M !"#N do 3egin nota(#,M !C$"+%.1/.K9nota(#,1+6/.K9nota(#,E+6/.E9nota(#,B+2& i, 1nota(#,M !C$"+4.L2 then conceito(#+%.' ' else i,1nota(#,M !C$"+4.*.)2 then conceito(#+%.'-' else i,1nota(#,M !C$"+4.F2 then conceito(#+%.'C' else i,1nota(#,M !C$"+4.B2 then conceito(#+%.'M' else conceito(#+%.'I'& end& { calcula medias} ,or H%.1 to M !C$" do 3egin soma%./& ,or #%.1 to M !"#N do soma%.soma6nota(#,H+& media(H+%.soma7M !"#N& end& { mostra resultados} 0riteln& 0riteln1'Notas dos alunos%'2& ,or #%.1 to M !"#N do 3egin ) /

0riteln& 0riteln1' luno% ',#2& ,or H%.1 to M !C$" do 0rite1nota(#,H+%G%E2& 0rite1' conceito% ',conceito(#+2& end& 0riteln& 0riteln1'Medias%'2& ,or #%.1 to M !C$" do 0rite1media(#+%G%E2& readln& end.

5) =ma cooperati%a de a$ricultores coletou a temperatura m>nima di(ria de 11 locais de uma re$i#o ao lon$o do ms de a$osto de *118) Di$itar esses %alores (n?meros reais)) @alores %(lidos: entre A11 e /1) Mostrar para cada um dos 11 locais: as temperaturas !ornecidas, a temperatura m>nima, a m(xima e a m dia das temperaturas do local) Mostrar tamb m a temperatura m>nima $eral, a m(xima $eral e a m dia $eral da re$i#o)
{exercicio ) da lista de matrizes} {cada local corresponde a uma linha da matriz temp e cada coluna a um dia} const N" . 1/& {numero de locais} const NI . B1& {numero de ,dias} var #,H%integer& maior,menor,soma,N%real& temp% arra' (1..N",1..NI+ o, real& media,min,max% arra' (1..N"+ o, real& 3egin { "eitura das temperaturas} 0riteln1'Iigite as temperaturas% '2& ,or #%.1 to N" do 3egin 0riteln1'"ocal ',#2& ,or H%.1 to NI do repeat readln1temp(#,H+2& i, 1temp(#,H+8<1/2 or 1temp(#,H+4K/2 then 0riteln1'Oemperatura invalida'2& until 1temp(#,H+4.<1/2 and 1temp(#,H+8.K/2& end& {calculos} N%./& ,or #%.1 to N" do 3egin maior%.temp(#,1+& menor%.temp(#,1+& soma%./& ,or H%.1 to NI do 3egin i, temp(#,H+4maior then maior%.temp(#,H+& i, temp(#,H+8menor then menor%.temp(#,H+& soma%.soma6temp(#,H+& N%.N6temp(#,H+& end& min(#+%.menor& max(#+%.maior& media(#+%.soma7NI& end& maior%.max(1+& menor%.min(1+& ) 5

,or #%.1 to N" do 3egin i, max(#+4maior then maior%.max(#+& i, min(#+8menor then menor%.min(#+& end& { mostra resultados} ,or #%.1 to N" do 3egin 0riteln1'"ocal ',#2& ,or H%.1 to NI do 0riteln1temp(#,H+%F%12& 0riteln1' maior% ',max(#+%1%1,' menor% ',min(#+%1%1, ' media% ',media(#+%1%12& end& 0riteln& 0riteln1'Peral% maior temp.% ',maior%1%1,' menor temp.% ', menor%1%1,' media geral% ',N71N"9NI2%1%12& readln& end.

-) =ma matriz esparsa uma matriz "ue tem mais de *B, de seus elementos i$uais a zero) .azer um pro$rama "ue l uma matriz esparsa M(11,11) e !orma uma matriz condensada, de apenas trs colunas, com os elementos n#o nulos de M, de !orma "ue:
a) a primeira coluna cont m o %alor n#o nulo de M; b) a se$unda coluna cont m a linha de M onde !oi encontrado este %alor; e c) a terceira coluna cont m a coluna de M onde !oi encontrado este %alor) Cmprimir as duas matrizes)
{ exercicio F da lista so3re matrizes} const M !"#N . 1/& const M !C$" . 1/ & var i, j, D%integer& M%arra'(1..M !"#N,1..M !C$"+ o, integer& cond%arra' (1..BK,1..B+ o, integer& 3egin { "eitura na matriz M} 0riteln1'digite os dados da matriz esparsa'2& ,or i%.1 to M !"#N do 3egin 0riteln1'"inha ',i2& ,or j%.1 to M !C$" do readln1M(i,j+2& end& { cria a matriz esparsa} D%.1& ,or i%.1 to M !"#N do ,or j%.1 to M !C$" do i, M(i,j+84/ then 3egin cond(D,1+%.M(i,j+& cond(D,E+%.i& cond(D,B+%.j& D%.D61& end& { mostra as duas matrizes} 0riteln1'matriz esparsa%'2& ,or i%.1 to M !"#N do 3egin 0riteln& ) -

,or j%.1 to M !C$" do 0rite1M(i,j+%B2& end& 0riteln& 0riteln1'matriz condensada%'2& ,or i%.1 to D<1 do 3egin 0riteln& ,or j%.1 to B do 0rite1cond(i,j+%B2& end& readln& end.

7) 0a 4eoria de 5istemas de!ine-se como elemento minimax de uma matriz o menor elemento da linha em "ue se encontra o maior elemento da matriz) Dscre%a um pro$rama "ue preencha uma matriz M(11,11) por leitura e determine o seu elemento minimax)
{ exercicio * da lista so3re matrizes } const M !"#N . 1/& const M !C$" . 1/& var i, j, ",C,maior, menor%integer& M% arra'(1..M !"#N,1..M !C$"+ o, integer& 3egin { "eitura na matriz M } 0riteln1'digite os dados da matriz '2& ,or i%.1 to M !"#N do 3egin 0riteln1'"inha ',i2& ,or j%.1 to M !C$" do readln1M(i,j+2& end& {procura o elemento minimax } maior%.M(1,1+& "%.1& C%.1& ,or i%.1 to M !"#N do ,or j%.1 to M !C$" do i, M(i,j+4maior then 3egin maior%.M(i,j+& "%.i& C%.j& end& menor%.M(",C+& ,or j%.1 to M !C$" do i, M(",j+8menor then menor%.M(",j+& { mostra a matriz e o resultado} 0riteln& 0riteln1' matriz%'2& ,or i%.1 to M !"#N do 3egin 0riteln& ,or j%.1 to M !C$" do 0rite1M(i,j+%B2& end& 0riteln& 0riteln1'o elemento minimax da matriz eh% ',menor2& readln& end. ) 7

E) Matriz transposta, em matem(tica, o resultado da troca de linhas por colunas em uma determinada matriz) .a&a um pro$rama "ue leia uma matriz "uadrada 11x11 e calcule a sua matriz transposta) Mostre a matriz transposta)

8)

program matrizOransposta& const N" . 1/& const NC . 1/& var M,O%arra' (1..N",1..NC+ o, integer& #,H%integer& 3egin {preenchimento da matriz} 0riteln1'in,orme a matriz'2& ,or #%.1 to N" do 3egin 0riteln1'linha ',#2& ,or H%.1 to NC do readln1M(i,j+2& end& {gera a matriz transposta} ,or #%.1 to N" do ,or H%.1 to NC do O(H,#+%.M(#,H+& {mostra a matriz transposta} ,or #%.1 to N" do 3egin 0riteln& ,or H%.1 to NC do 0rite1O(#,H+%F2& end& readln& end.

11).a&a um pro$rama "ue leia 0 e uma matriz 0x0 (com 0:7*1) e in!orme se a matriz sim trica ou n#o)
var M%arra' (1..E/,1..E/+ o, integer& #,H,N,N",NC,simetrica%integer& 3egin {preenchimento da matriz} 0riteln1'#n,orme o nro de linhas da matriz quadrada% '2& readln1N2& N"%.N& NC%.N& 0riteln1'in,orme a matriz'2& ,or #%.1 to N" do 3egin 0riteln1'linha ',#2& ,or H%.1 to NC do readln1M(i,j+2& end& {veri,ica se e' simetrica} simetrica%.1& ,or #%.1 to N" do ,or H%.1 to NC do i, M(#,H+ 84 M(H,#+ then simetrica%./& {mostra a matriz e a simetria} 0riteln& ) E

,or #%.1 to N" do 3egin 0riteln& ,or H%.1 to NC do 0rite1M(i,j+%B2& end& 0riteln& i, simetrica.1 then 0riteln1'a matriz eh simetrica'2 else 0riteln1'a matriz nao eh simetrica'2& readln& end.