Вы находитесь на странице: 1из 27

Introdução à Programação

Vectores e Matrizes

1 Aula 9
Tópicos
 Vetores / Arrays Unidimensionais
 Operações sobre vectores
 Passagem de Vectores como parâmetros
 Vetores Multidimensionais (Matrizes)
Vetor Unidimensional
 Tabela de elementos, todos do mesmo tipo.
 Exemplos de definição de vetores
 Um vetor que representa a tabela de notas defeni-se assim:
#define N_ALUNOS 80
int notas_finais[N_ALUNOS];

 O vetor que representa a tabela de temperaturas define-se


assim:
#define N_DIAS_ANO 366
float temperaturas[N_DIAS_ANO];
Vector Unidimensional
 Intuitivamente, um vetor de elementos do tipo T consiste
num agregado de variáveis do tipo T, que podem ser acedidas
individualmente usando um índice inteiro.

Notas: 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4

Posição: 0 1 2 3 4 5 6 7 8 9
Vectores na Linguagem C
 Como declarar:

<tipo> <nome> [<tamanho1>];

 Exemplos:

float VetReais[100];
int Vector[5];
char Nome_cliente[50];
float cubo[20];
Vectores na Linguagem C
int VetInt[n];

Índices: 0 1 2 3 4 5 ... n-1

VetInt ...

Índice do primeiro elemento: zero


Índice do último elemento: n – 1
Quantidade de elementos: n
Acesso aos Elementos dum Vetor
Unidimensional

 Cada elemento dum vetor é acedido com base na posição que


ocupa nesse vetor, ou seja com base num índice. Por este
motivo, diz-se que um vetor é uma estrutura indexada.

 E.g. NOTAS finais dos 80 alunos, cada elemento do vetor é uma


nota final. 80 é a capacidade do vetor. Este vetor é indexado
pelos nºs de 0 a 79.
 Aceder a posição 0(zero): notas_finais[0]…. últimaposição
79(setenta e nove): notas_finais[79]
Vectores na Linguagem C

 O tamanho de um vector é pré-definido, ou seja, após a


compilação, não pode ser alterado.

 Vectores são chamadas estruturas de dados estáticas, porque


mantém o mesmo tamanho durante a execução do
programa.
Vectores na Linguagem C :: Exemplos
 Atribuir valores na declaração do vector:

int vector[5] = {1,2,3,4,5};

 Colocar os números de 1 a 5 num vector:

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


Vector[i] = i + 1;

 Colocar os números de 5 a 1 num vector:


for (i=0; i<5; i++)
Vector[i] = 5 - i;
Vectores na Linguagem C :: Exemplos
 Leitura dos dados de um vector:

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


{
printf("Digite um número: ");
scanf("%f", &Vet[i]);
}
Vectores na Linguagem C :: Exemplos
 Copiar dados de um vector para outro:

#define TAM_MAX 10
double VetReais[TAM_MAX], VetCopia[TAM_MAX];
for (i=0; i<TAM_MAX; i++)
VetCopia[i] = VetReais[i];

 Boa prática de programação:


 Definir o tamanho de vectores com constantes flexibiliza a
manutenção do código.
Exemplo
 Escreve um programa em C que peça 3 números inteiros ao
utilizador, armazene-os num vetor, depois mostre no ecrã o valor de
cada elemento do vetor, assim como seu respetivo índice.
Vectores na Linguagem C :: Problema A
Desenvolva um programa que:
 Lê um vector A de N elementos.
 Lê um elemento K.
 Verificar se o elemento K está presente no vector:
 Se estiver, imprimir a posição onde ele foi encontrado.
 Caso contrário, imprimir mensagem "elemento K não
encontrado".
Vectores na Linguagem C :: Problema B

Desenvolva um programa que:

 Ler N, valores inteiros (N ≤ 100) até que seja digitado o valor


zero.

 A seguir, inverte o vector, trocando o 1º elemento com o


último, o 2º com o penúltimo, e assim sucessivamente.

 Ao final, imprime o vector invertido.


Pesquisa num Vector
 Encontrar o maior valor dentro de um vetor

#define TAM_MAX 10
float Vet1[TAM_MAX];
float Maior;
for(i=0; i<TAM_MAX; i++)
scanf("%f",&Vet1[i]);// le os dados
Maior = Vet1[0]; // assume que o primeiro é o maior
for(i=0; i<TAM_MAX; i++)
if (Vet1[i] > Maior)
Maior = Vet1[i];
printf("O maior elemento é %f\n",Maior);
Passagem de Vetores como parâmetros
para funções

 Quando se define um parâmetro de tipo vetor numa


função,nunca se deve indicar o tamanho da primeira
dimensão, pois as funções do C aceitam vetores em que essa
primeira dimensão pode ter um tamanho qualquer. O tamanho
da primeira dimensão é normalmente passado num argumento
inteiro, ao lado do vetor.
Exercício
 Escreva um programa que permite calcular a média de N
notas introduzidas pelo utilizador.
 Cria um procedimento para ler as notas e
 Cria uma função para calcular a média.
 De seguida cria a função main para testar as funções
Solução
Vectores multidimensionais
 Utilizados para armazenar conjuntos de dados cujos elementos
necessitam ser endereçados por mais de um índice.
 Também são conhecidos como matrizes.
 Exemplo de vector de 2 dimensões

0 1 2 … n-1
0 788 598 265 … 156
1 145 258 369 … 196
2 989 565 345 … 526
⋮ ⋮ ⋮ ⋮ ⋱ ⋮
m-1 845 153 564 892 210
Matrizes na Linguagem C
 Como declarar:

<tipo> <nome> [<tamanho1>][<tamanho2>]...;

 Exemplos:

int Vector[5][9];
float cubo[20][12];
Matrizes na Linguagem C

 O tamanho de uma matriz é pré-definido, ou seja, após a


compilação, não pode ser mudado.

 Portanto, e matrizes são chamadas estruturas de dados


estáticas, pois mantém o mesmo tamanho ao longo de toda a
execução do programa.
Matrizes na Linguagem C :: Exemplos
 Atribuir valores na declaração da matriz:

float matriz[2][3] = {{1,2,3},{4,5,6}};


Matrizes na Linguagem C :: Exemplos
 Preenche uma matriz n × m com zeros:

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


for (j=0; j < M; j++)
Matriz[i][j] = 0;
Matrizes na Linguagem C :: Exemplos

 Boa prática de programação:


 Definir o tamanho de Matrizes com constantes flexibiliza a
manutenção do código.

#define TAM_MAX 20
int Vet[TAM_MAX][TAM_MAX];
Matrizes na Linguagem C :: Exemplos
 Leitura dos dados de uma matriz:

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


for (j=0; j<TAM_MAX; j++)
{
printf("Digite o número: ");
scanf("%f", &Vet[i][j]);
}
Matrizes na Linguagem C :: Problema A
0 1 2 3
Determinar:
0 1 2 3 4
1. M[3][0] = -3
1 5 -5 3 0
2. M[4][2] = 1
2 1 1 1 1
3. M[1][3] = 0
4. M[5][M[0][2]] = -2 3 -3 2 0 0

5. M[M[3][1]][1] = 1 4 0 0 1 1

5 -1 -1 -2 -2
Exercícios
 Faça um programa que leia e imprima uma matriz quadrada
de dimensão N.

Вам также может понравиться