Beruflich Dokumente
Kultur Dokumente
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