Você está na página 1de 84

Universidade Federal do Ceará - Campus Crateús

Curso de Ciência da Computação | Sistemas de Informação


Profa. Kamila Gomes

Disciplina de Fundamentos de Programação

Aula 06: Vetores

2023.1
Vetores
Funções

Conceito

Um vetor ou array é um grupo de locais da memória


relacionados pelo fato de que todos têm o mesmo nome e o
mesmo tipo.
Vetores

❏ Vetores são estruturas de dados que consistem em itens de dados do


mesmo tipo e relacionados entre si
❏ São estruturas estáticas, pois permanecem do mesmo tamanho ao
longo da execução do programa
Vetores

❏ Espaços contínuos na memória principal do computador


❏ Útil para criar muitos espaços para armazenar dados de um mesmo
tipo
❏ Evita a escrita de muitas variáveis de um mesmo tipo e para
finalidades iguais ou semelhantes
Vetores

❏ Suponha que precise declarar (criação) cinco variáveis do tipo int para
armazenar o número de alunos de cinco turmas em um algoritmo
Vetores

❏ Suponha que precise declarar (criação) cinco variáveis do tipo int para
armazenar o número de alunos de cinco turmas em um algoritmo

Imagine criar variáveis para 500 turmas! O trabalho de criação das variáveis seria
imenso.
Vetores

❏ Declaração de um Vetor:

tipoVetor nomeVetor [tamanhoVetor];


Vetores

❏ Exemplo: Declaração de um vetor do tipo int chamado t com tamanho 5:


int t[5];

❏ Exemplo: Declaração de um vetor do tipo float chamado mediaAlunos


com tamanho 60 para armazenar a média dos alunos de uma turma:
float mediaAlunos[60];
Vetores

❏ Exemplo: Declaração do vetor mediaAlunos com tamanho 60 e do vetor


notasAluno com tamanho 3 em uma mesma linha:

float mediaAlunos[60], notasAluno[3] ;


Vetores

❏ Vetor é armazenado na memória como:


Vetores

❏ O nome de um vetor segue as mesmas regras para nome de uma


variável
❏ Uma boa prática de programação é utilizar uma constante para
armazenar o tamanho do vetor, pois evita atualizar o valor do tamanho
do vetor em vários locais do código fonte, caso o tamanho do vetor
mude durante a programação
Vetores

❏ Exemplo: Declaração de um vetor chamado pesos com tamanho 4,


onde o tamanho do vetor é armazenado em uma constante chamada
TAMANHO.
Vetores

❏ O tamanho do vetor determina a quantidade de elementos do vetor


❏ Um vetor de tamanho cinco possui cinco elementos
❏ Cada elemento do vetor corresponde a um espaço na memória
Vetores

❏ Para se fazer referência a um determinado elemento do vetor,


especifica-se o nome do vetor e o índice daquele elemento no vetor
entre colchetes []
❏ Índice é um número usado para identificar cada um dos elementos do
vetor
❏ O índice também é chamado de subscrito
❏ A primeira posição de um vetor em C sempre terá índice zero
Vetores

❏ Como fazer referência a um elemento de um vetor chamado t:


Vetores

❏ Como uma pessoa indica em qual gaveta está algo para outra pessoa?

Resposta:
❏ Está na 2a gaveta ou
❏ Está na 2a gaveta de baixo para cima
Vetores

❏ Fazendo uma analogia: cada gaveta funciona como um elemento de um


vetor
❏ Para o computador é mais simples e menos custoso indicar em qual
gaveta está algo usando um número inteiro
❏ Mais simples: usa apenas um número inteiro
❏ Menos custoso: um único número inteiro usa pouquíssima memória
Vetores

❏ Cada elemento do vetor (gaveta) é


indicado por um índice (número
inteiro)
❏ O conteúdo de cada elemento do
vetor é acessado usando o nome do
vetor seguido pelo índice do elemento
entre colchetes []
Vetores

❏ Pode-se utilizar uma expressão algébrica ou uma variável para definir o


índice que se quer fazer referência
❏ Exemplo: se a variável num for igual a 3, a instrução seguinte fará
referência ao elemento de índice 3 do vetor t

t[num] = 40;
Vetores

❏ Pode-se utilizar uma expressão algébrica ou uma variável para definir o


índice que se quer fazer referência
Exemplo: se a variável num for igual a 3, a instrução seguinte fará referência
ao elemento de índice 3 do vetor t
t[num] = 40;
Exemplo: se x = 5 e y = 2 a instrução seguinte fará referência ao elemento de
índice 7 do vetor t:
t[x+y] = 35;
Inicialização de Vetores

❏ O vetor pode ser inicializado atribuindo um valor para cada elemento do


vetor
❏ Exemplo: declaração e inicialização do vetor t de tamanho 5 do tipo int
Inicialização de Vetores

❏ Declaração e inicialização do vetor t do tipo int


Inicialização de Vetores

❏ O vetor pode ser inicializado com uma lista de valores dentro de chaves{}
e separados por vírgula
❏ Exemplo: declaração e inicialização do vetor notas de tamanho 3 do tipo
float
Inicialização de Vetores

❏ Exemplo: declaração e inicialização do vetor notas de tamanho 3 do tipo


float.

Os elementos do vetor serão inicializados com os valores:


notas[0] = 7.0 notas[1] = 5.5 notas[2] = 10.0
Inicialização de Vetores

❏ Caso a lista de elementos fornecida na inicialização do vetor, seja menor


que o tamanho do vetor, será atribuído o valor zero para os elementos
restantes do vetor
Inicialização de Vetores

❏ Exemplo: o vetor n possui tamanho 5 e a lista de inicialização possui 3


elementos {1, 5, 4}
Inicialização de Vetores

❏ Como a lista de inicialização possui menos elementos que o tamanho do


vetor, os três primeiros elementos do vetor são inicializados com os valores
da lista de inicialização e os restantes recebem o valor zero

Os elementos do vetor serão inicializados com os valores:


n[0] = 1 n[1] = 5 n[2] = 4 n[3] =0 n[4]=0
Inicialização de Vetores

❏ Uma forma de inicializar todos os elementos do vetor com o valor zero é


usar uma lista de inicialização com apenas um valor zero {0}

Os elementos do vetor serão inicializados com os valores:


n[0] = 0 n[1] = 0 n[2] = 0 n[3] =0 n[4]=0
Inicialização de Vetores

❏ Caso a lista de inicialização tenha mais elementos que o tamanho do vetor,


ocorrerá um erro de sintaxe
❏ Exemplo: o vetor notas tem tamanho 3, mas a lista de inicialização possui 6
elementos, provocando um erro de sintaxe
Inicialização de Vetores

❏ Se o tamanho do vetor for omitido e o vetor for inicializado com uma lista de
inicialização, o tamanho do vetor será o tamanho da lista de inicialização
❏ Exemplo: o tamanho do vetor notas não foi definido, mas foi inicializado com
uma lista de inicialização com 3 elementos, assim o vetor notas terá tamanho 3
Exercício de Fixação

1- Declare um vetor de tamanho 200 do tipo float chamado alunos.


2 - Declare e inicialize um vetor que armazene os números de 32 a 39.
3 - Declare um vetor com 4000 elementos e inicialize todos os elementos
com valor zero.
4 - Crie um vetor para armazenar 3 números do tipo int que serão digitados
pelo usuário.
Percorrimento do Vetor
Percorrendo Vetores

❏ O percorrimento do vetor ocorre quando o programa referencia todos ou


alguns elementos de um vetor
❏ Pode ser usado para acessar ou alterar os valores dos elementos do vetor
❏ Realizado com uma estrutura de repetição
Percorrendo Vetores

❏ Exemplo: Escreva um programa para armazenar as idades dos


funcionários de uma empresa. A empresa possui 3 funcionários. Inicialize
a idade de cada funcionário com o valor 18.
Percorrendo Vetores

❏ Exemplo: Escreva um programa para armazenar as idades dos


funcionários de uma empresa. A empresa possui 3 funcionários. Inicialize
a idade de cada funcionário com o valor 18.
Percorrendo Vetores

❏ Valor das variáveis na 1ª iteração do for para inicialização dos valores do


vetor idades

Valor das variáveis


i=0
idade[0] = 18
idade[1] = ???
idade[2] = ???
Percorrendo Vetores

❏ Valor das variáveis na 1ª iteração do for para inicialização dos valores do


vetor idades

Valor das variáveis


i=1
idade[0] = 18
idade[1] = 18
idade[2] = ???
Percorrendo Vetores

❏ Valor das variáveis na 1ª iteração do for para inicialização dos valores do


vetor idades

Valor das variáveis


i=2
idade[0] = 18
idade[1] = 18
idade[2] = 18
Percorrendo Vetores

❏ Exemplo: Escreva um programa que cria um vetor para armazenar o


salário dos funcionários de uma empresa com 400 funcionários. Inicialize
o salário de cada funcionário com o valor do salário mínimo (R$ 880,00).
Percorrendo Vetores

❏ Exemplo: Escreva um programa que cria um vetor para armazenar o


salário dos funcionários de uma empresa com 400 funcionários. Inicialize
o salário de cada funcionário com o valor do salário mínimo (R$ 880,00).
Percorrendo Vetores

❏ O percorrimento também pode ser usado para mostrar o valor de todos


os elementos de um vetor
❏ Utiliza-se uma estrutura de repetição para acessar cada elemento do
vetor e a função printf para imprimir um elemento do vetor em cada
iteração da estrutura de repetição
Percorrendo Vetores

❏ Exemplo: o for abaixo pode ser usado para imprimir todos os elementos
de um vetor (nesse caso, o vetor é preenchido de acordo com a posição).
Percorrendo Vetores

❏ Exemplo: Escreva um programa que cria um vetor do tipo inteiro de


tamanho 300. Inicialize todos os elementos do vetor com o valor 7 e
mostre o valor armazenado em todos os elementos do vetor.
Percorrendo Vetores

❏ Solução:
Percorrendo Vetores

❏ Exemplo: Escreva um programa para analisar os resultados de uma


pesquisa de opinião sobre um supermercado da cidade feita com 20
pessoas. As respostas são na escala de 1 a 5 (1 ruim e 5 ótimo). Conte
quantas respostas de cada tipo (escala) foram dadas.
Percorrendo Vetores

❏ Solução:
Percorrendo Vetores

ATENÇÃO:
❏ A linguagem C não faz verificação dos limites do vetor para evitar que o
computador faça referência a um elemento que não existe no vetor;
❏ Caso um vetor tenha tamanho 5 e no programa seja feita uma referência a um
elemento de índice 20, a linguagem C não mostrará nenhuma mensagem de
erro;
❏ Deve-se ter muito cuidado ao fazer referência a um elemento do vetor para
evitar acessar um elemento inexistente, acesso a um elemento inexistente no
vetor provocará um resultado incorreto na execução do programa.
Percorrendo Vetores

❏ Exemplo: A linha 10 do programa faz referência a um elemento de índice


20, de um vetor de tamanho 5 (não existe um elemento de índice 20, em
um vetor de tamanho 5). A referência a um elemento de índice
inexistente no vetor, provoca um resultado incorreto na execução do
programa.
Percorrendo Vetores

❏ Exemplo: A linha 10 do programa faz referência a um elemento de índice 20,


de um vetor de tamanho 5 (não existe um elemento de índice 20, em um vetor
de tamanho 5). A referência a um elemento de índice inexistente no vetor,
provoca um resultado incorreto na execução do programa.

Ao executar, note que não aparece mensagem de erro!


Exercício de Fixação

1 - Armazene em um vetor os números de 100 a 150 (incluindo 100 e 150)


2- Armazene em um vetor os números pares de 200 a 473 (incluindo 200)
3- Escreva um algoritmo onde serão armazenados em um vetor 5 elementos
digitados pelo usuário.
Vetor de Caracteres
Vetor de Caracteres

❏ Em C uma string na verdade é um vetor de caracteres, onde cada


elemento do vetor corresponde a uma letra
❏ A inicialização de um vetor de caracteres pode receber uma string

char s[ ] = "mundo";
Vetor de Caracteres

❏ Toda string em C termina com um caractere especial de término de


string chamado de caractere nulo representado como '\0'
❏ As posições do vetor de caracteres s são:
char s[ ] = "mundo";
Vetor de Caracteres

❏ Pode-se mostrar toda uma string ou vetor de caracteres na função printf com
o conversor %s

No código acima, será mostrada a palavra mundo no console


Vetor de Caracteres

❏ Pode-se mostrar no console apenas uma letra da string fazendo referência ao


índice da letra que deseja-se mostrar

No código acima, será mostrada a letra u no console


Vetor de Caracteres

❏ A leitura de uma string do console é realizada com a função scanf e o


conversor %s
❏ Não é necessário o & antes do nome da variável do tipo string
❏ Os caracteres são lidos pela função scanf e atribuídos para a variável do tipo
string até o primeiro espaço em branco
Vetor de Caracteres

❏ O vetor de caracteres deve ter um tamanho igual ou superior ao da string que


o vetor receberá, porque pode ocasionar na perda de letras da string (depende
do compilador)
❏ Exemplo: a string palavra tem tamanho 3, caso o usuário digite mundo será
armazenado na string palavra apenas as primeiras letras
Vetor de Caracteres

❏ Uma forma de realizar o percorrimento em uma string é mostrada no trecho


de código seguinte, onde o loop for é executado até que o caractere nulo (\0)
seja encontrado na string
Vetores em Funções
Vetores em Funções

❏ No cabeçalho da função deve-se especificar que o parâmetro será um vetor


adicionando os colchetes [ ] após o nome do parâmetro sem definir o
tamanho do vetor
❏ Exemplo: a função soma possui como parâmetro um vetor chamado num

int soma(int num [ ]);


Vetores em Funções

❏ Para passar um vetor como parâmetro para uma função, basta usar o nome do
vetor
❏ Exemplo: o vetor n é passado como parâmetro para a função soma.
Vetores em Funções

❏ Caso seja necessário evitar que os valores dos elementos de um vetor sejam
modificados usa-se o qualificador const na declaração do vetor como
parâmetro
void duplica(const int num [ ]);
Vetores em Funções

❏ Tentativa de modificar o valor de


um elemento de um vetor
passado como const causará um
erro
Exercício de Fixação

Faça uma função que receba como parâmetro um vetor de 5 elementos. Retorne o
produto desses elementos.
Ordenação
Ordenação

❏ Ordenação de dados significa colocar os dados segundo uma


determinada ordem, crescente ou decrescente
❏ Grande aplicação computacional
Método da Bolha

Buble Sort
❏ Tem esse nome porque os elementos maiores sobem para as posições
maiores do vetor assim como as bolhas de ar sobem na água para a
superfície
❏ Mais simples de ser implementado
❏ Mais ineficiente
❏ Cada vez que o algoritmo passa pelo vetor, um elemento do vetor é
ordenado
Método da Bolha

❏ O método da bolha verifica se o elemento que está sendo ordenado é maior


(ordenação crescente) ou menor (ordenação decrescente) que o próximo
elemento do vetor, caso seja o elemento atualmente ordenado é trocado de
posição com o próximo elemento
Método da Bolha

❏ 1º passo da ordenação do vetor n = {5, 1, 4, 2, 8}


❏ Ordena-se o 1º elemento do vetor

5 1 4 2 8 -> 1 5 4 2 8
1 5 4 2 8 -> 1 4 5 2 8
1 4 5 2 8 -> 1 4 2 5 8
1 4 2 5 8 -> 1 4 2 5 8
Método da Bolha

❏ 2º passo da ordenação do vetor n


❏ Ordena-se o 2º elemento do vetor

1 4 2 5 8 -> 1 2 4 5 8
1 2 4 5 8 -> 1 2 4 5 8
1 2 4 5 8 -> 1 2 4 5 8
Método da Bolha

❏ 3º passo da ordenação do vetor n


❏ Ordena-se o 3º elemento do vetor

1 2 4 5 8 -> 1 2 4 5 8
1 2 4 5 8 -> 1 2 4 5 8
Método da Bolha

❏ 4º passo da ordenação do vetor n


❏ Ordena-se o 4º elemento do vetor

1 2 4 5 8 -> 1 2 4 5 8
Método da Bolha

❏ Algoritmo de ordenação crescente pelo método da bolha:


Pesquisa
Pesquisa

❏ Pesquisa ou busca em vetores consiste na procura por um determinado


dado entre os elementos do vetor
❏ O dado a ser procurado é chamado de valor chave ou elemento chave
❏ Existem muitos algoritmos de busca
Pesquisa

Pesquisa Linear:
❏ Compara cada elemento do vetor com o valor chave
❏ Simples implementação
❏ Pouco eficiente
Pesquisa

❏ Algoritmo de Pesquisa Linear


Pesquisa

Pesquisa Binária:
❏ Vetor deve estar ordenado
❏ Elimina metade dos elementos a serem buscados no vetor a cada comparação
❏ Implementação simples
❏ Boa eficiência
❏ Usa uma variável para guardar o índice inferior e o índice superior da faixa de
elementos onde o valor chave é pesquisado
Pesquisa

❏ Programa principal que chama a função pesquisa binária:


Pesquisa

❏ Função que implementa o algoritmo de busca binária:


Pesquisa

❏ Passo a passo da ordenação do vetor v = {1, 2, 4, 5, 8}

1ª iteração da busca binária

meio = (0 + 4) / 2 = 2
chave -> 8 == 4 -> NÃO
—---------------------
inf = 2 + 1 = 3
sup = 4
v = {5, 8}
Pesquisa

❏ Passo a passo da ordenação do vetor v = {1, 2, 4, 5, 8}

2ª iteração da busca binária

meio = (3 + 4) / 2 = 3
chave -> 8 == 5 -> NÃO
—---------------------
inf = 3 + 1 = 4
sup = 4
v = {8}
Pesquisa

❏ Passo a passo da ordenação do vetor v = {1, 2, 4, 5, 8}

3ª iteração da busca binária

meio = (4 + 4) / 2 = 4
chave -> 8 == 8 -> SIM
Universidade Federal do Ceará - Campus Crateús
Curso de Ciência da Computação | Sistemas de Informação
Profa. Kamila Gomes

Disciplina de Fundamentos de Programação

Aula 06: Vetores

2023.1

Você também pode gostar