Buscar

Vetores e Matrizes em Algoritmos

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
ALGOP – Algoritmos e Programação 
Aula 5 – Vetores e Matrizes
+ Vetores (variáveis compostas homogêneas unidimensionais)
+ Vetores (exemplos de uso)
+ Matrizes (variáveis compostas homogêneas multidimensionais)
+ Matrizes (exemplos de uso) 
2
ALGOP – Algoritmos e Programação 
Vetores (definição)
Um vetor é uma variável composta, homogênea e unidimensional. Um 
vetor também é caracterizado como uma variável indexada.
Composta: permite o armazenamento de várias informações dentro de 
uma “mesma variável” (mesmo identificador).
Indexada: cada informação é manipulada a partir de um índice, acoplado 
ao identificador da variável composta. Esse índice corresponde a posição, 
de um determinado dado, dentro do vetor.
 
Homogênea: os dados armazenados são de um mesmo tipo; (ou são 
inteiros, ou reais, ou caracteres);
 
Unidimensional: os dados ficam dispostos em uma única dimensão e 
armazenados em regiões contíguas (vizinhas) de memória. 
3
ALGOP – Algoritmos e Programação 
Vetores (definição, exemplo)
vet_idades: 
Observando o exemplo acima, notamos que existe um conjunto de idades 
representado por um único identificador (vet_idades). Esse conjunto de 
idades pode ser armazenado (na memória) em um vetor.
Os dados (idades) contidos nesse vetor, podem ser acessados pelos seus 
índices (posições). Por exemplo, na posição de índice 2 temos como 
conteúdo o valor 40, ou seja, vet_idades[2] = 40 … :-)
Podemos utilizar vetores para representar uma lista com idades de 
pessoas, uma lista de preços, uma lista com os tempos dos carros de 
corrida (para formação do grid de largada) … :-)
18 33 40 12 65
0 1 2 3 4
4
ALGOP – Algoritmos e Programação 
Vetores (declaração e atribuição)
vet_idades: 
Antes de utilizarmos um vetor, precisamos declará-lo (da mesma forma que 
fazemos para as variáveis comuns). Na linguagem C/C++ acomplamos, ao 
identificador, o número de elementos do vetor entre colchetes.
Em Pseudolinguagem Em linguagem C/C++
vet_idades : vetor[0..4] de inteiro int vet_idades[5]; 
Para atribuirmos um valor a uma posição desse vetor devemos escrever:
Em Pseudolinguagem Em linguagem C/C++
vet_idades[3] <- 12 vet_idades[3] = 12;
vet_idades:
0 1 2 3 4
12
0 1 2 3 4
5
ALGOP – Algoritmos e Programação 
Vetores (entrada e saída de dados)
Podemos fornecer valores para posições do vetor, utilizando as instruções de 
entrada de dados (pelo teclado): 
Em Pseudolinguagem Em linguagem C/C++
leia (vet_idades[1]) scanf (“%d”, &vet_idades[1]); 
Supondo que o usuário tenha digitado o valor 53, atendendo a solicitação de 
entrada de dados pelo teclado, o nosso vetor estará armazenando os valores:
vet_idades: 
Podemos apresentar o conteúdo (valor) de uma determinada posição do vetor:
Em Pseudolinguagem Em linguagem C/C++
escreva (vet_idades[1]) printf (“ X = %d”, vet_idades[1]);
Será mostrado, na tela, o conteúdo da posição de índice 1 do vetor: X = 53
53 12
0 1 2 3 4
6
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 1 – código sem vetor)
No cenário a seguir, queremos armazenar as temperaturas dos sete dias de 
uma semana para, em seguida, calcular a média de temperatura do período. 
No primeiro trecho de código, utilizamos 7 variáveis para guardar os dados 
mencionados, enquanto que, no segundo trecho, utilizamos um vetor... :-)
#include <stdio.h>
#include <conio.h>
int main()
{
  float tdom, tseg, tter, tqua, tqui, tsex, tsab, tmedia;
  
  printf ("Informe a temperatura do 1 dia: ");
  scanf ("%f", &tdom);
  printf ("Informe a temperatura do 2 dia: ");
  scanf ("%f", &tseg);
  
  // continua (exemplo utilizando 7 variáveis) ...
7
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 1 – código sem vetor)
  printf ("Informe a temperatura do 3 dia: ");
  scanf ("%f", &tter);
  printf ("Informe a temperatura do 4 dia: ");
  scanf ("%f", &tqua);
  printf ("Informe a temperatura do 5 dia: ");
  scanf ("%f", &tqui);
  printf ("Informe a temperatura do 6 dia: ");
  scanf ("%f", &tsex);
  printf ("Informe a temperatura do 7 dia: ");
  scanf ("%f", &tsab);
  
  tmedia = (tdom+tseg+tter+tqua+tqui+tsex+tsab) / 7;
  printf ("Temperatura media = %f", tmedia);
    
  getch();
  return 0;    
}
8
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 1 – código com vetor)
#include <stdio.h>
#include <conio.h>
int main()
{
  int indice;
  float temp[7], tmedia, soma;
  
  soma = 0;
  for (indice = 0; indice <= 6; indice = indice + 1)
  {
    printf ("Informe a temperatura do %d dia: ", indice + 1);
    scanf ("%f", &temp[indice]);
    soma = soma + temp[indice];
  }
     tmedia = soma / 7;
  printf ("Temperatura media = %f", tmedia);
    
  getch(); return 0;    
}
Observe que o uso do
 vetor simplifica o programa.
Imagine se tivéssemos que 
calcular a média anual ?
Sem vetor, teríamos 365
variáveis !!! 
9
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 2 – busca ou pesquisa sequencial)
Aproveitando o cenário anterior, vamos supor que queremos apresentar a 
temperatura máxima do período coletado. Para isso, fazemos uso da busca 
senquencial (ou linear), que percorre todos os elementos do vetor, em busca da 
condição a ser satisfeita (no caso, temperatura máxima)... :-)
 
#include <stdio.h>
#include <conio.h>
int main()
{
  int indice;
  float temp[7], tmax;
  
  // informamos as temperaturas dos 7 dias
  for (indice = 0; indice <= 6; indice = indice + 1)
  {
    printf ("Informe a temperatura do %d dia: ", indice + 1);
    scanf ("%f", &temp[indice]);
  }
  
10
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 2 – busca ou pesquisa sequencial)
  // Busca sequencial ou busca linear (pesquisa ou busca)
  tmax = temp[0];
  for (indice = 1; indice <= 6; indice = indice + 1)
  {
    if (temp[indice] > tmax)
    {
      tmax = temp[indice];
    }    
  } 
  printf ("Temperatura maxima = %f", tmax);
    
  getch();
  return 0;    
}
Que alterações devemos fazer para obter a temperatura mínima ? … :-)
11
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 3 – ordenação do vetor)
No cenário seguinte, pedimos ao usuário para ele informar a idade de 5 
pessoas, que serão armazenadas num vetor. Em seguida, ordenamos os 
elementos do vetor, colocando-os em ordem crescente. Isso é muito útil e 
possibilita outros meios de busca (busca binária)... :-) 
#include <stdio.h>
#include <conio.h>
int main()
{
  int idade[5], aux, indice, repete;
  
  // coletamos as idades de 5 pessoas
  for (indice = 0; indice <= 4; indice = indice + 1)
  {
    printf ("Informe a idade do %d pessoa: ", indice + 1);
    scanf ("%d", &idade[indice]);
  }
12
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 3 – ordenação do vetor)
  // ordenamos (classificamos) o vetor (em ordem crescente)
  for (repete = 1; repete <= 4; repete = repete + 1)
  {
    for (indice = 1; indice <= 4; indice = indice + 1)
    {
      if (idade[indice] < idade[indice ­ 1])
      {
        aux = idade[indice];
        idade[indice] = idade[indice ­ 1];
        idade[indice ­ 1] = aux;
      }    
    }
  } 
 
  
13
ALGOP – Algoritmos e Programação 
Vetores (exemplo de uso 3 – ordenação do vetor)
  // apresentamos o vetor ordenado
  for (indice = 0; indice <= 4; indice = indice + 1)
  {
    printf ("%d ", idade[indice]);
  }
      
  getch();
  return 0;    
}
O algoritmo utilizado para classificar (ordenar) o vetor nesse exemplo é 
conhecido como método da bolha (bubble sort). Quando temos um vetor 
ordenado, é possível fazer uma busca mais eficiente (mais rápida) por elementos 
contidos nele. É como no exemplo da busca por uma determinada página de um 
livro; comoas páginas estão ordenadas, encontramos rapidamente uma página 
desejada (busca binária … pesquisar na internet)... :-)
14
ALGOP – Algoritmos e Programação 
Matrizes (definição)
Uma matriz é uma variável composta, homogênea, multidimensional e 
indexada.
Composta: permite o armazenamento de várias informações dentro de 
uma “mesma variável” (mesmo identificador).
Indexada: cada informação é manipulada a partir de índices, acoplados 
ao identificador da variável composta. Os índices estão relacionados com 
o número de dimensões da matriz. 
 
Homogênea: os dados armazenados são de um mesmo tipo; (ou são 
inteiros, ou reais, ou caracteres);
 
Multidimensional: vamos estudar exemplos de matrizes bidimensionais 
(duas dimensões) em que os dados ficam dispostos em linhas contendo 
um determinado número de colunas.
15
ALGOP – Algoritmos e Programação 
Matrizes (definição, exemplo)
mat_idades: 
Observando o exemplo acima, notamos que existe um conjunto de idades 
representado por um único identificador (mat_idades). Esse conjunto de 
idades pode ser armazenado (na memória) em uma matriz.
Os dados contidos nessa matriz, podem ser acessados a partir de seus 
índices (linha e coluna) (matriz de duas dimensões). Por exemplo, na 
posição de índices linha = 1 e coluna = 2 temos como conteúdo o valor 
65, ou seja, mat_idades[1][2] = 65 … :-) ... matriz [linha] [coluna] … :-)
L0 33 12 40
L1 19 27 65
L2 14 18 26
C0 C1 C2
16
ALGOP – Algoritmos e Programação 
Matrizes (declaração e atribuição)
mat_idades: 
Para declararmos uma matriz, procedemos da seguinte forma:
Em Pseudolinguagem Em linguagem C/C++
mat_idades : matriz[0..2][0..2] de inteiro int mat_idades[3][3]; 
Na linguagem C, no primeiro colchete informamos a quantidade de linhas, 
enquanto que, no segundo colchete, a quantidade de colunas. Para atribuir um 
valor a uma posição dessa matriz devemos escrever:
Em Pseudolinguagem Em linguagem C/C++
mat_idades[1][2] <- 65 mat_idades[1][2] = 65; (ver matriz acima)
L0 
L1 65
L2 
C0 C1 C2
Quando manipulamos
elementos de uma matriz,
Informamos primeiro o 
índice das linhas e depois
o índice das colunas.
Matriz [linha] [coluna] 
17
ALGOP – Algoritmos e Programação 
Matrizes (entrada e saída de dados)
mat_idades:
Podemos entrar com valores (pelo teclado) para posições da matriz:
Em Pseudolinguagem Em linguagem C/C++
leia (mat_idades[2][0]) scanf (“%d”, &mat_idades[2][0]); 
Supondo que o usuário tenha digitado o valor 14, atendendo a solicitação de 
entrada de dados pelo teclado, veja na matriz acima onde o 14 foi inserido... :-)
Podemos apresentar o conteúdo (valor) de uma determinada posição da matriz:
Em Pseudolinguagem Em linguagem C/C++
escreva (mat_idades[2][0]) printf (“ X = %d”, mat_idades[2][0]);
Será mostrado, na tela, o conteúdo dessa posição da matriz: X = 14
L0 
L1 65
L2 14 
C0 C1 C2
18
ALGOP – Algoritmos e Programação 
Matrizes (exemplo de código para abastecer e mostrar valores)
#include <stdio.h>
#include <conio.h>
int main()
{
  int idades[3][3], linha, coluna;
   
  // fornecendo valores para as posições da matriz
  for (linha = 0; linha <= 2; linha = linha + 1)
  {
    for (coluna = 0; coluna <= 2; coluna = coluna + 1)
    {
      printf ("Entre valor para idades[%d][%d]: ", linha, coluna);
      scanf ("%d", &idades[linha][coluna]);      
    }    
  }
19
ALGOP – Algoritmos e Programação 
Matrizes (exemplo de código para abastecer e mostrar valores)
  // apresentando (na tela) o conteúdo da matriz
  printf ("\nMatriz de Idades:\n");
  for (linha = 0; linha <= 2; linha = linha + 1)
  {
    for (coluna = 0; coluna <= 2; coluna = coluna + 1)
    {
      printf ("%4d", idades[linha][coluna]);
    }
    printf ("\n");    
  }  
    
  getch();
  return 0;    
}
20
ALGOP – Algoritmos e Programação 
Vetores e Matrizes (declaração e inicialização)
#include <stdio.h>
#include <conio.h>
int main() 
{
  int vet_idades[5] = {12, 27, 40, 18, 33};
  int mat_idades[3][3] = {{44, 32, 15},
                          {17, 87, 56},
                          {22, 25, 50}};
  getch(); return 0; 
}
vet_idades: mat_idades: 
L0 44 32 15
L1 17 87 56
L2 22 25 50
C0 C1 C2
12 27 40 18 33
0 1 2 3 4
Podemos declarar e
já inicializar vetores e matrizes.
 Na linguagem C, basta fornecer
os valores iniciais entre chaves,
como apresentado abaixo.
21
ALGOP – Algoritmos e Programação 
Vetores e Matrizes (sugestões de leitura)
+ MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo.
 Algoritmos: lógica para desenvolvimento de programação de computadores.
 Capítulos: 6 – Estruturas de Dados Homogêneas I.
 7 – Aplicações práticas do uso de matrizes do tipo vetor.
 8 – Estruturas de Dados Homogêneas II.
 
+ SALIBA, Walter Luís Caram. Técnicas de programação: uma
 abordagem estruturada.
 Capítulo: 8 – Variáveis Indexadas.
Para Saber Mais
+ ARAÚJO, Everton C. Algoritmos: fundamento e prática.
 Capítulos: 12 – Conjuntos.
14 – Classificação e Pesquisa.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes