Title: Apresenta
1 Vetores ou arranjos de uma dimensão
Prof. Luis Otavio Alvares (Adaptado de material
da profa. Magda Bercht)
2Ex Ler as notas de 30 alunos. Calcular
e informar a média da turma.
- Program MediaTurma
- var Nota real nota de um aluno
- Media, Soma real
- Aluno integer variável de controle da
repetição - begin
- Soma 0 inicializa a soma das notas
- for Aluno 1 to 30 do para cada aluno da
turma - begin
- readln(Nota) obtém a nota do aluno
- Soma Soma Nota
- end
- Media Soma / 30
- writeln(Media da turma , Media51)
- end.
3Ex Ler as notas de 30 alunos. Calcular e
informar a média da turma. Informar, ainda, as
notas que são superiores à média calculada.
Program MediaTurma var Nota real nota de
um aluno Media, Soma real
Aluno integer variável de controle da
repetição begin Soma 0 inicializa a
soma das notas for Aluno 1 to 30 do para
cada aluno da turma begin
readln(Nota) obtém a nota do aluno
Soma Soma Nota end Media Soma
/ 30 writeln(Media da turma ,
Media51) end.
4Ex Ler as notas de 30 alunos. Calcular e
informar a média da turma. Informar, ainda, as
notas que são superiores à média calculada.
Program MediaNotasSup_1 var N1, N2, N3, N4, N5,
N6, ... N30 real uma variável para
Media, Soma real cada nota dos alunos
! Aluno integer variável de controle
da repetição begin readln(N1, N2, N3, N4,
N5, N6, ... , N30) obtém as 30 notas
Soma N1N2N3N4N5N6 ... N30 Media
Soma / 30 writeln(Media da turma ,
Media51) if N1 gt Media
testa cada nota !!! then writeln(N1) if
N2 gt Media then writeln(N2) ... end.
É a única solução ?
5- Vamos precisar de 30 variáveis para armazenar os
valores lidos!!!! - Essas 30 variáveis são do mesmo tipo.
- Como simplificar isso, para não precisar declarar
30 variáveis diferentes?
6Solução para o problema de múltiplas variáveis de
mesmo tipo um vetor
Índice Posição identificando cada elemento
Nota
Nome Comum para todos os elementos
Valor Semelhante a uma variável simples
7Vetores variáveis compostashomogêneas
- Um só tipo
- Um só nome
- Múltiplas posições de memória identificadas por
índices.
8- Vetor ou Arranjo de uma dimensão
-
- conjunto ordenado de informações de mesma
natureza - elementos todos do mesmo tipo
- acesso randômico
8,5
Nota
Nota 3 vale 8,5
9Arranjo - Pascal
Declaração
Tipo array array lt limite inferior gt
.. lt limite superior gt of lt tipo gt
- limites devem ser inteiros ou caracteres
- tipo qualquer tipo Pascal
Ex
var Nota array 1 .. 30 of real Y
array 10 .. 15 of string Z
array -5 .. 3 of integer
10Arranjo - Pascal
Utilização
Variável indexada
lt nome do arranjo gt lt índice gt
Ex
var Nota array 1 .. 9 of real
begin readln( Nota 5 )
Nota 6
Nota 1 7.5
Nota 2 Nota 1 2
if Nota 1 gt 6.0 then writeln (Aprovado) ...
11Arranjo - Pascal
lt nome do arranjo gt lt índice gt
Variável indexada
- Índice
- constante / nome de variável / expressão
- deve ser inteiro ou char (dependendo do que foi
definido)
Ex
var Nota array 1 .. 9 of real
Indice integer begin Indice
5 readln ( Nota Indice )
Nota Indice 1 7.5 ...
Ex
Nota 6
12Ex Preencher por leitura um arranjo de 100
elementos inteiros.
var Valor array 1 .. 100 of integer
Ind integer begin for Ind
1 to 100 do readln ( Valor Ind ) ...
Ex Somar os elementos de um arranjo X de 200
posições
... Soma 0 for I 1 to 200
do Soma Soma X I ...
13Ex Ler as notas de 30 alunos. Calcular e
informar a média da turma. Informar, ainda, as
notas que são superiores à média calculada.
Program MediaNotasSup_2 var Nota array 1 ..
30 of real vetor para as notas
Media, Soma real Aluno integer
variável de controle da repetição begin Soma
0 inicializa Soma for Aluno 1 to
30 do para cada a luno begin readln
(Nota Aluno) obtém sua nota Soma Soma
Nota Aluno acumula a soma end
Media Soma / 30 writeln(Media da turma
, Media51) for Aluno 1 to 30 do
imprime notas maiores que a média if Nota
Aluno gt Media then writeln (NotaAluno) end.
14- Exercício Faça um programa para
- Preencher um vetor X de 20 posições inteiras por
leitura. - 2. Mostrar o vetor obtido
- 3. Informar o menor elemento deste vetor.
- 4. Informar o valor do maior elemento, e sua
posição. - 5. Informar quantos valores ímpares existem no
vetor X
15var I, posicao, totimpar, maior, menor
integer Xarray 1..20 of integer begin 1.
Preencher um vetor X de 20 posições por
leitura. for I1 to 20 do begin
write('Digite um valor inteiro ')
readln(XI) end 2. Mostrar o vetor
obtido for I1 to 20 do writeln('Posicao
',i,' ',XI) 3.Informar o menor elemento
deste vetor menorX1 for I1 to 20 do
if XIlt menor then menorXI writeln('O
menor elemento do vetor eh ',menor)
164. Informar o valor do maior elemento, e sua
posição maiorX1 for I1 to 20 do if
XIgtmaior then begin
maiorXI posicaoI
end writeln('O maior
elemento do vetor eh ',maior) writeln('e esta
na posicao ', posicao) 5. Informar quantos
valores ímpares existem no vetor X
totimpar0 for I1 to 20 do if XI
mod 2 ltgt0 then totimpartotimpar1
writeln( 'o vetor X contem ',totimpar, ' valores
impares') readln end.
17Exercício
Faça um programa que leia um valor n
correspondente ao número de valores a serem
lidos. Leia também os n valores e depois mostre
estes valores na ordem inversa da leitura.
18Var seq,ninteger varray 1..20 of
integer begin write('Digite o comprimento da
sequencia (max. 20) ') readln(n)
writeln('Digite uma sequencia com ',n,' numeros
inteiros ') leitura da sequencia for seq
1 to n do readln(vseq) mostra na ordem
inversa for seq n downto 1 do
write(vseq,' ') readln end.
19Exercício
Ler 5 valores inteiros e armazenar nas posições
iniciais de um vetor de 10 posições. Nas posições
seguintes, armazenar sucessivamente o dobro da
primeira posição, o triplo da segunda posição,
etc. Mostrar os valores armazenados em cada
posição do vetor.
20var iinteger Narray1..10 of
integer begin for I 1 to 5 leitura dos 5
valores do begin write('digite um
valor inteiro ') readln(NI)
end for I1 to 5 do preenche posicoes 6 a
10 NI5 NI (I1) for I1 to 10
do mostra todo o vetor writeln('Valor
armazenado na posicao ',I, ' ',NI)
readln end.
21Exemplo de execução digite um valor inteiro
10 digite um valor inteiro 20 digite um valor
inteiro 30 digite um valor inteiro 40 digite um
valor inteiro 50 Valor armazenado na posicao 1
10 Valor armazenado na posicao 2 20 Valor
armazenado na posicao 3 30 Valor armazenado na
posicao 4 40 Valor armazenado na posicao 5
50 Valor armazenado na posicao 6 20 Valor
armazenado na posicao 7 60 Valor armazenado na
posicao 8 120 Valor armazenado na posicao 9
200 Valor armazenado na posicao 10 300
22Exercício Preencha um vetor X de 10 posições
inteiras por leitura. Preencha um vetor Y, tambem
de 10 posicoes inteiras, por leitura. Prencha um
vetor V1 com a soma de X e y, em cada
posição. Preencha um vetor V2 com a diferença de
X e Y, em cada posição.
23Exercício Leia 6 nomes e os armazene em um vetor
de 6 posições. Depois disso, coloque o conteúdo
da primeira posição na última, o da segunda
posição na penúltima e assim sucessivamente.
Mostre o resultado.
24Var vetarray 1..6 of string auxstring
iinteger begin leitura dos nomes for I1
to 6 do begin write('Informe o nome ',I,'
') readln(vetI) end alteracao do
vetor for I1 to 3 do begin aux
vetI vetI vet7-I
vet7-Iaux end mostra resultado
writeln('Nomes reordenados ') for I1 to 6
do writeln(vetI) readln end.
25Exercício Faca um programa que preencha por
leitura um vetor de 20 posições inteiras e
classifique os valores do vetor colocando-os em
ordem crescente.
26const TV 5 define TV como uma constante com
valor 5 var I,J,auxinteger Xarray 1..TV
of integer begin writeln('informe o vetor
X') for I1 to TV do readln(XI) classifi
ca o vetor for I1 to TV do for J1 to
TV - 1 do if XJgtXJ1 then
begin auxXJ
XJXJ1 XJ1aux
end mostra o vetor ordenado writeln('vetor
classificado') for I1 to TV do
write(XI4) readln end.