O slideshow foi denunciado.

Aula 06 vetores e matrizes

1.107 visualizações

Publicada em

Aula 06 vetores e matrizes

  1. 1. INTRODUÇÃO A LINGUAGEM PASCAL Profº.: Tácito Henrique tacito.graca@gmail.com CEMA – Centro Educacional Miguel Alves Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  2. 2. VETORES E MATRIZES Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  3. 3. O que são vetores? • Um vetor (array em inglês) é uma coleção de variáveis de um mesmo tipo; • compartilham o mesmo nome e ocupam posições consecutivas de memória; • Cada variável da coleção denomina-se elemento e é identificada por um índice; Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  4. 4. O que são vetores? • Cada variável da coleção denomina-se elemento e é identificada por um índice. • Se v é um vetor indexado de 1 a n, seus elementos são v[1], v[2], v[3], ..., v[n]. • Antes de criar um vetor é preciso declarar o seu tipo, ou seja, especificar a quantidade e o tipo dos elementos que ele irá conter. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  5. 5. O que são vetores? • Isso é feito através do comando type; type vetor = array[1..5] of integer; var v : vetor; • A primeira linha define um novo tipo de vetor, denominado vetor, cujos elementos indexados de 1 a 5 são do tipo integer. • A segunda linha declara uma variável, denominada v, do tipo recém definido. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  6. 6. Sintaxe e declaração de Vetores • Sintaxe: <nome array>: array [dimensão] of <tipo>; • Exemplo: • Var vet:array[1..6] of integer; Begin vet[2]:=90; vet[4]:=45; vet[5]:=30; end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  7. 7. Um pouco mais sobre vetores? • Em geral, um vetor v pode ser indexado com qualquer expressão cujo valor seja um número inteiro. • Essa expressão pode ser uma simples constante, uma variável ou então uma expressão propriamente dita, contendo operadores aritméticos, constantes e variáveis. • A manipulação de vetores é grandemente facilitada pelo uso dos comandos de repetição, especialmente o for. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  8. 8. O que NÃO podemos fazer com Vetores • Não é possível: • a) Não se pode ler todo um vetor diretamente com um comando read. Não se pode escrever: read(v); É necessário ler casa a casa, diretamente, ou com um laço de repetição como for no exemplo acima. • b) Não se pode escrever todos os elementos de um vetor com um único comando write. Não é permitido escrever: write(v). Também nesse caso cada elemento deve ser tratado como uma variável independente, por exemplo: for i:= 1 to 6 do write(v[i]:3); • c) Não é possível copiar os valores dos elementos de um vetor para outro com um único comando de atribuição. Ou seja, dados dois vetores v e w, ambos do mesmo tamanho e do mesmo tipo, não é permitido fazer: w:= v; . Também aqui é necessário trabalhar elemento a elemento, e o comando for mais uma vez é indicado: for i:= 1 to 6 do w[i]:= v[i]; • d) Não existe comandos ou funções que dão o tamanho (número de elementos) de um vetor. • e) Não é permitido tentar acessar uma posição fora do intervalo de posições definido para o vetor. A tentativa causará um erro em tempo de execução e o programa abortará. No caso do vetor v com 6 posições, por exemplo, não é permitido escrever: v[8]:= 20, read(v[8]) ou write (v[8]) porque a faixa de valores das posições vai de 1 a 6 apenas. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  9. 9. O que PODEMOS fazer com Vetores • O que é permitido: • a) A faixa de valores das posições não precisa começar em 1. Qualquer intervalo de valores pode ser usado na definição de um vetor. Por exemplo, podemos definir um vetor assim: var v:array[15..20] of real; Nesse caso o vetor v terá apenas os elementos: v[15], v[16], v[17], v[18], v[19] e v[20] • b) As posições não precisam ser necessariamente números inteiros. Podem ser qualquer tipo ordinal, ou seja, que possa ser definido por uma seqüência ordenada de valores. Por exemplo, os caracteres em Pascal formam uma seqüência ordenada na tabela de caracteres, e podem portanto serem marcadores de posição em um vetor. Podemos definir um vetor assim: var letras: array['a'..'z'] of integer; Nesse caso os elementos do vetor são: letras['a'], letras['b'], ….., letras['z'] Um uso possível para esse vetor poderia ser que cada posição poderia guardar a quantidade de vezes que a letra dessa posição aparece em uma determinada frase. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  10. 10. Exercícios Resolvidos Exercício 1 • Crie um programa que armazene em vetor 5 números e depois exiba o conteúdo de cada posição; Program Pzim ; type vetor = array[1..5] of integer; var v : vetor; i : integer; Begin v[1] := 10; v[2] := 20; v[3] := 30; v[4] := 40; v[5] := 50; for i:=1 to 5 do writeln('Posição do Vetor (',i,'): ',v[i]); End. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  11. 11. O que são Matrizes? • Os elementos de um vetor guardam uma relação de posicionamento entre si apenas em uma dimensão. • Essas variáveis estão dispostas como que em uma linha, e cada elemento é identificado pela sua posição relativa na linha: • Quando há mais de uma dimensão, damos o nome de matriz a esse arranjo de variáveis. • O caso mais comum é a matriz de 2 dimensões. Os elementos ficam dispostos em um plano, composto por várias linhas do mesmo tamanho, como abaixo: Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  12. 12. O que são Matrizes? • Na matriz de inteiros anterior, existem 3 linhas, cada linha com 4 colunas, ou 3x4 (três por quatro). Essa matriz pode ser declarada assim: var mat: array[1..3, 1..4] of integer; • Após o nome da matriz, são colocados entre colchetes os intervalos em que ficam os números das linhas, e os números das colunas, nessa ordem. Note que também aqui os elementos da matriz devem ser todos do mesmo tipo. • Cada elemento da matriz é identificado pela notação: mat[i,j], onde i é o número da linha, e j o número da coluna, onde se encontra o elemento. Na figura acima, temos então que mat[1,1] tem o valor 40. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  13. 13. O que são Matrizes? O comando for... do é muito usado para processar os valores de matrizes. Exemplos: a) Para zerar todos os elementos de uma matriz m, com 3 linhas e 4 colunas, declarada como: var m: array[1..3, 1..4] of integer; basta fazer: for i:= 1 to 3 do for j:= 1 to 4 do m[i,j] := 0; Nota: é usual usar-se a variável i para representar as linhas de uma matriz, a variável j para representar as colunas. b) Para ler do teclado valores para preencher a matriz acima (12 valores): for i:= 1 to 3 do for j:= 1 to 4 do read(m[i,j] ); Nota: O usuário poderá digitar todos os 12 números em uma só linha (separados por espaços), ou um número por linha, ou, melhor, 4 números por linha, de forma a visualizar melhor a matriz. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  14. 14. Sintaxe e Declaração de Matrizes • Sintaxe: <nome array>: array [dimensões] of <tipo>; • Declaração: • Var mat:array[1..5,1..3] of integer; {matriz 5x3} Begin mat[1,2]:=10; mat[3,1]:=11; mat[5,3]:=12; mat[2,2]:=78; end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  15. 15. Exercícios de Fixação • 1) Fazer um programa que tem dois vetores do mesmo tamanho (6). O usuário fornecerá os dados do primeiro, e depois deverá ser armazenado e exibido o valor do segundo vetor que é o valor do primeiro vetor vezes a posição do elemento. Por exemplo: • vet1: • 80 / 28 / 35 / 44 / 35 / 16 vet2: • 80x1 / 28x2 / 35x3 / 44x4 / 35x5 / 16x6 • 2) Leia 4 números, coloque-os em um vetor e mostre-os na ordem inversa de sua leitura. • 3) Fazer um programa que lê 16 valores e armazene numa matriz. O programa deve mostrar esses números em ordem, levando primeiro em consideração a coluna e depois a linha. Logo, deve-se mostrar primeiro toda a primeira coluna e depois a segunda coluna. O programa não deve exibir os números que estão na diagonal principal da matriz. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  16. 16. DESAFIOS 1,0 ponto • DESAFIO I: Leia 20 números, deposite-os em um vetor e mostre os números pares lidos, e após, os números que estão nas posições pares. • DESAFIO II: Faça um programa que execute a leitura de números inteiros para completar uma matriz qualquer, sendo que o número de linhas e o número de colunas da mesma, serão parâmetros por valor, enquanto que a matriz será um parâmetro por referência. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal

×