“introdução a computação” capítulo ii estruturas de dados universidade federal de são...
TRANSCRIPT
![Page 1: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/1.jpg)
“Introdução a Computação”Capítulo II
Estruturas de Dados
Universidade Federal de São Carlos Universidade Federal de São Carlos
Departamento de ComputaçãoDepartamento de Computação
Luanna Lopes [email protected]
Mestrado em Ciência da ComputaçãoMestrado em Ciência da Computação
Sistemas Distribuídos e RedesSistemas Distribuídos e RedesSão Carlos – Maio 2006
![Page 2: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/2.jpg)
Variáveis compostas Homogêneas
• Possibilidade de acesso:– Variáveis;– Conjunto de dados agrupados.
• Para calcular média da sala e informar quais alunos tem nota >= média:– Declarar num de variáveis = num de alunos
– Impraticável
• Utiliza-se Estruturas de Dados:– Vetores ou Matrizes
![Page 3: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/3.jpg)
Unidimensionais - Vetores
• São posições de memória, de mesmo conteúdo, identificadas por um mesmo nome (identificador), individualizadas por índices;
• Exemplo:– Conjunto de NOTAS:
• Declaração:Var identificador: Array [Li..Ls] of tipo;
• Exemplo:10 20 30 40 50 60 70 80 40 60
Vetor
1 2 3 4 5 6 7 8 9 10
![Page 4: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/4.jpg)
Exemplo de atribuição
• Var vetInt: Array[1..10] of integer;
• Var vetChar: Array[1..26] of char;
• Var vetStr: Array[1..15] of String[2];
10 20 30 40 50 60 70 80 40 60
1 2 3 4 5 6 7 8 9 10
A B C D V W X Y Z
1 2 3 4 ... 22 23 24 25 26
aa bb cc dd vv ab cd ve dv
1 2 3 4 ... 11 12 13 14 15
![Page 5: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/5.jpg)
Atribuição
• Referência a todo vetor:
Atribuição de um vetor para outro:– V1:=V2; {V1 mesmo tipo e tam de V2}
• Referência a um único elemento do vetor:– Atribuição– Leitura– Uso de Expressões
![Page 6: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/6.jpg)
Referências ao Vetor
• V1[5] := 2; {V1 vetor de inteiros}• V1[2] := V1[1] + 10;• V1[i+1] := V1[i+2]; {i>=0}• read(V1[1]);• write(V1[i]);
• For i:=1 to N do begin
read(V1[i]);write(V1[i]);
end;
![Page 7: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/7.jpg)
Exercícios
1) Dada uma seqüência de n números, imprimi-la na ordem inversa à da leitura.
2) Fazer um programa que leia 50 valores inteiros, armazene-os em um vetor, calcule e imprima a média dos valores.
1/30
![Page 8: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/8.jpg)
Program calculaMedia;Uses crt;var i: integer; vetor: array [1..5] of integer; soma, media: real;
begin clrscr; soma:=0; {Inicializa variavel com 0} {Leitura dos valores} for i:=1 to 5 do begin writeln('Informe o valor ', i); readln(vetor[i]); soma := soma + vetor[i]; {Soma os valores} end; {Calculo da media} media := soma/5; writeln('A media dos valores eh:', media:1:5); readln;end.
Resolução Exercício 2
![Page 9: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/9.jpg)
Bidimensionais - Matrizes
• Declaração:
Var identificador: Array [Li..Ls, Li..Ls] of tipo;
• Exemplo:
Var Matriz: Array [1..5, 1..2] of integer;
Matriz
1 2 3 4 5
1
2
15 25 30 11 15
10 20 30 40 50
![Page 10: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/10.jpg)
Atribuição
• Referência a toda matriz:
Atribuição de uma matriz para outra:– M1:=M2; {M1 mesmo tipo e tam de M2}
• Referência a um único elemento da matriz:– Atribuição– Leitura– Uso de Expressões
1/30
![Page 11: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/11.jpg)
Referências
• M1[1,2] := 2; {M1 matriz de inteiros}• M1[2,1] := M1[2,2] + 10;• M1[i+1,j] := M1[i+2,j+1]; {i, j>=0}• read(M1[1,3]);• write(M1[i,j]);• for i:=1 to N do
for j:= 1 to M do
beginwriteln(‘Entre com M[’i,’,’,j,’]’);
read(M1[i,j]);end;
![Page 12: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/12.jpg)
Exercícios
1) Dada uma matriz de tamanho 5 x 5, preencher a matriz com valores iguais a soma de suas posições e imprimir o resultado.
2) Ler 2 matrizes 5x4, calcular e escrever a matriz soma entre elas.
1/30
![Page 13: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/13.jpg)
Program somaMatrizes;Uses crt;Var i,j: integer; A, B, Soma: array [1..5, 1..4] of integer;
Begin clrscr; {Lendo a Matriz A} for i:= 1 to 5 do for j:= 1 to 4 do begin writeln('Escreva valor de A[',i,',',j,']'); readln(A[i,j]); end;
Resolução Exercício 2
![Page 14: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/14.jpg)
{Lendo a Matriz B}for i:= 1 to 5 do for j:= 1 to 4 do begin writeln('Escreva valor de B[',i,',',j,']'); readln(B[i,j]); end;
writeln(' '); {Somando as matrizes} for i:= 1 to 5 do begin for j:= 1 to 4 do begin Soma[i,j]:= A[i,j] + B[i,j]; write(Soma[i,j]); {Imprime as linhas da matriz} end; writeln(' '); {pula linha para imprimir proxima linha} end; readln;end.
![Page 15: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/15.jpg)
“Introdução a Computação”Capítulo II
Estruturas de Dados
Universidade Federal de São Carlos Universidade Federal de São Carlos
Departamento de ComputaçãoDepartamento de Computação
Luanna Lopes [email protected]
Mestrado em Ciência da ComputaçãoMestrado em Ciência da Computação
Sistemas Distribuídos e RedesSistemas Distribuídos e RedesSão Carlos – Maio 2006
![Page 16: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/16.jpg)
Exercício Fixação
• Dadas duas matrizes reais Amxn e Bnxp, calcular o produto de A por B.
![Page 17: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/17.jpg)
program Produto; var
m, n, nb, p, i, j, k: integer; Prod: real; A, B, C: array [1..50,1..50] of real; begin
write ('Entre com o tamanho(mXn) da matriz A: '); readln(m,n); write ('Digite a matriz A: '); for i:=1 to m do
for j:=1 to n do read(A[i,j]);
write ('Entre com o tamanho(nXp) da matriz B: '); readln(nb,p); if nb<>n then write('Nao existe o produto da matriz A por B!!')
else begin
write ('Digite a matriz B: '); for i:=1 to n do
for j:=1 to p do read(B[i,j]);
i := 1;
![Page 18: “Introdução a Computação” Capítulo II Estruturas de Dados Universidade Federal de São Carlos Departamento de Computação Luanna Lopes Lobato luanna_lobato@dc.ufscar.br](https://reader034.vdocuments.site/reader034/viewer/2022051515/552fc173497959413d8eee08/html5/thumbnails/18.jpg)
while i<=m do begin j := 1; while j<=p do begin Prod := 0; for k:=1 to n do
Prod := Prod + A[i,k]*B[k,j]; C[i,j] := Prod; j := j+1;
Prod := 0 end; i := i+1
end; writeln ('Matriz A X B =');
for i:=1 to m do begin
for j:=1 to p do write(C[i,j],' '); writeln
end end end.