Buscar

2 vetor,matriz e registro

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

NÍVEL Graduação 
DISCIPLINA Estrutura de Dados 
PROFESSOR Orlei José Pombeiro 
DESIGNER EDUCACIONAL Giselle Pupo 
 
 
 
 
 
 
 
 
 
Conversa Inicial 
 
Olá, seja bem-vindo a mais uma aula da disciplina Estrutura de Dados! 
 
Nesta aula, veremos as estruturas Vetores, Matrizes e Registros. Também iremos acompanhar a questão 
da declaração de novos tipos de variáveis. 
 
Bons estudos! 
 
 
 
 
 
 
Quando interpretamos Vetores e Matrizes como Estruturas, é pelo fato de que estamos 
agrupando em uma “única nova variável” um conjunto de várias variáveis de um determinado tipo 
único. Por exemplo, se precisamos armazenar a idade de uma pessoa, declaramos uma variável do tipo 
“inteiro” que pode se chamar “idade”. Mas se precisamos armazenar a idade de uma turma de 
cinquenta alunos, fica inviável declararmos cinquenta variáveis, para este caso declaramos um único 
“vetor” com “cinquenta posições de inteiros”. 
 
Para iniciar a nossa aula, confira a primeira parte da videoaula preparada pelo professor Orlei José para 
o encontro de hoje no material online, ele nos apresentará os temas que serão abordados. 
 
 
 
Contextualizando 
 
Confira a seguir a imagem de uma representação de um possível vetor de dez posições. Fique atento 
para um fato muito importante, o primeiro elemento de um vetor está na posição ‘Zero’, o segundo 
elemento do vetor está na posição ‘Um’, e assim sucessivamente. Isso acontece porque quando 
declaramos um vetor, o endereço de memória deste vetor é o endereço do primeiro elemento, assim, 
todos os demais são inseridos a partir deste primeiro endereço. 
 
O exemplo que você acabou de conferir é para uma turma, mas e se tivéssemos dez turmas? Para este 
caso, utilizamos o conceito de Matriz, que nada mais é que a relação “linhas por colunas”. Então, se 
necessitamos levantar as idades de dez turmas com cinquenta alunos cada, criamos uma única matriz 
com dez linhas e cinquenta colunas do tipo “Inteiro”. Multiplicando 10 x 50, significa que podemos 
armazenar quinhentas idades. A representação física pode ser visualizada na imagem a seguir, onde 
temos uma possível matriz de dez colunas e quatro linhas, totalizado quarenta posições de 
armazenamento de dados. 
 
Similar ao conceito de vetor onde o primeiro elemento está na posição ‘0’, aqui 
também trabalhamos com o fato que o primeiro elemento da matriz está na posição ‘0 0 ’, 
ou seja, na linha ‘0’ e coluna ‘0’. 
 
 
 
Para referenciarmos onde está, ou foi armazenado o valor na matriz, utilizamos a nomenclatura “linha” e 
“coluna”. Assim, observando a tabela a seguir, podemos dizer que o número quatro está armazenado na 
linha 0 e coluna 0, posição (0, 0) da matriz. Já o número 13 está na linha 1, coluna 4, posição (1, 4) da 
matriz. E assim sucessivamente. 
Todas estas nomenclaturas são referência para a mesma estrutura, para os mesmos comandos da 
inguagem . 
 
Tanto no caso de vetor quanto de matriz, quando declarados, podem ser apenas de um único tipo, 
seja de números inteiros ou reais, seja de caracteres ou strings. Outra questão, é que não podemos 
declarar um vetor ou matriz onde cada posição é de um tipo diferente de dado. Confira a seguir 
algumas questões que devem ser levadas em consideração em relação à vetores e matrizes: 
 
 Outra questão a ser levantada aqui com relação a Vetores e Matrizes, diz respeito as 
literaturas. Algumas literaturas não abordam a nomenclatura “Vetor”. Para referenciar o 
Vetor utilizam a nomenclatura “Matriz Unidimensional”, ou seja, de uma dimensão. Já a 
“Matriz” com mais de uma dimensão é referenciada como “Matriz Multidimensional”, isto 
porque ela pode ter duas ou mais dimensões. Sim, uma matriz pode ter quantas dimensões 
quisermos 2, 3, 4, 5. O difícil é conseguir abstrair a quantidade e não se perder na hora de 
escrever as linhas de código. 
 
 
 Outro detalhe importante é que, quando declaramos em um programa uma Matriz, os 
espaços reservados na memória para os elementos desta Matriz estão em sequência, não 
importando qual dimensão tenhamos criado. Sendo que o endereço desta Matriz passa a ser 
o endereço de memória do primeiro elemento da matriz. Para esta aula, vamos trabalho 
com o conceito de “Vetor” para matrizes de uma dimensão e “Matriz” para matrizes com 
duas ou mais dimensões. 
 
 Este: foram desenvolvidas em inglês, todos os comandos utilizam 
palavras em inglês para referenciar as ações nos programas, e em sua quase totalidade, em letras 
minúsculas. 
 
Mas há casos onde desejamos armazenar tipos de dados diferentes para uma turma de trinta pessoas, 
por exemplo. Podemos querer armazenar características como o nome, a idade, a altura e o peso. Para 
estes casos, temos a possibilidade de criar Registros. E, associando a Vetores, podemos criar 
“Vetores de Registros”. 
 
 
 
 
 
 
Podemos definir Registros como “variáveis de tipos diferentes de dados agrupadas em um 
único novo tipo de variável”. Ainda sobre Registros, na literatura é possível encontrar as 
nomenclaturas “Estruturas” e “Variáveis Compostas Heterogêneas”, para referenciar “Registros”. 
Agora, acompanhe a contextualização preparada pelo professor Orlei no material online! 
 
 
 
 
 
 
Pesquise 
Vetor 
 
Vamos começar analisando o Vetor, onde cada elemento (variável) está em sua posição previamente 
definida. Vamos imaginar uma fila de alunos de uma turma com trinta alunos na sala, onde cada aluno 
possui uma idade que pode ou não ser a mesma dos demais colegas da fila. Se quisermos armazenar em 
um Vetor de números inteiros a idade destes alunos em um algoritmo, obteremos a média das idades. 
Clique no botão para conferir a aplicação! 
 
Utilizado somente variáveis inteiras, uma variável ‘x’ para contar a quantidade utilizada, a variável 
‘soma’, para conter a somatória das idades e por último uma variável ‘idade’ que é declarada como 
com vetor com trinta posições. A variável soma, como vai conter o somatório dos valores, deve ser 
inicializada com ‘0’. 
 
 
 
 
 
 
 
 
 
 
 
 
Observe que a estrutura de repetição ‘for’ é executada trinta vezes, e que a cada loop é solicitada a 
idade, armazenando em uma posição específica do vetor e, já é acrescentada a variável que vai conter a 
somatória total. Quando solicitamos a idade do aluno, utilizamos a variável ‘x’ para nos auxiliar no 
número do aluno, que é somado de uma unidade, pois iniciou em zero (ou seja, sempre com um a 
menos). No vetor utilizamos esta variável ‘x’ para posicionar no vetor cada idade de acordo com a ordem 
de entrada. No primeiro loop o x vale ‘0’, no segundo ele passa a valer ‘1’, no terceiro ‘2’ e assim 
sucessivamente, devido ao incremento de uma unidade que ocorre no comando “x++”, até atingir a 
condição de fim do loop ”x<30”. Ao final, apresentaremos o resultado da soma dividindo direto por 
trinta. 
 
 
 
Matriz 
 
Como ficaria a mesma situação para 10 turmas? Neste caso, utilizaremos matrizes, assim, teremos em 
cada linha (com trinta colunas) uma turma. Confira: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Como o exemplo observado, você pôde concluir que o vetor idade passa a ser uma matriz com duas 
dimensões e, nossa variável soma, que tinha o propósito de armazenar a somatória das idades da turma, 
agora, passa a ser um vetor, pois precisamos de dez somatórias distintas. Podemos observar que, na 
declaração do vetor soma, já inicializamos com ‘0’ todos os elementos do vetor. 
Como temos uma matriz de duas dimensõese necessitamos passar por todas as linhas e colunas, agora 
precisamos de dois loops para percorrer a matriz. O primeiro ‘y’ nos auxiliará a percorrer as linhas, já o 
segundo ‘x’ continua a nos ajudar a percorrer as colunas. Observe que, a cada nova linha, as colunas são 
novamente inicializadas com o índice ‘0’. Da mesma forma que utilizamos o ‘x’ para nos auxiliar a 
identificar o número de alunos que deve fornecer a idade, utilizamos a variável ‘y’ para nos auxiliar a 
identificar a turma que deve fornecer as respectivas idades. 
 
 
 
 
 
A somatória das idades de cada turma, agora estará em um vetor com dez posições e mesmo números 
de turmas, onde em cada posição, estará contida a somatória da respectiva turma. Para mostrar a média 
de cada turma agora, necessitamos de outro loop para percorrer o vetor das somatórias e mostrar um a 
um. 
 
 
 
 
 
Registro 
 
E como ficaria se resolvêssemos trabalhar não só com a idade, mas com o peso e a altura do 
aluno também? Em um primeiro momento podemos pensar em ter três vetores, ou três matrizes, uma 
para cada tipo de dado que necessitamos. Mas vamos ver como funciona utilizando “Registros”. 
 
Registros são estruturas que criamos em 
programação e a esta estrutura criada, 
colocamos campos de diferentes tipos que 
variam de acordo com a nossa necessidade. 
Deste modo, teremos uma variável que pode 
armazenar diferentes tipos de dados. 
 
 
 
 
 
 
 
Aqui também podemos associar o conceito de “Vetor” e de “Registro”, criando um “Vetor de Registros”. 
Em vez de termos um único valor em cada posição do Vetor (por exemplo, um número inteiro), teremos 
um registro com todos os campos que nos interessa. 
 
..... 
 
 
 
Para trabalharmos com registros, temos primeiro que declarar a nova estrutura para depois declarar as 
variáveis e, então, finalmente trabalhar com a estrutura. Vale lembrar que, somente as variáveis é que 
podem armazenar conteúdos. Para criarmos uma nova Estrutura de Dados, é necessário declarar uma 
“Struct” ou “Registro” (é possível encontrar as duas nomenclaturas na literatura). Há apenas uma forma 
de declarar a estrutura, mas as variáveis da estrutura podem ser declaradas de diferentes modos. 
 
A declaração da nova estrutura, deve vir precedida da palavra “struct”, seguida do nome que vai se dar a 
estrutura, no nosso caso, declaramos como “Dados”. Ela é limitada por chaves {} e dentro, colocamos os 
tipos de dados que nos interessa. É possível colocar, inclusive, outras estruturas previamente criadas. 
 
 
Uma coisa é criar a nova estrutura, outra coisa é criar variáveis deste novo tipo. É necessário declarar 
variáveis do novo tipo, podendo inclusive ser vetores e matrizes. Para o nosso caso, criamos a variável 
“dados”, que passa a ser um vetor de cinquenta posições do tipo “aluno”. Como são três dados que 
queremos a média, criamos também três variáveis para conter as somatórias para a realização do cálculo 
da média. Confira a seguir a aplicação: 
Modo 1 
struct Dados { 
 char nome[45]; 
int idade; 
 float peso, altura; 
}; 
 
struct Dados pessoa, vet_pessoas[10]; 
 
 
 
 
Modo 2 
struct Dados { 
char nome[45]; 
int idade; 
float peso, altura; 
} pessoa, vet_pessoas[10]; 
 
 
 
 
 
É importante que, primeiro a estrutura seja declarada, para depois declararmos as variáveis. A estrutura 
apresentará um campo nome, do tipo “char”, um campo idade do tipo “int” e dois campos do tipo “float”, 
um para armazenar o peso e, o outro para armazenar a altura. 
Como estrutura é um novo “tipo de dado”, temos que criar variáveis para trabalhar. No primeiro modo, a 
declaração da variável está fora da estrutura, deste modo, temos que colocar a frente do nome da 
variável “pessoa”. Já no segundo modo, podemos colocar já na estrutura, as variáveis que vão trabalhar 
com ela. Estas, devem estar entre o “}” e o “;”. 
 
 
 
 
 
 
O diferencial está no trabalho com os dados da estrutura! 
 
Para armazenar os dados em um registro, utilizamos o ponto “.” para indicar em qual campo vamos 
armazenar os dados. 
Confira o exemplo: 
 
gets(pessoa.nome); 
pessoa.idade = 37; 
pessoa.peso = 73; 
 
 
Para o caso de “vetores de registros”, temos que informar também em qual posição do vetor 
serão armazenados os dados. Podemos aqui imaginar que cada posição se refere aos dados de uma 
pessoa distinta. 
Confira os exemplos a seguir: 
 
gets(vet_pessoa[2].nome); strcpy(pessoa[7].nome, ‘Alberto Roberto’); 
vet_pessoa[2].idade = 37; vet_pessoa[7].idade = 21; 
vet_pessoa[2].peso = 73; vet_pessoa[7].peso = 65; 
 
Agora, aproveite para revisar todo o conteúdo e confira o vídeo preparado pelo professor Orlei, 
disponível no material online, com as explicações sobre cada tema da aula de hoje! Preste bastante 
atenção! 
 
 
Na Prática 
Aplicação Prática 
 
Para conferir se você fixou o conteúdo, considere a seguinte necessidade: 
Criar um programa que armazena a idade, o peso e a altura de cinquenta pessoas. Após armazenados os 
dados, informar quantos estão com o peso acima da média deste grupo. 
 
 
 
 
 
 
Observação: não deixe de conferir o vídeo com a orientação do professor Orlei para a realização do 
exercício, disponível no material online! 
 
Síntese 
Nesta aula, pudemos acompanhar a aplicabilidade dos vetores, matrizes e registros em estruturas 
computacionais. É constante a necessidade de agrupamento de um mesmo tipo de dado para um 
conjunto de indivíduos ou objetos, assim como, o agrupamento de tipos diferentes de dados para 
conjuntos de indivíduos. 
 
 
Para encerrar, não deixe de conferir a síntese da aula de hoje, preparada pelo professor Orlei, disponível 
no material online!

Outros materiais