Você está na página 1de 32

Disciplina Linguagem de Programação

Tema Vetor/Matriz

Aula 03
Professor Cassiana Fagundes da Silva
Conversa Inicial

Olá! Seja bem-vindo à terceira aula da disciplina Linguagem de programação!

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.

Confira alguns exemplos de aplicações utilizando o conceito de vetor:

 Manter os valores em memória

 Reduzir a quantidade de variáveis

 Comissões mensais associadas a um determinado empregado ao longo de um ano

 Notas de um aluno ao longo de um semestre letivo


Para programar utilizando vetor é necessário que seja utilizada uma sintaxe para declaração do
mesmo, confira:

<tipo> <identificadorVetor> [<tamanhoVetor>]

Confira o significado de cada elemento apresentado na sintaxe acima:

 tipo - corresponde ao tipo de dado de cada elemento do vetor

 identificadorVetor – nome pelo qual esse vetor será conhecido

 tamanhoVetor – valor constante que indica quantos elementos tem o vetor

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:

 float – tipo de dado;


 20 – número de elementos do vetor;
 renda – nome do vetor;
 renda[i] – aquilo que está na posição índice i do vetor renda.
Na linguagem de programação C os índices de um vetor com n elementos variam sempre de 0 e
n-1. Suponhamos que queremos declarar um vetor com seis números inteiros denominado vetor:

int vetor[6]

Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5]


Dessa forma, cada uma das seis posições do vetor pode ser acessada através do respectivo índice
colocado entre colchetes [ ].

O índice do primeiro elemento, de qualquer vetor em linguagem C, é sempre 0 (zero).

Exemplo de aplicação:

Coloque o valor 123 na primeira posição do vetor.

vetor[0] = 123

123

Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5]


Agora, coloque na última posição do vetor o dobro do valor do primeiro elemento.

vetor[5] = vetor[0] * 2

123 246

Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5]

Depois, no terceiro elemento do vetor a soma do primeiro com o último elemento.

vetor[2] = vetor[0] + vetor[5]

123 369 246

Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5]


A posição ocupada por um elemento de um vetor também é chamada de índice desse elemento no
vetor.

Agora, inicie novamente todo o vetor, colocando em cada posição do mesmo o índice dessa mesma
posição.

for (i = 0; i<6; i++)


vetor[i] = i;
Confira, um exemplo de código para leitura de dados em um vetor, e outro exemplo de escrita de dados
em um vetor.

Leitura de dados em um vetor


Escrita de dados em um vetor
Agora, confira um exemplo de uso no código apresentado abaixo:

#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:

tipo_da_variável nome_da_variável [altura][largura];

É 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

Vamos colocar em prática os conhecimentos adquiridos no estudo dos temas da aula


de hoje?

Resolva os exercícios a seguir!


Dada as seguintes declarações de vetores, assinale a alternativa correta segundo a sintaxe da linguagem
C:

a. vetor(1000;
b. vetor[1000];
c. int vetor[1000];
d. float vetor[1000];
Gabarito:

A alternativa C está correta.


O acesso ao conteúdo dos vetores e matrizes é utilizando-se os:

a. Colchetes.

b. Chaves.

c. Parênteses.

d. Aspas simples.
Gabarito:

A alternativa A está correta.


Síntese

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.

Até a próxima aula!


Referências Bibliográficas

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

Santos, Henrique José dos. Linguagem de Programação C. (Apostila). Disponível em:


http://www.dainf.ct.utfpr.edu.br/~adolfo/Disciplinas/ComputacaoI/Material/LinguagemProgrC.pdf