Profa.Dra.Thatyana de Faria Piola Seraphim (ECO) Prof.MSc.Rodrigo Maximiano Antunes de Almeida (ELT)
Prof.Dr.Carlos Henrique Val´erio de Moraes (ECA)
Universidade Federal de Itajub´a
thatyana@unifei.edu.br rodrigomax@unifei.edu.br
Estruturas de dados homogˆenas
permitem trabalhar com o agrupamento de v´arias informa¸c˜oes dentro de uma mesma vari´avel
o agrupamento sempre obedece ao mesmo tipo de dados o uso deste tipo de estrutura recebe v´arios nomes como:
vari´aveis indexadas, vari´aveis compostas, vari´aveis subscritas, arranjos, vetores, matrizes, tabelas em mem´oria (array ) s˜ao v´arios nomes encontrados na literatura para o estudo de t´ecnicas de programa¸c˜ao que envolvem a utiliza¸c˜ao das estruturas homogˆeneas de dados
Vetores ou Matrizes de uma Dimens˜ao
Um vetor ´e:
uma vari´avel composta unidimensional formada por uma sequˆencia de vari´aveis
todas as vari´aveis do mesmo tipo e com o mesmo identificador (mesmo nome)
alocado sequencialmente na mem´oria
vari´aveis com o mesmo nome s˜ao diferenciadas por um ´ındice
o ´ındice referencia sua localiza¸c˜ao dentro da estrutura
os nomes dados aos vetores seguem as mesmas regras de nomes utilizados para indicar vari´aveis simples
Vetores ou Matrizes de uma Dimens˜ao
Declara¸c˜ao de Vetor
varvariavel : vetor[<dimens˜ao>]de<tipo> vari´avel: ´e o nome da vari´avel do tipo vetor
dimens~ao: indica os valores inicial e final do tamanho do vetor
tipo: ´e o tipo b´asico de dados que ser´a utilizado (inteiro, real, caracteres, l´ogico, entre outros)
Vetores ou Matrizes de uma Dimens˜ao
Importante
As vari´aveis simples podem conter apenas um valor por vez Os vetores podem armazenar mais de um valor por vez, podendo manipular uma quantidade maior de informa¸c˜oes com pouco trabalho
A manipula¸c˜ao dos elementos do vetor ocorre de forma individualizada, pois n˜ao ´e poss´ıvel efetuar a manipula¸c˜ao de todos os elementos do conjunto ao mesmo tempo
Vetores ou Matrizes de uma Dimens˜ao
Carregando um vetor
parai de1ate 5 faca
escreva(“Digite o valor de i = “)
leia(x[i]){95,13,25,47,6} fimpara
Vetores - Leitura dos Dados
Leitura dos dados
A leitura de um vetor ´e processada passo a passo, um elemento por vez
A instru¸c˜ao de leitura ´e leia seguida da vari´avel mais o ´ındice
Exerc´ıcio
Fa¸ca um algoritmo que realiza a leitura de 8 notas e as armazena em um vetor de 8 posi¸c˜oes. O algoritmo deve fazer a soma de todas as notas e calcular e imprimir a m´edia das notas.
Vetores - Leitura dos Dados - Atividade
Algoritmo: leitura de 8 notas, c´alculo e impress˜ao da m´edia. algoritmo“mediaTurma”
varmd : vetor [1..8] de real
soma, media : real
i : inteiro inicio
soma <– 0
paraide1 ate8 faca
escreva(“Digite um valor = “)
leia(md[i])
soma <– soma + md[i]
fimpara
media <– (soma / 8)
escreval(“Media = “, media)
Vetores - Escrita dos Dados
Escrita dos dados
O processo de escrita ´e bastante parecido com o processo de leitura de seus elementos
´
E utilizada a instru¸c˜ao escreva seguida da indica¸c˜ao da vari´avel e seu ´ındice
Algoritmo
Fa¸ca um algoritmo que imprime o valor das notas armazenadas no vetor antes de apresentar o valor da m´edia final.
Vetores - Escrita dos Dados
Algoritmo para imprimir o valor das notas algoritmo“mediaTurma”
varmd : vetor [1..8] de real
soma, media : real
i : inteiro inicio
soma <– 0
paraide1ate8faca
escreva(“Digite um valor = “)
leia(md[i])
soma <– soma + md[i]
fimpara
paraide1ate8faca escreva(md[i])
fimpara
media <– (soma / 8)
escreval(“Media = “, media)
Matrizes
Defini¸c˜ao de Matriz
Uma matriz ´e uma vari´avel composta bidimensional formada por uma sequˆencia de vari´aveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome) e alocadas sequencialmente na mem´oria
Independente se as vari´aveis tˆem o mesmo nome, o que as distingue s˜ao os ´ındices que referenciam sua localiza¸c˜ao dentro da estrutura
Para a manipula¸c˜ao de matrizes ´e utilizado uma instru¸c˜ao de looping (enquanto, para ou repita)
Matrizes
Por exemplo, uma matriz de duas dimens˜oes dever´a ser controlada com dois loopings, sendo que de trˆes dimens˜oes dever´a ser controlada por trˆes loopings
Os elementos de matrizes bidimensionais s˜ao manipulados de forma individualizada, sendo a referˆencia feita atrav´es de dois ´ındices:
linha: indica a quantidade de linhas que v˜ao compor a matriz coluna: indica a quantidade de colunas que v˜ao compor a matriz
Uma matriz de duas dimens˜oes ser´a atribu´ıda pelas instru¸c˜oes j´a utilizadas para definir o uso de um vetor
Matrizes
Declara¸c˜ao de Matriz
varvariavel : vetor[<dimensao01>,<dimensao02>]de<tipo>
variavel: indica o nome da vari´avel do tipo matriz
dimensao01: indica a quantidade de linhas que v˜ao compor a matriz
dimensao02: indica a quantidade de colunas que v˜ao compor a matriz
tipo: indica o tipo de dado que poder´a ser armazenado na sequˆencia de vari´aveis que formam a matriz
Matrizes
Carregando uma matriz
parai de1ate 3 faca
escreva(“Digite o numero da linha = “, i)
para j de1 ate3 faca
escreva(“Digite o numero da coluna = “, j)
leia(x[i,j])
fimpara fimpara
Matrizes - Leitura dos dados
Leitura dos dados
A leitura dos dados ´e processada passo a passo, um elemento por vez
A instru¸c˜ao de leitura ´e leia seguida da vari´avel mais os ´ındices de linha e coluna
Exemplo
Fa¸ca um algoritmo que realiza a leitura de 4 notas bimestrais de 8 alunos. As notas ser˜ao armazenadas em uma matriz.
Matrizes - Leitura dos dados
Algoritmo para fazer a leitura de 4 notas bimestrais de 8 alunos
algoritmo“lerElementos”
varnotas : vetor [1..8,1..4]de real
i, j : inteiro inicio
para i de1ate 8 faca
escreva(“Digite a nota do aluno = “, i)
para j de1 ate4 faca leia(notas[i,j])
fimpara fimpara fimalgoritmo
Matrizes - Escrita dos dados
Algoritmo para fazer a leitura de 4 notas bimestrais de 8 alunos Algoritmo“lerElementos”
Varnotas : vetor[1..8,1..4]de real
i, j : inteiro inicio
paraide1ate8faca
escreva(“Digite a nota do aluno = “, i)
parajde1ate4faca leia(notas[i,j])
fimpara fimpara
escreval(“Impressao dos valores armazenados na matriz”)
paraide1ate8faca parajde1ate4faca