Baixe o app para aproveitar ainda mais
Prévia do material em texto
CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 1 MATA49 Programação de Software Básico Leandro Andrade leandrojsa<at>dcc.ufba.br CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 2 Vetores CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 3 Vetores ● É uma lista em um bloco de memória contínuo ● Cada elemento tem o mesmo tipo e o mesmo número de bytes ● Essas características permitem um acesso eficiente aos elementos do vetor CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 4 Vetores ● O acesso aos elementos do vetor pode ser computado a partir de três fatos: – O endereço da primeira posição do vetor – O número de bytes de cada elemento – O índice do elemento ● Assim com em C, o índice da primeira posição do vetor é convencionada como 0. CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 5 Vetores: Definição ● Os vetores podem ser definidos com seus valores inicializados ou não-incializados ● Deve declarar os valores de cada elemento (inicializados) ou o número de posições (não inicializados) – Informando qual o tipo (byte, word, double word...) ● Podem ser declarados nos segmentos .data e .bss CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 6 Vetores: Definição CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 7 Vetores: Acesso ● Acesso não é feito como na maioria das linguagens de alto nível (array1[2], array2[4]) ● Acesso: elemeto_array = [<variavel> + <numero_bytes>] ● Não restringe acesso além do final do vetor CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 8 Vetores: Acesso ● Considere os vetores abaixo: array1 db 5, 4, 3, 2, 1 ;array de bytes array2 dw 5, 4, 3, 2, 1 ; array de words CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 9 Vetores Multidimensionais ● São armazenados na memória como vetores unidimensionais ● Duas dimensões: – Em C faríamos: int a [3][2] ● 2 x 3 = 6 elementos CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 10 Vetores Multidimensionais ● Duas dimensões: – Modos de mapear: ● Rowwise – Cada linha é contínua na memória a[i][j] = N x i + j N = número de colunas i = índice da linha ; j = índice da coluna ● Columnwise – Cada coluna é contínua na memória a[i][j] = i + N x j N = número de linhas i = índice da linha ; j = índice da coluna CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 11 Vetores Multidimensionais ● Duas dimensões: – Exercício: Implementando no mapeando rowwise crie o programa inicializa uma matriz 4x3 preenchendo cada posição por uma entrada do teclado (pode usar o “call read_int”) CIÊNCIA DA COMPUTAÇÃO - UFBA PROF. LEANDRO ANDRADE 12 Vetores Multidimensionais ● Mais de duas dimensões: – Mesmo raciocínio: – Para 3 dimensões: ● Seja a[L][M][N]: ● Então a[i][j][k] = M × N × i + N × j + k Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12
Compartilhar