SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Bibliografia
• Bases de Programação da Plátano Editora,
• Bases de Programação da Porto Editora,
• Cardoso, Vasco, Fundamental do Turbo Pascal 6 e 7. Lisboa:FCA,1997
• Guerreiro, Pedro,Pascal, Técnicas de Programação- 3ª edição, Europa
América
• Byron S.Gottfried, Programação em Pascal, MC Graw-Hill
• Internet
Módulo V: Estrutura de Dados Compostas
Módulo VI : Estrutura de Dados Dinâmicas
Módulo VII: Tratamento de Ficheiros
Módulo VIII: Conceitos Avançados de Programação
Módulo IX: Introdução à Programação Orientada a Objectos
Módulo X: Programação Orientada a Objectos
Dados Estruturados
• Array
Um array é um tipo estruturado que pode agrupar numa mesma
variável um conjunto de valores todos do mesmo tipo.
• Arrays Unidimensionais ou vectores
• Arrays Multidimensionais
• Arrays Unidimensionais – Conjunto de elementos representados
por um identificador e um índice; o índice varia entre um limite inferior
e um limite superior em correspondência com o número de
elementos do conjunto
Dados Estruturados
10
12
8
9
15
A1
A3
A4
A2
A5
A5
A3
A2 A4
A1
10 12 8 15 9
Representação de um array unidimensional, ou vector com 5 elementos
• Um array pode ser declarado :
a) Como tipo – TYPE – e, em seguida, serem definidas variáveis com base nesse mesmo
tipo;
b) Directamente como uma variável.
Exemplo:
a) Como tipo – TYPE
Type <identificador de tipo> = Array [limites] of <tipo de Dados>
Type gastosmes = Array [1..12] of integer;
Com base neste tipo, podemos ter uma ou mais variáveis deste tipo
Exemplo:
Var gastossector1, gastos2,g3: gastosmes;
Dados Estruturados
b) Declaração de um Array Directamente como uma variável.
Var <identificador > : Array [limites] of <tipo de Dados>
– Var gastosmes : Array [1..12] of integer;
• Var- indica que se pretende definir uma variável;
• Gastosmes – é o identificador ou nome atribuído a essa variável;
• : array – indica que a variável é do tipo array;
• [1..12] – define o número de elementos da variável e ao mesmo tempo o
intervalo dos seus índices, neste caso entre 1 e 12;
• Of integer- indica qual o tipo-base dos elementos do array
Dados Estruturados
• Depois de declarada ou definida uma variável do tipo array, a designação individual
de cada um dos seus elementos, faz-se:
– Escrevendo o identificador da variável, seguido do seu índice entre parêntesis rectos
De um modo geral, cada elemento desta variável de tipo array designa-se por:
gastosmes [i]
Em que [i] representa a posição do elemento no conjunto que compõem o array, ou seja, neste
caso, o número do mês que se pretende designar.
Exemplo:
Identificador Gastos do mês
Gastosmes[1] Janeiro
Gastosmes[2] Fevereiro
…………..
Gastosmes[12] Dezembro
Dados Estruturados
• Nota:
– Não confundir os valores assumidos pelos índices de um array
com os valores assumidos pela própria variável:
• Exemplo:
– O mês de Março é representado pelo índice 3 -
gastosmes[3];
– O valor assumido pela variável no índice 3, ou seja, os
gastos do mês de Março, será aquele que lhe for atribuído,
por uma instrução de atribuição ou de input.
Dados Estruturados
• Utilização de variáveis do tipo Array com instruções básicas
– (leitura, atribuição, escrita)
Exemplos:
Read (gastosmes[1]);
Faz a leitura dos gastos do mês índice1, ou seja, Janeiro
gastosmes[4]:=25350;
Faz com que o elemento índice 4 do array (mês Abril) seja atribuído com o valor de
25350;
Write(‘Gastos do mês de Dezembro: ‘, gastosmes[12]);
Escreve a mensagem da string indicada seguida do valor dos gastos do mês de
Dezembro
Dados Estruturados
• Exercício:
– Elabore um programa para calcular o total anual dos gastos de um
departamento, sendo dados (introduzidos pelo utilizador) os valores dos
respectivos gastos mensais; no mesmo programa pretendemos calcular
também a média dos gastos mensais.
– Resolução
Dados Estruturados
• program meses;
• var m:integer;
• totalano, mediames: real;
• gastosmes: array [1..12] of real;
• begin
• totalano:=0;
• For m:=1 to 12 do
• begin
• write('introduza o gastomes[' ,m,’]);
• read(gastosmes[m]);
• totalano:=totalano+ gastosmes[m];
• end;
• mediames:= totalano/12;
• writeln('O total dos gastos anuais foi:', totalano:2:2 );
• writeln('a media dos gastos do mes e:', mediames:2:2);
• readln;
• end.
Dados Estruturados
• Explicação do Exercício:
– A variável m é utilizada como contador do ciclo For e, dentro desse ciclo, é utilizada também
para indicar o número de ordem de cada mês.
– A variável gastosmes é definida como um array de 12 elementos do tipo-base real.
• Esta variável do tipo array vai ser utilizada no ciclo For em duas situações distintas:
– Numa instrução de leitura, para receber a entrada do utilizador em cada iteração do
ciclo; é evidente que, de cada vez que o contador do ciclo incrementa uma unidade,
o índice do array também é incrementado, passando assim a representar cada um
dos 12 meses do ano;
– Numa instrução de atribuição feita com a variável totalano, que efectua o somatório
ou o total dos gastos nos 12 meses, mediante a técnica já conhecida: inicializa-se a
variável a zero antes de começar o ciclo e dentro do ciclo, essa mesma variável vai
acumulando os sucessivos valores introduzidos como gastos de cada mês.
Uma vez calculado o somatório ou total dos gastos nos 12 meses, é só calcular a
média: basta dividir o total encontrado pelo numero de valores introduzidos, que
neste caso é 12.
Dados Estruturados
• Elabore um Algoritmo que permita inserir 15 valores e depois
apresente todos os números inseridos superiores a 10. Não
necessita utilizar procedimentos.
• Grave o programa com o nome numeros_vector.PAS.
• Resolução
Dados Estruturados
• Program numeros_vector;
• var i:integer;
• inicio:array [1..15] of integer;
• begin
• for i:=1 to 15 do
• Begin
• writeln(' digite os numeros');
• readln (inicio[i]);
• end;
• For i:=1 to 15 do
• begin
• If inicio[i]>10 then
• writeln (' inicio [',i,']=',inicio [i]);
• end;
• readln;
• end.
Dados Estruturados
• Elabore um Algoritmo que permita apresentar a soma de dois
vectores, com 5 índices de posição. Apresente o resultado.
• Utilize os seguintes procedimentos:
• Inserir;
• Calcular.
• Grave o programa com o nome soma_vectores.PAS
• Resolução
Dados Estruturados
• Elabore um algoritmo que permita inserir a notas de PsinF de dez
alunos, deve ser apresentada a média das notas obtidas e ainda
o número de alunos com nota superior à média.
• Este algoritmo deve ser feito com base nos seguintes
procedimentos:
• - Procedimento Inserir;
• - Procedimento Somatorio;
• - Procedimento Verificar_Superior;
• - Procedimento Sair.
• Grave o programa com o nome notas_alunos_vector_.PAS.
• Resolução
Dados Estruturados
• Programa com o nome notas_alunos_vector_.PAS.
• Program notas_alunos_vector;
• type
• notas=array[1..10] of integer;
• var
• nota:notas;
• somanotas, cont, i:integer;
• media:real;
• op:char;
• Procedure Inserir;
• begin
• for i:=1 to 10 do
• begin
• write (' Introduza a nota');
• read (nota[i]);
• end;
• end;
• Procedure somatorio;
• begin
• somanotas:=0;
• For i:=1 to 10 do
• begin
• somanotas:=somanotas + nota[i];
• media:=somanotas/10;
• writeln (' A média das notas, : ', media:8:2);
• end;
• end;
• Procedure verificarsuperior;
• begin
• cont:=0;
• for i:=1 to 10 do
• begin
• if (nota[i]>media)then
• cont:=cont+1;
• writeln(' Existem', cont,'alunos com a nota superior a:', media:8:2);
• end;
• end;
• Procedure continuar;
• begin
• writeln(' Quer continuar?');
• read (op);
• end;
• begin
• repeat
• inserir;
• somatorio;
• verificarsuperior;
• continuar;
• until (op='n')
• end.
Array ou matriz bidimensional
• É possível definir um array de arrays – arrays
multidimensionais
• Podemos imaginar um armário, com x fiadas de gavetas na horizontal e y
colunas na vertical. Dentro de cada gaveta estará, por exemplo, uma
determinada quantia de documentos, dinheiro ou outra coisa qualquer.
• Se quisermos referir-nos a uma determinada gaveta do armário, podemos
fazê-lo indicando o nº da fila e o da coluna em que a gaveta se encontra;
por exemplo: a gaveta da fila 3, coluna 2, seria representada por:
– Gaveta[3,2]
– Gaveta[i,j] Coluna
Fila ou linha
• Var gaveta: array [1..4] of array [1..3] of integer;
Ou
• Var gaveta: array [1..4,1..3] of integer;
Array ou matriz bidimensional
• Para pedir a introdução de todos os valores da variável gaveta, a
melhor técnica é a de dois ciclos encaixados
• Exemplo:
– For i:=1 to 4 do
• For j:=1 to 3 do
– Readln (gaveta [i,j])
Array ou matriz bidimensional
• Exercício:
– Programa para resolver a seguinte situação:
• Pretende-se registar as notas de um grupo de alunos, num conjunto de
disciplinas comuns a todos eles;
• Fazer média por aluno;
• Fazer médias por disciplina
• Resolução
Array ou matriz bidimensional
• program notas;
• const nalunos=3; ndiscip=2;
• var i,j: integer;
• nota:array[1..nalunos,1..ndiscip] of real;
• soma,media:real;
• Begin
• for i:=1 to nalunos do
• begin
• writeln(' introduza o ',i,' aluno');
• for j:=1 to ndiscip do
• begin
• writeln('introduza a nota da ',j,' disciplina');
• readln(nota[i,j])
• end;
• end;
• for i:=1 to nalunos do
• begin
• Soma:=0;
• for j:=1 to ndiscip do
• soma:= soma+nota[i,j];
• media:= soma/ndiscip;
• writeln('media do aluno ',i, ' e: ', media:5:1);
• end;
• for j:=1 to ndiscip do
• begin
• Soma:=0;
• for i:=1 to nalunos do
• soma:= soma+nota[i,j];
• media:= soma/nalunos;
• writeln('media da disciplina ',j, ' e: ', media:5:1);
• end;
• readln;
• end.
• Resolução
Array ou matriz bidimensional
Exemplo de um array ou matriz bidimensional de 4 por 3
A[1,1] A[1,2] A[1,3] A[1,4]
A[2,1] A[2,2] A[2,3] A[2,4]
A[3,1] A[3,2] A[3,3] A[3,4]
150 110 120 160
90 110
115
200
55 80 125
150
Linhas
Linhas
Linhas
Colunas Colunas Colunas Colunas
Records ou Registos:
Os Registos são um outro tipo de dados estruturados
que permitem agrupar dados de vários tipos diferentes, sob
a forma de campos:
Exemplo de Informações sobre Pessoas:
Nome; Morada;
Data de Nascimento; Telefone;
Idade; Estado Civil;
Etc;
Os registos podem ser utilizados com as entidades mais diversificadas que
se possa imaginar: artigos de uma empresa, livros de uma Biblioteca, dados
estatísticos sobre países ou regiões geográficas, etc.
…………………
Records ou Registos:
• Tal como se passa com outros tipos de dados em Pascal, a
definição de um registo pode ser feita directamente como variável,
ou como tipo.
• A) definição de um registo directamente como
variável:
Var pessoa: Record
Nome: string[10];
Idade: integer;
Altura, peso: real;
End;
• Formato: Var <identificador>: Record <lista de campos> End
Records ou Registos
• A) definição de um registo como
tipo:
type pessoa =Record
Nome: string[10];
Idade: integer;
Altura, peso: real;
End;
Records ou Registos:
Formato: Type <identificador> = Record <lista de campos> End
• Um record definido como uma variável funciona apenas para uma
Única variável;
• Se definirmos um record como tipo, podemos, em seguida, definir
Várias variáveis desse mesmo tipo.
Exemplo:
Var p1,p2,aluno,desportista,empregado: pessoa;
Records ou Registos:
Designação e acesso aos campos de um registo:
Exemplo:
type pessoa =Record
Nome: string[10];
Idade: integer;
Altura, peso: real;
End;
Var aluno, p: pessoa;
As variáveis aluno e p são registos que têm os mesmos campos
definidos no tipo pessoa
Records ou Registos:
Suponhamos que queríamos fazer uma atribuição de valores
aos campos das variáveis aluno e p.
Há 2 maneiras possíveis de o fazer:
a) Designação conjunta do identificador do record e do campo visado;
b) Por intermédio do operador With
a) <Identificador do registo>. <Identificador do campo>
Exemplo: Se quisermos atribuir ao registo aluno o nome de “Isabel Gonçalves”
seria: aluno.nome := ‘Isabel Gonçalves’
Records ou Registos:
Exemplo1:
Se quisermos fazer a leitura do valor do campo idade do
mesmo registo e, em seguida, a escrita desse mesmo dado as
instruções poderiam ser:
Write (‘idade do aluno:’, aluno.idade);
Read (aluno.idade);
B) Por intermédio do operador With
Records ou Registos:
O operador With permite indicar uma vez o identificador
do registo e em seguida trabalhar apenas com os identificadores
dos campos
Exemplo:
With aluno do
Begin
Writeln (‘ Introduza os dados relativos ao aluno ’ );
Writeln (‘ Nome: ‘); Readln (Nome);
Writeln (‘ Idade: ‘); Readln (Idade);
Writeln (‘ Altura: ‘); Readln (Altura);
Writeln (‘ Peso: ‘); Readln (Peso);
End;
Records ou Registos: Program Registos;
type
pessoa = record
nome: string[10];
idade: integer;
end;
Var p,q:pessoa;
Begin
Writeln('Dados relativos a primeira pessoa');
Writeln('Nome: '); Readln(p.nome);
Writeln('Idade: '); Readln(p.idade);
Writeln('Dados relativos à segunda pessoa');
Writeln('Nome: '); Readln(q.nome);
Writeln('Idade: '); Readln(q.idade);
if p.idade >q.idade then
Writeln ('O aluno mais velho e ', p.nome)
else
if q.idade >p.idade then
Writeln ('O aluno mais velho e ', q.nome)
else
Writeln(' Os alunos têm a mesma idade');
Readln;
End.
Programa agenda
Program arrayofrecords;
Type ficha = record
sexo:char;
idade: integer;
end;
Var pessoa: ficha;
grupo :array [1..6]of ficha;
i, masc,femin,idadesmasc,idadesfemin:integer;
mediamasc,mediafemin: real;
Begin
For i:=1 to 6 do {introdução dos dados por elemento}
begin
Writeln('Sexo - m/f: '); Readln(pessoa.sexo);
Writeln('Idade:'); Readln(pessoa.idade);
grupo[i]:= pessoa;
end;
masc:=0;femin:=0;
idadesmasc:=0;idadesfemin:=0;
For i:=1 to 6 do {soma das idades por sexos}
begin
pessoa:=grupo [i];
if pessoa.sexo = 'm' then
begin
masc:=masc+1;
idadesmasc:=idadesmasc+pessoa.idade;
end;
if pessoa.sexo= 'f' then
begin
femin:= femin+1;
idadesfemin:=idadesfemin+pessoa.idade
end;
end;
mediamasc:=(idadesmasc/masc);
mediafemin:=(idadesfemin/femin);
Writeln(' Media de idades sexo masculino', mediamasc:8:1);
Writeln(' Media de idades sexo femenino', mediafemin:8:1);
readln
end.
• Program agenda;
• type
• palavra = string [10];
• tpessoa = record
• nome: palavra;
• morada: palavra;
• telefone: palavra;
• end;
• Tlista= array [1..10]of Tpessoa;
• Var
• pessoa:tpessoa;
• lista_agenda:tlista;
• cont:integer;
• Begin
• for cont:=1 to 10 do
• Begin
• Writeln(' Nome ');
• readln(pessoa.nome);
• Writeln(' Morada ');
• readln(pessoa.morada);
• Writeln(' Telefone ');
• readln(pessoa.telefone);
• lista_agenda[cont]:= pessoa;
• end;
• Writeln('Lista dos nomes');
• for cont:=1 to 10 do
• begin
• pessoa:=lista_agenda[cont];
• writeln(pessoa.nome);
• end;
• end.
• Program arrayofrecords;
• Type ficha = record
• sexo:char;
• idade: integer;
• end;
• Var pessoa: ficha;
• grupo :array [1..6]of ficha;
• i, masc,femin,idadesmasc,idadesfemin:integer;
• mediamasc,mediafemin: real;
• Begin
• For i:=1 to 6 do {introdução dos dados por elemento}
• begin
• Writeln('Sexo - m/f: '); Readln(pessoa.sexo);
• Writeln('Idade:'); Readln(pessoa.idade);
• grupo[i]:= pessoa;
• end;
• masc:=0;femin:=0;
• idadesmasc:=0;idadesfemin:=0;
• For i:=1 to 6 do {soma das idades por sexos}
• begin
• pessoa:=grupo [i];
• if pessoa.sexo = 'm' then
• begin
• masc:=masc+1;
• idadesmasc:=idadesmasc+pessoa.idade;
• end;
• if pessoa.sexo= 'f' then
• begin
• femin:= femin+1;
• idadesfemin:=idadesfemin+pessoa.idade
• end;
• end;
• mediamasc:=idadesmasc/masc;
• mediafemin:=idadesfemin/femin;
• Writeln(' Media de idades sexo masculino', mediamasc:8:1);
• Writeln(' Media de idades sexo femenino', mediafemin:8:1);
• readln

Mais conteúdo relacionado

Semelhante a Manual PSInf - Modulo 5

Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Alg aula 07 - matrizes tp1
Alg   aula 07 - matrizes tp1Alg   aula 07 - matrizes tp1
Alg aula 07 - matrizes tp1Thalles Anderson
 
Aula 11 - Vetores unidimensionais - parte 2
Aula 11 - Vetores unidimensionais - parte 2Aula 11 - Vetores unidimensionais - parte 2
Aula 11 - Vetores unidimensionais - parte 2Pacc UAB
 
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlex Camargo
 
4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptxPatrícia Melo
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06profwtelles
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 

Semelhante a Manual PSInf - Modulo 5 (20)

VetoresMatrizes.pdf
VetoresMatrizes.pdfVetoresMatrizes.pdf
VetoresMatrizes.pdf
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Aula 2 | Vetores
Aula 2 | VetoresAula 2 | Vetores
Aula 2 | Vetores
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Alg aula 07 - matrizes tp1
Alg   aula 07 - matrizes tp1Alg   aula 07 - matrizes tp1
Alg aula 07 - matrizes tp1
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Procedures
ProceduresProcedures
Procedures
 
Alg aula 06 - vetores tp1
Alg   aula 06 - vetores tp1Alg   aula 06 - vetores tp1
Alg aula 06 - vetores tp1
 
Aula 11 - Vetores unidimensionais - parte 2
Aula 11 - Vetores unidimensionais - parte 2Aula 11 - Vetores unidimensionais - parte 2
Aula 11 - Vetores unidimensionais - parte 2
 
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 09 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 

Mais de Mariana Hiyori

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus OlímpicoMariana Hiyori
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados RelacionaisMariana Hiyori
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalMariana Hiyori
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalMariana Hiyori
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Mariana Hiyori
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - IntroduçãoMariana Hiyori
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularMariana Hiyori
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de ComputadoresMariana Hiyori
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2Mariana Hiyori
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoMariana Hiyori
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)Mariana Hiyori
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)Mariana Hiyori
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)Mariana Hiyori
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)Mariana Hiyori
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)Mariana Hiyori
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)Mariana Hiyori
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)Mariana Hiyori
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do ConventoMariana Hiyori
 

Mais de Mariana Hiyori (20)

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
 

Manual PSInf - Modulo 5

  • 1. Bibliografia • Bases de Programação da Plátano Editora, • Bases de Programação da Porto Editora, • Cardoso, Vasco, Fundamental do Turbo Pascal 6 e 7. Lisboa:FCA,1997 • Guerreiro, Pedro,Pascal, Técnicas de Programação- 3ª edição, Europa América • Byron S.Gottfried, Programação em Pascal, MC Graw-Hill • Internet
  • 2. Módulo V: Estrutura de Dados Compostas Módulo VI : Estrutura de Dados Dinâmicas Módulo VII: Tratamento de Ficheiros Módulo VIII: Conceitos Avançados de Programação Módulo IX: Introdução à Programação Orientada a Objectos Módulo X: Programação Orientada a Objectos
  • 3.
  • 4. Dados Estruturados • Array Um array é um tipo estruturado que pode agrupar numa mesma variável um conjunto de valores todos do mesmo tipo. • Arrays Unidimensionais ou vectores • Arrays Multidimensionais • Arrays Unidimensionais – Conjunto de elementos representados por um identificador e um índice; o índice varia entre um limite inferior e um limite superior em correspondência com o número de elementos do conjunto
  • 5. Dados Estruturados 10 12 8 9 15 A1 A3 A4 A2 A5 A5 A3 A2 A4 A1 10 12 8 15 9 Representação de um array unidimensional, ou vector com 5 elementos
  • 6. • Um array pode ser declarado : a) Como tipo – TYPE – e, em seguida, serem definidas variáveis com base nesse mesmo tipo; b) Directamente como uma variável. Exemplo: a) Como tipo – TYPE Type <identificador de tipo> = Array [limites] of <tipo de Dados> Type gastosmes = Array [1..12] of integer; Com base neste tipo, podemos ter uma ou mais variáveis deste tipo Exemplo: Var gastossector1, gastos2,g3: gastosmes; Dados Estruturados
  • 7. b) Declaração de um Array Directamente como uma variável. Var <identificador > : Array [limites] of <tipo de Dados> – Var gastosmes : Array [1..12] of integer; • Var- indica que se pretende definir uma variável; • Gastosmes – é o identificador ou nome atribuído a essa variável; • : array – indica que a variável é do tipo array; • [1..12] – define o número de elementos da variável e ao mesmo tempo o intervalo dos seus índices, neste caso entre 1 e 12; • Of integer- indica qual o tipo-base dos elementos do array Dados Estruturados
  • 8. • Depois de declarada ou definida uma variável do tipo array, a designação individual de cada um dos seus elementos, faz-se: – Escrevendo o identificador da variável, seguido do seu índice entre parêntesis rectos De um modo geral, cada elemento desta variável de tipo array designa-se por: gastosmes [i] Em que [i] representa a posição do elemento no conjunto que compõem o array, ou seja, neste caso, o número do mês que se pretende designar. Exemplo: Identificador Gastos do mês Gastosmes[1] Janeiro Gastosmes[2] Fevereiro ………….. Gastosmes[12] Dezembro Dados Estruturados
  • 9. • Nota: – Não confundir os valores assumidos pelos índices de um array com os valores assumidos pela própria variável: • Exemplo: – O mês de Março é representado pelo índice 3 - gastosmes[3]; – O valor assumido pela variável no índice 3, ou seja, os gastos do mês de Março, será aquele que lhe for atribuído, por uma instrução de atribuição ou de input. Dados Estruturados
  • 10. • Utilização de variáveis do tipo Array com instruções básicas – (leitura, atribuição, escrita) Exemplos: Read (gastosmes[1]); Faz a leitura dos gastos do mês índice1, ou seja, Janeiro gastosmes[4]:=25350; Faz com que o elemento índice 4 do array (mês Abril) seja atribuído com o valor de 25350; Write(‘Gastos do mês de Dezembro: ‘, gastosmes[12]); Escreve a mensagem da string indicada seguida do valor dos gastos do mês de Dezembro Dados Estruturados
  • 11. • Exercício: – Elabore um programa para calcular o total anual dos gastos de um departamento, sendo dados (introduzidos pelo utilizador) os valores dos respectivos gastos mensais; no mesmo programa pretendemos calcular também a média dos gastos mensais. – Resolução Dados Estruturados
  • 12. • program meses; • var m:integer; • totalano, mediames: real; • gastosmes: array [1..12] of real; • begin • totalano:=0; • For m:=1 to 12 do • begin • write('introduza o gastomes[' ,m,’]); • read(gastosmes[m]); • totalano:=totalano+ gastosmes[m]; • end; • mediames:= totalano/12; • writeln('O total dos gastos anuais foi:', totalano:2:2 ); • writeln('a media dos gastos do mes e:', mediames:2:2); • readln; • end. Dados Estruturados
  • 13. • Explicação do Exercício: – A variável m é utilizada como contador do ciclo For e, dentro desse ciclo, é utilizada também para indicar o número de ordem de cada mês. – A variável gastosmes é definida como um array de 12 elementos do tipo-base real. • Esta variável do tipo array vai ser utilizada no ciclo For em duas situações distintas: – Numa instrução de leitura, para receber a entrada do utilizador em cada iteração do ciclo; é evidente que, de cada vez que o contador do ciclo incrementa uma unidade, o índice do array também é incrementado, passando assim a representar cada um dos 12 meses do ano; – Numa instrução de atribuição feita com a variável totalano, que efectua o somatório ou o total dos gastos nos 12 meses, mediante a técnica já conhecida: inicializa-se a variável a zero antes de começar o ciclo e dentro do ciclo, essa mesma variável vai acumulando os sucessivos valores introduzidos como gastos de cada mês. Uma vez calculado o somatório ou total dos gastos nos 12 meses, é só calcular a média: basta dividir o total encontrado pelo numero de valores introduzidos, que neste caso é 12. Dados Estruturados
  • 14. • Elabore um Algoritmo que permita inserir 15 valores e depois apresente todos os números inseridos superiores a 10. Não necessita utilizar procedimentos. • Grave o programa com o nome numeros_vector.PAS. • Resolução Dados Estruturados
  • 15. • Program numeros_vector; • var i:integer; • inicio:array [1..15] of integer; • begin • for i:=1 to 15 do • Begin • writeln(' digite os numeros'); • readln (inicio[i]); • end; • For i:=1 to 15 do • begin • If inicio[i]>10 then • writeln (' inicio [',i,']=',inicio [i]); • end; • readln; • end. Dados Estruturados
  • 16.
  • 17. • Elabore um Algoritmo que permita apresentar a soma de dois vectores, com 5 índices de posição. Apresente o resultado. • Utilize os seguintes procedimentos: • Inserir; • Calcular. • Grave o programa com o nome soma_vectores.PAS • Resolução Dados Estruturados
  • 18. • Elabore um algoritmo que permita inserir a notas de PsinF de dez alunos, deve ser apresentada a média das notas obtidas e ainda o número de alunos com nota superior à média. • Este algoritmo deve ser feito com base nos seguintes procedimentos: • - Procedimento Inserir; • - Procedimento Somatorio; • - Procedimento Verificar_Superior; • - Procedimento Sair. • Grave o programa com o nome notas_alunos_vector_.PAS. • Resolução Dados Estruturados
  • 19. • Programa com o nome notas_alunos_vector_.PAS. • Program notas_alunos_vector; • type • notas=array[1..10] of integer; • var • nota:notas; • somanotas, cont, i:integer; • media:real; • op:char; • Procedure Inserir; • begin • for i:=1 to 10 do • begin • write (' Introduza a nota'); • read (nota[i]); • end; • end; • Procedure somatorio; • begin • somanotas:=0; • For i:=1 to 10 do • begin • somanotas:=somanotas + nota[i]; • media:=somanotas/10; • writeln (' A média das notas, : ', media:8:2); • end; • end; • Procedure verificarsuperior; • begin • cont:=0; • for i:=1 to 10 do • begin • if (nota[i]>media)then • cont:=cont+1; • writeln(' Existem', cont,'alunos com a nota superior a:', media:8:2); • end; • end; • Procedure continuar; • begin • writeln(' Quer continuar?'); • read (op); • end; • begin • repeat • inserir; • somatorio; • verificarsuperior; • continuar; • until (op='n') • end.
  • 20. Array ou matriz bidimensional • É possível definir um array de arrays – arrays multidimensionais • Podemos imaginar um armário, com x fiadas de gavetas na horizontal e y colunas na vertical. Dentro de cada gaveta estará, por exemplo, uma determinada quantia de documentos, dinheiro ou outra coisa qualquer. • Se quisermos referir-nos a uma determinada gaveta do armário, podemos fazê-lo indicando o nº da fila e o da coluna em que a gaveta se encontra; por exemplo: a gaveta da fila 3, coluna 2, seria representada por: – Gaveta[3,2] – Gaveta[i,j] Coluna Fila ou linha
  • 21. • Var gaveta: array [1..4] of array [1..3] of integer; Ou • Var gaveta: array [1..4,1..3] of integer; Array ou matriz bidimensional
  • 22. • Para pedir a introdução de todos os valores da variável gaveta, a melhor técnica é a de dois ciclos encaixados • Exemplo: – For i:=1 to 4 do • For j:=1 to 3 do – Readln (gaveta [i,j]) Array ou matriz bidimensional
  • 23. • Exercício: – Programa para resolver a seguinte situação: • Pretende-se registar as notas de um grupo de alunos, num conjunto de disciplinas comuns a todos eles; • Fazer média por aluno; • Fazer médias por disciplina • Resolução Array ou matriz bidimensional
  • 24. • program notas; • const nalunos=3; ndiscip=2; • var i,j: integer; • nota:array[1..nalunos,1..ndiscip] of real; • soma,media:real; • Begin • for i:=1 to nalunos do • begin • writeln(' introduza o ',i,' aluno'); • for j:=1 to ndiscip do • begin • writeln('introduza a nota da ',j,' disciplina'); • readln(nota[i,j]) • end; • end; • for i:=1 to nalunos do • begin • Soma:=0; • for j:=1 to ndiscip do • soma:= soma+nota[i,j]; • media:= soma/ndiscip; • writeln('media do aluno ',i, ' e: ', media:5:1); • end; • for j:=1 to ndiscip do • begin • Soma:=0; • for i:=1 to nalunos do • soma:= soma+nota[i,j]; • media:= soma/nalunos; • writeln('media da disciplina ',j, ' e: ', media:5:1); • end; • readln; • end. • Resolução
  • 25. Array ou matriz bidimensional
  • 26. Exemplo de um array ou matriz bidimensional de 4 por 3 A[1,1] A[1,2] A[1,3] A[1,4] A[2,1] A[2,2] A[2,3] A[2,4] A[3,1] A[3,2] A[3,3] A[3,4] 150 110 120 160 90 110 115 200 55 80 125 150 Linhas Linhas Linhas Colunas Colunas Colunas Colunas
  • 27. Records ou Registos: Os Registos são um outro tipo de dados estruturados que permitem agrupar dados de vários tipos diferentes, sob a forma de campos: Exemplo de Informações sobre Pessoas: Nome; Morada; Data de Nascimento; Telefone; Idade; Estado Civil; Etc; Os registos podem ser utilizados com as entidades mais diversificadas que se possa imaginar: artigos de uma empresa, livros de uma Biblioteca, dados estatísticos sobre países ou regiões geográficas, etc. …………………
  • 28. Records ou Registos: • Tal como se passa com outros tipos de dados em Pascal, a definição de um registo pode ser feita directamente como variável, ou como tipo. • A) definição de um registo directamente como variável: Var pessoa: Record Nome: string[10]; Idade: integer; Altura, peso: real; End; • Formato: Var <identificador>: Record <lista de campos> End
  • 29. Records ou Registos • A) definição de um registo como tipo: type pessoa =Record Nome: string[10]; Idade: integer; Altura, peso: real; End;
  • 30. Records ou Registos: Formato: Type <identificador> = Record <lista de campos> End • Um record definido como uma variável funciona apenas para uma Única variável; • Se definirmos um record como tipo, podemos, em seguida, definir Várias variáveis desse mesmo tipo. Exemplo: Var p1,p2,aluno,desportista,empregado: pessoa;
  • 31. Records ou Registos: Designação e acesso aos campos de um registo: Exemplo: type pessoa =Record Nome: string[10]; Idade: integer; Altura, peso: real; End; Var aluno, p: pessoa; As variáveis aluno e p são registos que têm os mesmos campos definidos no tipo pessoa
  • 32. Records ou Registos: Suponhamos que queríamos fazer uma atribuição de valores aos campos das variáveis aluno e p. Há 2 maneiras possíveis de o fazer: a) Designação conjunta do identificador do record e do campo visado; b) Por intermédio do operador With a) <Identificador do registo>. <Identificador do campo> Exemplo: Se quisermos atribuir ao registo aluno o nome de “Isabel Gonçalves” seria: aluno.nome := ‘Isabel Gonçalves’
  • 33. Records ou Registos: Exemplo1: Se quisermos fazer a leitura do valor do campo idade do mesmo registo e, em seguida, a escrita desse mesmo dado as instruções poderiam ser: Write (‘idade do aluno:’, aluno.idade); Read (aluno.idade);
  • 34. B) Por intermédio do operador With Records ou Registos: O operador With permite indicar uma vez o identificador do registo e em seguida trabalhar apenas com os identificadores dos campos Exemplo: With aluno do Begin Writeln (‘ Introduza os dados relativos ao aluno ’ ); Writeln (‘ Nome: ‘); Readln (Nome); Writeln (‘ Idade: ‘); Readln (Idade); Writeln (‘ Altura: ‘); Readln (Altura); Writeln (‘ Peso: ‘); Readln (Peso); End;
  • 35. Records ou Registos: Program Registos; type pessoa = record nome: string[10]; idade: integer; end; Var p,q:pessoa; Begin Writeln('Dados relativos a primeira pessoa'); Writeln('Nome: '); Readln(p.nome); Writeln('Idade: '); Readln(p.idade); Writeln('Dados relativos à segunda pessoa'); Writeln('Nome: '); Readln(q.nome); Writeln('Idade: '); Readln(q.idade); if p.idade >q.idade then Writeln ('O aluno mais velho e ', p.nome) else if q.idade >p.idade then Writeln ('O aluno mais velho e ', q.nome) else Writeln(' Os alunos têm a mesma idade'); Readln; End. Programa agenda
  • 36. Program arrayofrecords; Type ficha = record sexo:char; idade: integer; end; Var pessoa: ficha; grupo :array [1..6]of ficha; i, masc,femin,idadesmasc,idadesfemin:integer; mediamasc,mediafemin: real; Begin For i:=1 to 6 do {introdução dos dados por elemento} begin Writeln('Sexo - m/f: '); Readln(pessoa.sexo); Writeln('Idade:'); Readln(pessoa.idade); grupo[i]:= pessoa; end; masc:=0;femin:=0; idadesmasc:=0;idadesfemin:=0; For i:=1 to 6 do {soma das idades por sexos} begin pessoa:=grupo [i]; if pessoa.sexo = 'm' then begin masc:=masc+1; idadesmasc:=idadesmasc+pessoa.idade; end; if pessoa.sexo= 'f' then begin femin:= femin+1; idadesfemin:=idadesfemin+pessoa.idade end; end; mediamasc:=(idadesmasc/masc); mediafemin:=(idadesfemin/femin); Writeln(' Media de idades sexo masculino', mediamasc:8:1); Writeln(' Media de idades sexo femenino', mediafemin:8:1); readln end.
  • 37. • Program agenda; • type • palavra = string [10]; • tpessoa = record • nome: palavra; • morada: palavra; • telefone: palavra; • end; • Tlista= array [1..10]of Tpessoa; • Var • pessoa:tpessoa; • lista_agenda:tlista; • cont:integer; • Begin • for cont:=1 to 10 do • Begin • Writeln(' Nome '); • readln(pessoa.nome); • Writeln(' Morada '); • readln(pessoa.morada); • Writeln(' Telefone '); • readln(pessoa.telefone); • lista_agenda[cont]:= pessoa; • end; • Writeln('Lista dos nomes'); • for cont:=1 to 10 do • begin • pessoa:=lista_agenda[cont]; • writeln(pessoa.nome); • end; • end.
  • 38. • Program arrayofrecords; • Type ficha = record • sexo:char; • idade: integer; • end; • Var pessoa: ficha; • grupo :array [1..6]of ficha; • i, masc,femin,idadesmasc,idadesfemin:integer; • mediamasc,mediafemin: real; • Begin • For i:=1 to 6 do {introdução dos dados por elemento} • begin • Writeln('Sexo - m/f: '); Readln(pessoa.sexo); • Writeln('Idade:'); Readln(pessoa.idade); • grupo[i]:= pessoa; • end; • masc:=0;femin:=0; • idadesmasc:=0;idadesfemin:=0; • For i:=1 to 6 do {soma das idades por sexos} • begin • pessoa:=grupo [i]; • if pessoa.sexo = 'm' then • begin • masc:=masc+1; • idadesmasc:=idadesmasc+pessoa.idade; • end; • if pessoa.sexo= 'f' then • begin • femin:= femin+1; • idadesfemin:=idadesfemin+pessoa.idade • end; • end; • mediamasc:=idadesmasc/masc; • mediafemin:=idadesfemin/femin; • Writeln(' Media de idades sexo masculino', mediamasc:8:1); • Writeln(' Media de idades sexo femenino', mediafemin:8:1); • readln