Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos e Programação
2
Algoritmos e Programação
Vetores e Matrizes
3
Matriz
• Matriz é uma coleção da variáveis do mesmo tipo,
armazenadas em uma sequência contínua de
memória e acessadas individualmente a partir de um
único nome.
5
Vetor
• Matriz unidimensional ou Vetor – é uma matriz que
possui um único índice.
nota[10];
5.0 6.5 4.0 10.0 3.5 6.0 7.0 8.0 5.5 9.0
Índice 0 1 2 3 4 5 6 7 8 9
Nota
6
Declaração do Vetor
a) vetor com 5 elementos do tipo real
float media[5];
3 6 7 7 7
7
7
Profª Angelina
Declaração de vetor
• Inclui tanto o tipo de dados como o tamanho (nº de
elementos da matriz). Pode ser declarada como sendo
de qualquer um dos tipos básicos de C.
#define ALUNOS 10
float nota[ALUNOS];
8
Declaração Vetor Memória
1000
1001 nota 1º aluno
1002
Exemplos: 1003
1004
float nota[10]; 1005
nota 2º aluno
1006
1007
.
. .
. .
. .
10 elementos
. .
Ocupando 4 bytes cada = 40 bytes
.
1036
1037 nota 10º aluno
1038
1039
9
Inicialização do vetor
• A inicialização pode ser total ou parcial.
Sintaxe: tipo nome_matriz[tamanho] = {valor, valor, ...} ;
100 200 10
10
Inicialização do vetor
Cuidado:
int vetor[10] = {1, 2, 3}; inicializa os elementos restante com zero
int vetor[2] = {100, 200, 300}; mais elementos que o declarado
int vetor[ ] = {1, 2, 3, 4}; conta o nº elementos e fixa como dimensão
int vetor[ ];
11
Referenciação dos elementos
Para acessar cada elemento, basta colocar o nome do vetor
e a posição em que se tem interesse de trabalhar.
Exemplo: float nota[10] = {2.5, 4, 7.5, 3, 1, 2, 7, 8, 10,0.5};
1000
1001 2.5 nota[0]
1002
Exemplos: 1003
1004
float nota[10]; 1005
4 nota[1]
1006
1007
.
. .
. .
. .
10 elementos
. .
Ocupando 4 bytes cada = 40 bytes
.
1036
1037 0.5 nota[9]
1038
1039
13
Referenciação dos elementos
Cuidados:
• O índice do primeiro elemento é sempre 0 (zero) .
14
Referenciação dos elementos
32 96 64
vetor[0] vetor[1] vetor[2] vetor[3] vetor[4] vetor[5]
numeros[0]=0;
numeros[1]=2;
numeros[2]=4;
numeros[3]=6;
numeros[4]=8;
16
Armazenando e exibindo dados
Para armazenar e para exibir utilizamos o comando for
int i;
float nota[10];
//Armazenar
for(i=0; i<10; i++) Atenção: a variável do for tem que começar de zero
{
printf(“Digite a nota do %i aluno: ”, i+1);
scanf(“%f”, ¬a[i]);
}
#include <stdio.h>
#include <stdlib.h>
main()
{
int notas[35],i,soma =0;
for(i=0;i<35;i++)
{
printf("Digite a nota do aluno %d: ",i+1);
scanf("%i",¬as[i]);
soma=soma+notas[i];
}
printf("Media das notas: %.2f.", soma/35);
system("pause");
}18 Profª Angelina 18
Matriz Multidimensional
• É uma matriz que possui 2 ou mais índices. Sendo
chamada de matriz bidimensional, tridimensional,
etc...
• Exemplo:
Matriz [5][6] 0 5
0
19
Declaração de matriz bidimensional
• Inclui tanto o tipo de dados como o tamanho. No caso
da matriz bidimensional temos o nº de linhas e o nº de
colunas (indicando o tamanho total da matriz). Pode
ser declarada como sendo de qualquer um dos tipos
básicos de C.
4
21
Matriz Memória
1000 matriz[0][0]
Exemplo: 1004 matriz[0][1]
1008 matriz[0][2]
int matriz [5][6]; 1012 1ª linha
matriz[0][3]
0 5 1016 matriz[0][4]
1020 matriz[0][5]
0
.
.
.
.
.
.
.
.
.
4 1096 matriz[3][0]
1100 matriz[3][1]
5 linhas x 6 colunas = 30 elementos 1104 matriz[3][2]
Ocupando 4 bytes cada = 120 bytes 3ª linha
1108 matriz[3][3]
1112 matriz[3][4]
Cada linha tem 6 elementos
1116 matriz[3][5]
Ocupando 4 bytes cada = 24 bytes
22
Inicialização da matriz
• A inicialização pode ser total ou parcial.
Sintaxe:
tipo nome_matriz[linha][coluna]={ {valor, valor, ...} , {valor, valor, ...} } ;
1 2
3 4
5 6 23
23
Referenciação dos elementos
Para acessar cada elemento, basta colocar o nome do vetor e a
posição de linha, seguido da posição de coluna que se tem interesse
de trabalhar.
Exemplo: int mat[3][2] = {1, 2, 3, 4, 5, 6};
0 1
0 1 2
1 3 4
2 5 6
1 6
2 12
Cuidado:
matriz[2][8] extrapola os limites da matriz
matriz[2] não consiste em um elemento da matriz
25
Armazenando e exibindo dados
Para armazenar e exibir utilizamos o comando for aninhado
int linha, coluna;
float matriz[3][4];
//Armazenar
Atenção: a variável do for tem que começar de zero
for(linha=0; linha<3; linha++)
for(coluna=0; coluna<4; coluna++)
{
printf(“Digite um numero”);
scanf(“%f”, &matriz[linha][coluna]);
}
//Exibir
for(linha=0; linha<3; linha++) Atenção: a variável do for tem que começar de zero
for(coluna=0; coluna<4; coluna++)
printf(“\nmatriz[%i][%i]=%.2f”, linha, coluna,matriz[linha][coluna]);
26
Faça um programa que monitore as temperaturas dos pacientes de um hospital.
Os pacientes estão internados em alas. Há 3 alas com 5 pacientes em cada uma.
É necessário receber de cada ala as temperaturas dos pacientes e mostrar
quantos pacientes daquela ala estão com mais de 38 graus.
27
Resumo
28
Vetores
• Exemplo: Receber 12 números e armazená-los em um
vetor. Ao final, exibir a quantidade de números
negativos informados.
29
Vetores
Exemplo:
int numero[12],x,neg=0;
for(x=0;x<12;x++)
{
printf("Digite o numero da posicao %i: ",x);
scanf("%i",&numero[x]);
}
for(x=0;x<12;x++)
{
if (numero[x]<0)
neg++;
}
printf("\nQuantidade de numeros negativos=%i\n\n",neg);
30
Vetores
• Exercício 1:
– Receber 10 números e armazená-los em um vetor. Após
esta primeira etapa é necessário pedir para o usuário
digitar um número.
– Verificar se este número está armazenado no vetor e se
estiver, mostrar quantas vezes o número esta armazenado
no vetor, ou seja, quantas vezes o número se repete. Se o
número não estiver no vetor, uma mensagem deve indicar
esta condição e deverá ser solicitado um novo número
para o usuário.
31
Vetores
• Exercício 1:
int main()
{
int numero[10],x,procurado=0,cont=0;
do
{
printf("\nDigite o numero que deseja procurar: ");
scanf("%i",&procurado);
32
Vetores
cont. Exercício 1:
for(x=0;x<10;x++)
if(procurado==numero[x])
cont++;
if(cont==0)
printf("\nNumero nao encontrado!");
}while(cont==0);
printf("\nO numero %i foi encontrado %i vez(es)\n",procurado,cont);
system ("PAUSE");
return 0;
}
33
Vetores
• Exercício 2:
– Receba dois vetores A e B, ambos com 5 elementos,
determine o vetor resultante C, onde C[i]=A[i]+B[i].
Exemplo:
1 2 0 -4 3
A[0] A[1] A[2] A[3] A[4]
6 1 10 2 3
B[0] B[1] B[2] B[3] B[4]
7 3 10 -2 6
C[0] C[1] C[2] C[3] C[4]
34
Vetores
• Exercício 2:
int main()
{
int A[5],B[5],C[5],i;
for(i=0;i<5;i++)
{
printf(“A[%i]: ", i);
scanf("%i",&A[i]);
}
for(i=0;i<5;i++)
{
printf(“B[%i]: ", i);
scanf("%i",&B[i]);
}
for(i=0;i<5;i++)
{
C[i]=A[i]+B[i];
printf("\nC[%i] = %i",i,C[i]);
}
getch();
return 0;
35
}
Vetores
• Exercício 2 – versão1:
– Receba dois vetores A e B, ambos com a quantidade de
elementos estipulada pelo usuário, determine o vetor
resultante C, onde C[i]=A[i]+B[i].
Exemplo:
1 2 0 -4 3
A[0] A[1] A[2] A[3] A[4]
6 1 10 2 3
B[0] B[1] B[2] B[3] B[4]
7 3 10 -2 6
C[0] C[1] C[2] C[3] C[4]
36
Matriz Bidimensional
• Exercício 3:
Inserir nºs aleatórios em uma matriz bidimensional 4x5. E
mostrá-los na tela.
1 2 0 -4 3
6 1 10 2 3
7 3 17 -2 61
0 -3 1 -22 6
37