Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tema Vetor/Matriz
Aula 03
Professor Cassiana Fagundes da Silva
Conversa Inicial
Depois de termos estudado os tipos básicos de dados em linguagem de programação C (int, float,
char, etc.) e quais as estruturas de controle (if, while, for, do while e switch), vamos estudar a forma
como podemos processar conjuntos de dados/valores do mesmo tipo.
Vamos lá!?
Antes de iniciarmos, acompanhe no material online, o vídeo preparado pela professora Cassiana
Fagundes da Silva! Ela apresentará os assuntos que estudaremos na aula de hoje!
Contextualizando
Em muitas aplicações, é comum querermos trabalhar com conjuntos de dados que são
semelhantes em tipo, como por exemplo, o conjunto das alturas dos alunos de uma turma ou o
conjunto de seus nomes. Nestes casos, seria conveniente poder colocar estas informações sob um
mesmo conjunto e poder referenciar cada dado individual deste conjunto por um número índice. Em
programação, este tipo de estrutura de dados é dividido entre vetores e matrizes.
Objetivos da Aula
Gerar no aluno o conhecimento necessário para que possa entender e classificar os seguintes
temas:
Vetores
Matrizes
Vetores
Um vetor pode ser definido como um conjunto de elementos consecutivos do mesmo tipo e que
podem ser acessados individualmente a partir de um único nome.
Cabe ressaltar que um vetor pode conter elementos de qualquer tipo de dados, no entanto, os
elementos do vetor são todos do mesmo tipo, o qual é definido na declaração do mesmo.
Todos os elementos do vetor podem ser identificados pelo mesmo nome, porém, para que se
possa identificar cada um deles individualmente é necessário um número (índice) que indique qual a
sua posição no vetor. Para acessar um elemento no vetor utiliza-se a sintaxe:
identificadorVetor [indice]
Para declarar um vetor com 20 inteiros define-se int g[20]. Para a declaração de um vetor com
20 números reais tem-se float renda[20]. Confira a definição dos elementos:
int vetor[6]
Exemplo de aplicação:
vetor[0] = 123
123
vetor[5] = vetor[0] * 2
123 246
Agora, inicie novamente todo o vetor, colocando em cada posição do mesmo o índice dessa mesma
posição.
#include <stdio.h>
int main ()
{
int num[100]; /* Declara um vetor de inteiros de 100 posicoes */
int count=0;
int totalnums;
do {
printf ("\nEntre com um numero (-999 p/ terminar): ");
scanf ("%d",&num[count]);
count++;
} while (num[count-1]!=-999);
totalnums=count-1;
printf ("\n\n\n\t Os números que você digitou foram:\n\n");
for (count=0;count<totalnums;count++)
printf (" %d",num[count]);
return(0);
}
No exemplo da tela anterior, o inteiro count é inicializado em 0. O programa pede pela entrada de
números até que o usuário entre com o Flag ‐999. Os números são armazenados no vetor num. A cada
número armazenado, o contador do vetor é incrementado para na próxima iteração escrever na
próxima posição do vetor. Quando o usuário digita o flag, o programa abandona o primeiro laço e
armazena o total de números gravados. Por fim, todos os números são impressos. É bom lembrar aqui
que nenhuma restrição é feita quanto à quantidade de números digitados. Se o usuário digitar mais de
100 números, o programa tentará ler normalmente, mas o programa os escreverá em uma parte não
alocada de memória, pois o espaço alocado foi para somente 100 inteiros. Isto pode resultar nos mais
variados erros no instante da execução do programa.
Confira a videoaula, no material online, preparada pela professora Cassiana que aborda o tema que
acabamos de estudar. Preste bastante atenção nas explicações e aproveite para revisar o conteúdo visto
até aqui!
Matrizes
Já vimos como declarar matrizes unidimensionais, mais conhecidas como vetores. Agora, vamos tratar de
matrizes bidimensionais. A forma geral da declaração de uma matriz bidimensional é muito parecida com
a declaração de um vetor. Confira:
É muito importante ressaltar que, nesta estrutura, o índice da esquerda indexa as linhas e o da
direita indexa as colunas. Quando vamos preencher ou ler uma matriz no C o índice mais à direita varia
mais rapidamente que o índice à esquerda. Mais uma vez é bom lembrar que, na linguagem C, os
índices variam de zero ao valor declarado, menos um; mas o C não vai verificar isto para o usuário.
Manter os índices na faixa permitida é tarefa do programador.
A representação gráfica de uma matriz M 3x2 se dá da seguinte maneira:
M[0][0]
M[0][1]
M[1][0] M[1][1]
M[2][0] M[2][1]
Na memória, a representação gráfica, pode ser vista da seguinte forma (os valores da
esquerda representam endereços arbitrários de memória, considerando uma matriz de
elementos char de um byte):
0100 M[0][0]
0101 M[0][1]
0102 M[1][0]
0103 M[1][1]
0104 M[2][0]
0105 M[2][1]
Exemplo de uso de matriz:
#include <stdio.h>
int main ()
{
No exemplo a seguir, a matriz mtrx é int mtrx [20][10];
int i,j,count;
preenchida, sequencialmente por linhas, com count=1;
os números de 1 a 200. É bem importante que for (i=0;i<20;i++)
for (j=0;j<10;j++)
você entender o funcionamento do programa {
para prosseguir nos estudos. mtrx[i][j]=count;
count++;
}
return(0);
}
Agora, acompanhe as explicações da professora Cassiana sobre o tema no material online. Preste
bastante atenção!
Na Prática
a. vetor(1000;
b. vetor[1000];
c. int vetor[1000];
d. float vetor[1000];
Gabarito:
a. Colchetes.
b. Chaves.
c. Parênteses.
d. Aspas simples.
Gabarito:
Baseado no conteúdo visto na aula de hoje, podemos concluir que vetores e matrizes permitem que mais
de um valor seja armazenado na memória, desde que utilize o mesmo tipo de dado. Outra questão
importante é que há várias aplicações que podem ser utilizadas por este tipo de estrutura, como a
implementação do jogo da velha, por exemplo.
DAMAS, Luis. Linguagem em C. 10ª ed. Trad. João Araujo Ribeiro, Orlando Bernardo Filho. Rio de
Janeiro: LTC, 2013.
LISBOA, Erico Fagundes Anicet Lisboa. Linguagem C. Rio de Janeiro, 2011. (Apostila). Disponível em:
http://www.dainf.ct.utfpr.edu.br/~pbueno/Arquivos/ApostilaEricoLisboa.pdf