A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Agregado Homogêneo e Heterogêneo Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 Universidade Estadual de Maringá

Apresentações semelhantes


Apresentação em tema: "Agregado Homogêneo e Heterogêneo Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 Universidade Estadual de Maringá"— Transcrição da apresentação:

1 Agregado Homogêneo e Heterogêneo Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 Universidade Estadual de Maringá - UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação

2 Até agora os problemas eram resolvidos com tipos de dados simples (ou primitivos); Agora estudaremos os tipos de dados estruturados; Tipos de Dados Estruturados: –Agregados homogêneos (seqüência de valores de um mesmo tipo); –Agregados heterogêneos (seqüência de valores de diferentes tipos); Prof. Yandre Maldonado - 2 Agregado Homogêneo

3 Agregado homogêneo: é uma seqüência de dados do mesmo tipo que podem ser associada à um único identificador; Para utilizarmos um agregado homogêneo, devemos declará-lo estabelecendo o tipo de seus componentes, e o seu número máximo de componentes; Prof. Yandre Maldonado - 3 Agregado Homogêneo

4 Agregados homogêneos também são conhecidos como: –Array –Vetor Prof. Yandre Maldonado - 4

5 Agregado Homogêneo Declaração de um vetor em Pascal: nome_vetor: array [1..Tam] of tipo_simples; Tipo dos dados do conjunto Dimensão, ou tamanho máximo do conjunto Palavra chave usada para identificar a declaração de um conjunto (ou array, vetor, matriz,...) Identificador ou nome do conjunto Prof. Yandre Maldonado - 5

6 Agregado Homogêneo Exemplo: declaração de um vetor para armazenar 10 valores numéricos inteiros; vetor_int: array [1..10] of integer; Exemplo de manipulação: vetor_int[3]:=50; Índice Conteúdo vetor_int Prof. Yandre Maldonado - 6

7 Agregado Homogêneo Exemplo: um algoritmo para armazenar a nota bimestral de um total de 30 alunos e ao final informar todas as notas em seqüência. Program Vetor; Var vet_notas: array [1..30] of real; i: integer; Begin for i:=1 to 30 do begin write ('Digite a nota: '); readln (vet_notas[i]); end; for i:=1 to 30 do writeln ('Nota [',i,']: ', vet_notas[i]); readkey; End. Prof. Yandre Maldonado - 7

8 Agregado Homogêneo 1.Faça um algoritmo que armazene as temperaturas diárias colhidas em um período de 20 dias. Ao final, o algoritmo deverá informar em quantos dias a temperatura foi negativa. 2.Faça um programa em Pascal que permita ao usuário cadastrar o preço de compra e o preço de venda de 10 produtos. Ao final, o algoritmo deverá informar o valor do lucro obtido com a venda de uma unidade de cada um dos 10 produtos. Prof. Yandre Maldonado - 8

9 Cadeia de Caracteres –É um outro tipo de estrutura de dados homogênea; –Também conhecidas como strings, são estruturas homogêneas que permitem especificamente o armazenamento de seqüências de caracteres; –O tamanho máximo da seqüência de caracteres a ser armazenada deve ser definido na declaração da cadeia; –Exemplo: s: string[12]; Se armazenássemos a palavra computador nesta estrutura teríamos: C O M P U T A D O R Prof. Yandre Maldonado - 9 Neste caso diz-se que o tamanho físico da estrutura é 12 e o tamanho lógico é 10. Agregado Homogêneo

10 Em pascal as cadeias são declaradas como string e têm tamanho máximo de 255 caracteres; Quando seu tamanho não for definido na declaração, o tamanho máximo será assumido; Exemplo: algoritmo em Pascal que pergunta o nome do usuário e em seguida escreve na tela Olá nome do usuário. Program Nome; Var str: string[30]; Begin write ('Digite o seu nome: '); readln (str); writeln ('Ola: ', str); End. Prof. Yandre Maldonado - 10 Agregado Homogêneo

11 Algoritmo para armazenar uma palavra com no máximo 15 caracteres a ser digitada pelo usuário, e informar a quantidade de caracteres a que aparece na palavra: Program Conta_a; Var str: string[15]; i, cont: integer; Begin cont:=0; write ('Digite uma palavra: '); readln (str); for i:=1 to length(str) do if str[i]='a' then cont:=cont+1; writeln ('Ocorrencias de a: ', cont); End. Prof. Yandre Maldonado - 11 Agregado Homogêneo

12 Pode-se criar vetores de cadeias; –Exemplo: algoritmo que permite ao usuário digitar 10 nomes e depois exibe a seqüência em ordem invertida; Program Inverte_Sequencia; Var vet_nomes: array [1..10] of string[30]; i: integer; Begin for i:=1 to 10 do begin write ('Digite um nome: '); readln (vet_nomes[i]); end; for i:=10 downto 1 do writeln ('Nome [',i,']: ', vet_nomes[i]); End. Prof. Yandre Maldonado - 12 Agregado Homogêneo

13 Exercício: faça um programa em Pascal que permita ao usuário armazenar 15 nomes de pessoas e, ao final, exiba na tela todos os nome de pessoas que começam com a letra c (minúscula ou maiúscula). Agregado Homogêneo Prof. Yandre Maldonado - 13

14 Agregado Homogêneo Agregado Homogêneo Multidimensional –Sinônimos: Matriz (bidimensional) Conjunto multidimensional Vetor multidimensional Array multidimensional –Um conjunto de dados pode ter mais de uma dimensão; –É um agregado homogêneo de dados estruturado em mais de uma dimensão. O mais utilizado é o agregado bidimensional (aquele que possui duas dimensões); Prof. Yandre Maldonado - 14

15 Agregado Homogêneo Desta forma, podemos descrever agora todos os atributos de um agregado homogêneo de dados: –Nome do identificador: nome pelo qual são feitas referências à estrutura; –O tamanho físico da estrutura: determina a quantidade máxima de dados que podem ser armazenados na estrutura; –Tamanho lógico da estrutura: determina a quantidade de dados que estão associados ao identificador; Prof. Yandre Maldonado - 15

16 Agregado Homogêneo –Valor de dado: o conteúdo associado a cada célula da estrutura; –Tipo de dado: tipo simples de dado que pode ser armazenado nas células da estrutura; –Dimensão da estrutura: determina a forma de organização dos dados na estrutura. Os dados de uma estrutura são referenciados pelos índices que identificam suas células. Prof. Yandre Maldonado - 16

17 Agregado Homogêneo Exemplos: –Declaração de uma matriz (estrutura bidimensional) com 10 linhas e 5 colunas, cujo nome é matriz e que pode armazenar valores reais: matriz: array [1..10, 1..5] of real; Exemplo de atribuição: matriz [5, 2] := 3.31; Prof. Yandre Maldonado - 17

18 Agregado Homogêneo Manipulação de estruturas: –Pode-se manipular as células de uma estrutura da mesma forma que pode-se manipular um objeto do tipo simples de dado que ela foi declarada; –Pode-se também, em algumas linguagens (não é o caso de Pascal), atribuir uma estrutura de dados à outra, que equivale a fazer uma cópia dos conteúdos de uma estrutura em outra estrutura. Mas, para isto, as estruturas envolvidas devem possuir: Mesmo tipo de dado; Devem ter o mesmo número de dimensões; E a estrutura que receber a cópia deve possuir dimensões com tamanho no mínimo igual ao das dimensões da estrutura que possui os dados que ela recebe. Prof. Yandre Maldonado - 18

19 Agregado Homogêneo Exemplos: –Considere o conjunto bidimensional do slide 16: matriz: conjunto [1..10, 1..5] de real; –E o conjunto matriz1, declarado como a seguir: matriz1: conjunto [1..5, 1..3] de real; –Neste caso seria possível atribuir matriz1 a matriz, pois os pré- requisitos são satisfeitos. Já o contrário não poderia ser feito. Exemplo de atribuição: matriz1 [3, 3] := 18; Prof. Yandre Maldonado - 19 Exemplo de atribuição: matriz [5, 2] := 3.31;

20 Agregado Homogêneo Exemplo de atribuição de uma estrutura à outra: matriz matriz1; matriz matriz1 Prof. Yandre Maldonado - 20

21 Agregado Homogêneo Exemplo de algoritmo com estrutura bidimensional: –Um algoritmo para armazenar as temperaturas médias dos três turnos (manhã, tarde e noite) para um período de 30 dias; Neste caso poderia ser utilizada uma matriz com tamanho 30x3; Prof. Yandre Maldonado - 21

22 Agregado Homogêneo Program Temperaturas_Periodos; Var MatTemp: array [1..30, 1..3] of real; i: integer; Begin for i:=1 to 30 do begin write ('Digite a temperatura media da manha: '); readln (MatTemp[i,1]); write ('Digite a temperatura media da tarde: '); readln (MatTemp[i,2]); write ('Digite a temperatura media da noite: '); readln (MatTemp[i,3]); end; End. Prof. Yandre Maldonado - 22

23 Agregado Homogêneo Exercício –Faça um algoritmo em Pascal que permita ao usuário informar as quatro notas bimestrais de 30 alunos em uma disciplina. Ao final, o algoritmo deverá informar a média anual final de cada um dos trinta alunos e o número de alunos cuja nota do terceiro bimestre ficou entre 3,0 e 6,0. Prof. Yandre Maldonado - 23

24 Agregado Heterogêneo Com as estruturas estudadas até o momento, só é possível armazenar diferentes dados referentes a uma mesma entidade em objetos distintos. Exemplo: se quisermos armazenar nome, idade, sexo(m/f), telefone e endereço de uma pessoa, temos que criar os objetos: –Nome: cadeia[20]; –Idade: inteiro; –Sexo: caracter; –Telefone: cadeia[18]; –Endereço: cadeia [30]; Prof. Yandre Maldonado - 24

25 Agregado Heterogêneo Observe que trata-se de dados de diferentes natureza, e, por isso, de diferentes tipos primitivos; O conceito de agregado de dados heterogêneos nos permite envolver em uma única estrutura, dados de tipos primitivos diferentes. Prof. Yandre Maldonado - 25

26 Agregado Heterogêneo Assim, poderíamos criar a seguinte estrutura para armazenar informações pertinentes à uma pessoa: Prof. Yandre Maldonado - 26 Nome: string[20]; Idade: integer; Sexo: char; Telefone: string[18]; Endereço: string[30]; Pessoa type pessoa = record nome: string[20]; idade: integer; sexo: char; telefone: string[18]; endereço: string[30]; end; var aluno: pessoa;...

27 Agregado Heterogêneo Para se criar uma estrutura heterogênea, cria-se um novo tipo de dado (registro). A partir disto, pode-se declarar variáveis como sendo deste novo tipo criado e utilizar dentro do algoritmo; Este tipo de estrutura também é conhecida como registro, e cada um dos dados armazenados dentro de um registro é chamado de campo; Prof. Yandre Maldonado - 27

28 Agregado Heterogêneo Considerando a declaração do slide 26, poderíamos ter as seguintes referências a um campo: –Entrada de dados: Read (aluno.nome); –Saída de dados: Write (aluno.nome); –Atribuição: aluno.nome :=José da Silva; Prof. Yandre Maldonado - 28

29 Agregado Heterogêneo Pode-se criar vetores de registros: –Exemplo: armazenar um conjunto de dados de 40 pessoas com as características descritas no slide 26; Var Vetor_alunos: array [1..40] of pessoa; Nome Idade Sexo Telefone Endereço Pessoa Prof. Yandre Maldonado - 29

30 Agregado Heterogêneo Exercícios resolvidos: 1.Faça um algoritmo que permita armazenar os nomes e as quatro notas bimestrais para um total de 20 alunos. Depois de armazenadas as informações, o algoritmo deverá fazer uma varredura sobre as mesma a fim de identificar qual dos alunos obteve a maior nota no 3º bimestre e informar o seu nome. 2.Faça um algoritmo que armazene as seguintes informações sobre um conjunto de no máximo 30 carros que estão a venda: modelo, ano, preço, e placa. Ao final, o algoritmo deve percorrer as informações a fim de descobrir qual dos carros é o mais barato, e deve informar seu modelo e ano. Prof. Yandre Maldonado - 30

31 Agregado Heterogêneo Exercício 1 type cad_aluno = record nome: string [20]; notas: array [1..4] of real; end; var alunos: array [1..20] of cad_aluno; i, j, aluno_nota: integer; mnt: real; begin mnt := 0; aluno_nota := 0;... for i:=1 to 20 do begin conheça (alunos[i].nome); for i:=1 to 4 do begin write (Digite a nota: ); readln (alunos[i].notas[j]); end; for i:=1 to 20 do if (alunos[i].notas[3] > mnt) then begin mnt alunos[i].notas[3]; aluno_nota i; end; write (O aluno de maior nota no terceiro bimestre é:, alunos[aluno_nota].nome); end. Prof. Yandre Maldonado - 31

32 Agregado Heterogêneo Exercício 2 type cad_carro = record modelo: string [15]; ano: integer; preco: real; placa: string [7]; end; var carros: array [1..30] of cad_carro; i, j, carro_barato: integer; mpc: real; begin mpc := ; carro_barato := 0;... Prof. Yandre Maldonado para i := 1 to 30 do begin write (Digite o modelo do carro: ); readln(carros[i].modelo); write (Digite o ano do carro: ); readln(carros[i].ano); write (Digite o preço do carro: ); readln(carros[i].preco); write (Digite a placa do carro: ); readln(carros[i].placa); end; for i:= 1 to 30 do begin if (carros[i].preço < mpc) then begin mpc := carros[i].preço; carro_barato := i; end; writeln (O modelo do carro mais barato e:,carros[carro_barato].modelo); writeln (O ano do carro mais barato e:,carros[carro_barato].ano); end.


Carregar ppt "Agregado Homogêneo e Heterogêneo Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 Universidade Estadual de Maringá"

Apresentações semelhantes


Anúncios Google