Beruflich Dokumente
Kultur Dokumente
com
Parnaba-PI
Contedo
Unid. IV - Estruturas de Dados Simples em PASCAL
Vetores Registro
Contextualizao
Existem situaes que precisamos usar um grupo de variveis do mesmo tipo, mas que possam ser referenciadas pelo conjunto ou, individualmente, com o mesmo nome.
Situao
Algoritmo que soma DEZ nmeros e, depois de mostrar o resultado, imprime os nmeros lidos na ordem inversa da leitura;
Situao: Se em vez de DEZ nmeros fossem 100. O programa ficaria com a escrita imensa, alm de ocupar um espao de memria da mquina muito grande. Soluo: VETOR e MATRIZ seriam considerados uma varivel de memria indexada, ou com ndices, um agregado homogneo de dados , ou seja, um grupo de variveis do mesmo tipo que recebem o mesmo nome e so individualizadas por um ndice.
Definio [1]
Um vetor um conjunto de variveis de um mesmo tipo as quais so acessadas atravs de ndices apostos ao identificador do vetor, ndices que devem ser de um tipo ordenado: integer, char, boolean, etc. Por exemplo, a declarao: var Vetor : array [ 1. .10 ] of integer
definir um conjunto de dez variveis do tipo integer
Definio [2]
Um array ou vetor uma estrutura de dados utilizada para armazenar uma coleo de itens; Cada item identificado atravs de seu ndice; Podemos imaginar um array como sendo um armrio com um determinado nmero de gavetas e cada gaveta possui um rtulo com um nmero de identificao.
Analogia [ Vetor ]
Quando criamos um array devemos informar qual o tipo de dado que ele ir armazenar em cada posio; Na analogia com o armrio, seria como se tivssemos que definir o qu o armrio ir guardar; Por exemplo, se definirmos que um armrio deve guardar livros, ento poderemos guardar apenas livros; No poderemos tentar guardar revistas ou jornais.
MSc. Flvio Barros
writeln (Soma eh: ,soma); write (Ordem Inversa eh: ); for i := 10 downto 1 do write ( num [ i ], ); End.
Atividade
Questo 01 Faa um programa que leia 10 nmeros do usurio e posteriormente calcule a soma, o maior e o menor entre todos os nmeros inseridos; Questo 02 Faa um programa pea ao usurio o tamanho do vetor que ser efetivamente utilizado. Depois o programa deve ler todos os campos do vetor e calcular quantos nmeros menores que zero foram armazenados nesse vetor.
10
Para a utilizao de um vetor como um parmetro de um subprograma, prefervel que se use um tipo de dado definido pelo usurio.
Li Limite inferior
11
12
Analogia [ Matriz ]
Arrays Multidimensionais
Voltando analogia que fizemos com um armrio cheio de gavetas, seria como se pudssemos guardar dentro da gaveta de um armrio um outro armrio com gavetas.
13
14
15
Atividade 2
Questo 01
Escreva algoritmo em Pascal que faa o cadastro de 5 pessoas e suas respectivas idades. [usar ARRAY] Mostrar os nomes e as idades das pessoas com menos de 18 anos.
Questo 02
Faa um programa que possua dois vetores de mesmo tamanho n chamados nomes e salarios, dos tipos string e real, respectivamente, onde n inserido pelo usurio. O vetor nomes ir armazenar nomes de funcionrios, enquanto salarios armazenar o respectivo salrio. O programa dever listar os nomes dos funcionrios em ordem decrescente em relao ao salrio recebido.
16
Atividade 2
Questo 03
Crie um programa que armazene 10 nmeros inteiros em um array. Preencha todas as posies do array com valores sequnciais e em seguida imprima-os na tela. Em seguida, escolha duas posies aleatoriamente e troque os valores de uma posio pelo da outra. Ao final, imprima o array novamente. Dica: para visualizar melhor o resultado, imprima uma linha entre a primeira e a segunda impresso do array.
Questo 04
Crie um programa que armazene 10 nmeros inteiros em um array. Preencha todas as posies do array com valores aleatrios e em seguida imprima-os na tela. Aps imprimir o array, ordene o array do menor valor para o maior. Ao final, imprima o array ordenado.
MSc. Flvio Barros
17
Desafio...
Crie um programa que utilize arrays para representar o estado inicial de um tabuleiro do jogo Damas. O tabuleiro possui 64 casas dispostas no formato de um quadrado de 8x8 casas.
18
Desafio...
No array utilize os caracteres * (asterisco) para representar as pedras vermelhas; e 0 (zero) para representar as brancas; Imprima o tabuleiro conforme o exemplo.
19
Contedo
Unid. IV - Estruturas de Dados Simples em PASCAL
Vetores Registro
20
Registro = [ record ]
Contextualizao
Um registro um conjunto de variveis, denominadas campos, que podem ser de tipos diferentes; Desta forma, um registro um tipo estruturado heterogneo; A cada campo de um registro so associados um identificador e um tipo de dado.
21
Registro = [ record ]
Sintaxe
type Identificador = record Id_do_campo 1 : tipo de dado; Id_do_campo 2 : tipo de dado; ... Id_do_campo n : tipo de dado; end;
onde tipo de dado pode ser qualquer tipo, simples ou estruturado (inclusive um outro registro).
MSc. Flvio Barros
22
Registro = [ record ]
Program ex_registro; Uses CRT; Var Clie : Record nome, ender : string [40]; fone : string [20]; sexo : char; sala rio : real; end; Begin ClrScr; writeln (Insira Dados do Cliente .....:); write ( Nome: '); readln (Clie.nome); write ( End: '); readln (Clie.ender);
MSc. Flvio Barros
write ( Fone: '); readln (Clie.fone); write ( Sexo: '); readln (Clie.sexo); write ( Salario: '); readln (Clie.salario); writeln; writeln (Dados Gravados com Sucesso!); writeln (Nome : ,clie.nome); writeln (End : ,clie.ender); writeln (Fone : ,clie.fone); writeln (Sexo : ,clie.sexo); writeln (Salario : ,clie.salario); End.
23
Registro = [ record ]
Type Tfuncionario = record Matr : string [8]; Nome : string [30]; Ender : record Rua : string [40]; Num : string [6] Bairro : string [20] CEP : string [9] end; Cargo : string [20]; NumDepend : integer; Salario : real DataAdm : string [8]; End;
MSc. Flvio Barros
Var
Func : Tfuncionario;
Begin Func . Matr := 1119310; Func . Nome := Vinicius de Moraes; Func . Ender . Rua := Rua Garota de Ipanema; Func . Ender . CEP := 65216-000; Func . NumDepend := 8;
End.
Estruturas de Dados em PASCAL
24
Desafio...
o programa para receber no mximo 10 matrculas, juntamente com nome, 4 notas para cada matricula e armazenar a mdia das 4 notas de cada aluno. Emitir um relatrio incluindo as matrculas, os nomes e as mdias calculadas. Observe que um dos campos do registro um vetor, o qual ser utilizado para armazenar as notas das avaliaes de cada aluno.
25
Referncias
FORBELLONE, Andr Luiz Villar. Lgica de Programao: a construo de algoritmos e estruturas de dados. 3 ed. So Paulo: Makron Books, 2005. MANZANO, Jos A. e YAMATUMI, Wilson. Programando em Turbo Pascal 7.0: guia prtico de orientao e desenvolvimento. So Paulo: rica, 2001. SALVETTI, Dirceu D.; BARBOSA, Lisbete M. Algoritmos. So Paulo:Makron Books, 2000. EVARISTO, Jaime. Programando com PASCAL: A linguagem do Turbo Pascal e do Delphi. Editora Book, 2002. RIOS, Eyder. Programao Pascal. Faculdade Piauiense. 2010. RODRIGUES, Srgio. Linguagem Pascal. 2010.
MSc. Flvio Barros
26