Sie sind auf Seite 1von 16

Vetores, matrizes e ponteiros

Marcos Bião

Marcos Bião
Sumário


Introdução a algoritmos

Formas de representação

Linguagem natural

Pseudocódigo

Fluxograma

Compilação

Marcos Bião 2
Introdução


A declaração de variáveis, uma a uma é suficiente para
realizar uma codificação, porém é insuficiente para resolver
um grande numero de problemas.

Imagine, por exemplo, como faríamos para construir um
algoritmo, que lesse os nome de 500 pessoas e imprimisse um
relatório destes mesmos nomes, mas ordenados
alfabeticamente.

Marcos Bião 3
Introdução


Quando trabalhamos com vetores é necessário observar
qual vetor(identificador) queremos buscar a informação e
depois qual índice(posição) a informação esta.


media(4) = 9,4

Marcos Bião 4
Introdução


Depois de isolado, podemos manipulá-lo normalmente:

quantidades(5) = 4.8

numero(1) = 3


É possível inicializar todos os elementos de um
vetor através da seguinte sintaxe:

int numero(5) =(1,6,4,8,7);

int vector(10) = (1,6,5);

Marcos Bião 5
Introdução


A matriz é uma estrutura composta multidimensional.


Assim como os vetores, a matriz é um conjunto de dados
homogêneos


Cada elemento ocupa uma posição definida no conjunto e pode
ser referenciado através dela. Sendo que cada dimensão possui
um índice.

Marcos Bião 6
Introdução


A matriz é uma estrutura composta multidimensional.

Assim como os vetores, a matriz é um conjunto de dados
homogêneos

Cada elemento ocupa uma posição definida no conjunto e pode
ser referenciado através dela. Sendo que cada dimensão possui
um índice.
Tipo variavel[tamanho][tamanho];

Int numeros[2][7];
float cubo[3][3];

Marcos Bião 7
Ponteiros


Ponteiros estão entre as capacidades mais difíceis de se
dominar na linguagem C;


Ponteiros são variáveis cujos valores são endereços de memória;


Uma variável comum contém claramente um valor específico;

Marcos Bião 8
Ponteiros

Marcos Bião 9
Ponteiros

Marcos Bião 10
Ponteiros


Ponteiros devem ser definidos antes de sua utilização, como
qualquer outra variável

Se o ponteiro for ser inicializado com o endereço de uma
determinada variável, pode-se fazer da seguinte forma:
int numero = 5;
int *numeroPtr = №

Caso não tenha um endereço para ser atribuído, deve-se apontá-
lo para o primeiro endereço da memoria (NULL).
int *numeroPtr = NULL;

Marcos Bião 11
Alocação dinâmica


Muitas vezes, não sabe-se a quantidade de memória a ser
alocada

É necessário o uso dos processos de alocação dinâmica

Funções presentes na biblioteca stdlib

Malloc

Realloc

free

Marcos Bião 12
Alocação dinâmica


Malloc

Aloca espaço para um bloco de bytes consecutivos na memória

O número de bytes é especifico como argumento

int *ptr;
ptr = malloc(1);
ptr = malloc(10* sizeof(int));

Marcos Bião 13
Alocação dinâmica


Free

Variáveis alocadas estaticamente desaparecem ao fim da
execução da função

Variáveis alocadas dinamicamente continuam a existir

A função free desaloca a porção de memória alocada por
malloc

Marcos Bião 14
Alocação dinâmica


realloc

Existem casos em que necessita-se redimensionar um espaço
alocado previamente

A função realloc pode redimensionar o bloco de bytes

int *v;
v = malloc(1000*sizeof(int));
v = realloc(2000*sizeof(int));

Marcos Bião 15
Atividade


Lista de exercício se encontra no Dropbox

Marcos Bião 16

Das könnte Ihnen auch gefallen