Você está na página 1de 24

1º Semestre 2019

Sumário 1

➢O que são vectores

➢Aceder aos elementos dos vectores

➢Inicializar vectores na instrução de definição

➢Matrizes
Sumário 2

➢O que são vectores

➢Aceder aos elementos dos vectores

➢Inicializar vectores na instrução de definição

➢Matrizes
Vetores ou Arrays 3

◆ Um vector ou array representa um conjunto de dados do


mesmo tipo. O conjunto é acedido por um nome de
váriavel.

◆ Sintaxe:

❑ tipo de dados nome_variavel[no. de elementos];

◆Exemplos:

❑ int dias[12];
❑ double alunos[20];
Vectores ou Arrays 4

➢ Os elementos dos vectores são colocados em posiçoes sequenciais


de memória

➢ São indexados a partir da posição 0, até à posição n-1 (sendo o n o


número de elementos ou dimensão do vector)

Primeiro Índice Elemento na posição 7

0 1 2 3 4 5 6 7 8 9 Indices

Dimensão do Vector é 10
Sumário 5

➢O que são vectores

➢Aceder aos elementos dos vectores

➢Inicialiar vetores na instrução de definição

➢Matrizes
Aceder aos elementos do vector ou 6
array

➢ Cada elemento de um vector é tratado como uma variável normal cujo


nome é o nome do vector seguido do seu índice ou posição:
➢ nome_vector[índice];
Sumário 5

➢O que são vectores

➢Aceder aos elementos dos vectores

➢Inicialiar vectores na instrução de definição

➢Matrizes
Inicializar Vectores na Instrução de 7
Definição (Declaração)

➢ Podemos também utilizar a seguinte a sintaxe para a declaração de


vectores
▪ int dias[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31};

▪ Os elementos não inicializados contêm 0.


➢ Ou
▪ int dias[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

▪ Neste caso o tamanho (dimensão) do vector é


determinado pelo número de valores entre {}
Inicializar Vectores na Instrução de 8
Definição (Declaração)

#include <stdio.h>
#include <stdlib.h>

main() {

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


printf(“%d %d %d %d %d”, vetor[0], vetor[1], vetor[2], vetor[3], vetor[4]);

system(“pause”);

➢ Qual o resultado disto?


Escreve: 1 2 3 0 0
Inicializar Vectores 8
Crie a declaração correcta para as 9
seguintes variáveis e Inicialize-as

◆ digitos é um vector de 10 inteiros

◆ int digitos[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

◆ notas é um vector de 5 reais

◆ double notas[5] = {15.5, 2.5, 3.7, 4.8, 5.5}

◆ chave é um vector com 12 caracteres


◆ char codigo[12]= {‘a’, ’b’, ’c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ’i’,
’j’, ’k’};
Ordenação de Vetores 10

➢ Existem algoritimos que permitem a ordenação de vectores:

➢ Insertion Sort

➢ Selection Sort

➢ Bubble Sort
Ordenação de Vectores 11
Bubble Sort

➢ O bubblesort compara cada elemento da posição i com o elemento da


posição i +1, se o elemento da posição i for maior que o elemento da
posição i+1 eles trocam de lugar e assim sucessivamente.

➢ É o algoritmo mais simples mas o menos eficiente também porque o vector


terá de ser percorrido tantas até o vetor ficar ordenado
12
Problema

➢ Fazer um programa que leia um conjunto de 10 elementos numéricos, a partir


do teclado, armazene-os na num vector v e depois imprima os elementos do
vector
Sumário 13

➢O que são vectores

➢Aceder aos elementos dos vectores

➢Inicializar vectores na instrução de definição

➢Matrizes
Matrizes 14

◆ Uma matriz pode ser vista como um vector de vectores

◆ Sintaxe

❑ tipo nome[dim1] [dim2]…[dimN];


Matrizes – Declaração e Inicialização 15

◆ int matriz[3][5]; // uma matriz com três linhas e 5


colunas.

◆char letras[4][3]; // uma matriz com 4 linhas e três


colunas.

◆float notas[3][5]; // uma matriz com 3 linhas e 5


colunas.
Matrizes – Declaração e Inicialização 16

◆float notas[3][5] ={ {12, 14.5, 15.2, 16, 17.1},


{18, 20, 19, 10, 14},
{ 2.5, 5.5, 10.5, 9.5, 12.8}
};
int matriz[2][3] = {{0, 1, 2}, {3, 4, 5}};
ou
matriz[0][0] = 0;
matriz[0][1] = 1;
matriz[0][2] = 2;
matriz[1][0] = 3;
matriz[1][1] = 4;
matriz[1][2] = 5;

◆O índice da direita varia mais rapidamente


Matrizes – Atribuição 17

◆ x[1][4] = 5; // atribui o valor 5 ao espaço identificado


pelo indíce 1 (linha 2) e índice 4 (coluna 5).

◆ x[0][0] = 10 // atribui o valor 10 na primeira linha e


primeira coluna.

◆letras[3][2] = ‘d’; // atribui o caráter d ao espaço


identificado pelo indíce 3 (linha 4) e índice 2 (coluna 3)
Matrizes – Preenchimento 18

◆ float notas[3][5];

int linha, coluna;


for(linha = 0; linha < 3 ; linha++ ){
for(coluna = 0 ; coluna < 5; coluna++){
scanf(“%f”, &notas[linha][coluna]);
}
}

◆ Preenche primeiro todas colunas da linha 0, depois todas as


colunas da linha 1 e assim por diante.
Matrizes – Impressão 19

int linha, coluna;


for(linha = 0; linha < 3 ; linha++ ){
for(coluna = 0 ; coluna < 5; coluna++){
printf(“%f\n”, notas[linha][coluna]);
}
}
Matrizes – Exercícios 20

1. Preencher uma matriz 3x3 com valores fornecidos pelo utilizador e


depois imprima a matriz.

2. Escreve um programa que preenche uma matriz 3x3 com valores


fornecidos pelo utilizador e deseguida calcular o seu traço.
O traço de uma matriz é a soma dos elementos da sua diagonal
principal.
Dúvidas 21

Você também pode gostar