slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Vetores ou arranjos de uma dimensão PowerPoint Presentation
Download Presentation
Vetores ou arranjos de uma dimensão

Loading in 2 Seconds...

play fullscreen
1 / 26

Vetores ou arranjos de uma dimensão - PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on

Vetores ou arranjos de uma dimensão. Prof. Luis Otavio Alvares (Adaptado de material da profa. Magda Bercht). Ex: 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;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Vetores ou arranjos de uma dimensão' - kitra


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Vetores ou arranjos de uma dimensão

Prof. Luis Otavio Alvares

(Adaptado de material da profa. Magda Bercht)

slide2

Ex: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: ’, Media:5:1);

end.

slide3

?

Ex: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: ’, Media:5:1);

end.

slide4

Ex: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 := N1+N2+N3+N4+N5+N6+ ... +N30;

Media := Soma / 30;

writeln(‘Media da turma: ’, Media:5:1);

if N1 > Media { testa cada nota !!! }

then writeln(N1);

if N2 > Media

then writeln(N2);

...

end.

É a única solução ?

slide5

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?
slide6

1

2

3

4

5

6

7

8

9

Soluçã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

slide7

Vetores:variáveis compostashomogêneas

  • Um só tipo;
  • Um só nome;
  • Múltiplas posições de memória identificadas por índices.
slide8

1

2

3

4

5

6

7

8

9

  • 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

slide9

Arranjo - Pascal

Declaração

Tipo ‘array’

array [ < limite inferior > .. < limite superior > ] of < tipo >

  • 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;

slide10

1

2

3

4

5

6

7

8

9

Nota

Arranjo - Pascal

Utilização

Variável indexada

< nome do arranjo > [ < índice > ]

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 ] > 6.0

then writeln (‘Aprovado’);

...

slide11

1

2

3

4

5

6

7

8

9

Nota

Arranjo - Pascal

< nome do arranjo > [ < índice > ]

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 ]

slide12

1

2

3

4

5

6

7

100

Ind

Valor

X

Ex: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 ] ;

...

slide13

Ex: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: ’, Media:5:1);

for Aluno := 1 to 30 do { imprime notas maiores que a média }

if Nota [Aluno] > Media

then writeln (Nota[Aluno])

end.

slide14

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
slide15

var

I, posicao, totimpar, maior, menor: integer;

X:array [1..20] of integer;

begin

{1. Preencher um vetor X de 20 posições por leitura.}

for I:=1 to 20

do begin

write('Digite um valor inteiro: ');

readln(X[I]);

end;

{2. Mostrar o vetor obtido }

for I:=1 to 20

do writeln('Posicao ',i,': ',X[I]);

{3.Informar o menor elemento deste vetor}

menor:=X[1];

for I:=1 to 20

do if X[I]< menor then menor:=X[I];

writeln('O menor elemento do vetor eh: ',menor);

slide16

{4. Informar o valor do maior elemento, e sua posição}

maior:=X[1];

for I:=1 to 20

do if X[I]>maior then begin

maior:=X[I];

posicao:=I;

end;

writeln('O maior elemento do vetor eh: ',maior);

writeln('e esta na posicao: ', posicao);

{5. Informar quantos valores ímpares existem no vetor X }

totimpar:=0;

for I:=1 to 20

do if X[I] mod 2 <>0 then totimpar:=totimpar+1;

writeln( 'o vetor X contem ',totimpar, ' valores impares');

readln;

end.

slide17

Exercí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.

slide18

Var

seq,n:integer;

v:array [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(v[seq]);

{mostra na ordem inversa}

for seq:= n downto 1 do

write(v[seq],' ');

readln;

end.

slide19

Exercí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.

slide20

var

i:integer;

N:array[1..10] of integer;

begin

for I:= 1 to 5 {leitura dos 5 valores}

do begin

write('digite um valor inteiro: ');

readln(N[I]);

end;

for I:=1 to 5 do {preenche posicoes 6 a 10}

N[I+5] := N[I]* (I+1);

for I:=1 to 10 do {mostra todo o vetor}

writeln('Valor armazenado na posicao ',I, ' = ',N[I]);

readln;

end.

slide21

Exemplo 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

slide22

Exercí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.

slide23

Exercí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.

slide24

Var

vet:array [1..6] of string;

aux:string;

i:integer;

begin

{leitura dos nomes}

for I:=1 to 6

do begin

write('Informe o nome ',I,': ');

readln(vet[I]);

end;

{alteracao do vetor}

for I:=1 to 3

do begin

aux:= vet[I];

vet[I] := vet[7-I];

vet[7-I]:=aux;

end;

{mostra resultado}

writeln('Nomes reordenados: ');

for I:=1 to 6

do writeln(vet[I]);

readln;

end.

slide25

Exercí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.

slide26

const TV = 5; {define TV como uma constante com valor 5}

var

I,J,aux:integer;

X:array [1..TV] of integer;

begin

writeln('informe o vetor X');

for I:=1 to TV

do readln(X[I]);

{classifica o vetor}

for I:=1 to TV do

for J:=1 to TV - 1 do

if X[J]>X[J+1]

then begin

aux:=X[J];

X[J]:=X[J+1];

X[J+1]:=aux;

end;

{mostra o vetor ordenado}

writeln('vetor classificado:');

for I:=1 to TV do write(X[I]:4);

readln;

end.