TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Distribuição dinâmica

Projeto de pesquisa: Distribuição dinâmica. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  4/12/2014  •  Projeto de pesquisa  •  2.175 Palavras (9 Páginas)  •  208 Visualizações

Página 1 de 9

Etapa 3

Introdução

Nesta etapa vamos ver como organizar o sistema de um aeroporto para taxiamento aéreo com intuito de trazer segurança, dinamismo e organização para todas as etapas que vamos percorrer com isso podemos trazer para nossos passageiros e tripulantes maior confiabilidade no desenvolvimento do taxiamento aéreo. Para isso será feito um estudo com base nas instruções desta ATPS para determinar as melhores formas de transportar passageiros e manipular aeronaves.

Passo 1

Introdução a alocação Dinâmica de Memória: Conceito, funções, e aplicações. Exemplos. Desenvolvimento de Filas e Pilhas com alocação dinâmica.

Alocação dinâmica

A alocação dinâmica é o processo que aloca memória em tempo de execução. Ela é utilizada quando não se sabe ao certo quanto de memória será necessário para o armazenamento das informações, podendo ser determinadas em tempo de execução conforme a necessidade do programa. Dessa forma evita-se o desperdício de memória.

No padrão C ANSI existem 4 funções para alocações dinâmica pertencentes a biblioteca stdlib.h. São elas malloc(), calloc(), realloc() e free(). Sendo que as mais utilizadas são as funções malloc() e free(). Além das funções mencionadas acima existem outras que não serão abordadas neste tutorial, pois não são funções padrões.

A alocação dinâmica é muito utilizada em problemas de estrutura de dados, por exemplo, listas encadeadas, pilhas, filas, arvores binárias e grafos. As funções malloc() e calloc() são responsáveis por alocar memória, a realloc() por realocar a memória e por ultimo a free() fica responsável por liberar a memória alocada.

A sintaxe da função malloc() é dada por:

Esta função recebe como parâmetro “size” que é o número de bytes de memória que se deseja alocar. O tipo size_t é definido em stdlib.h como sendo um inteiro sem sinal. O interessante é que esta função retorna um ponteiro do tipo void podendo assim ser atribuído a qualquer tipo de ponteiro.

No exemplo abaixo, suponha que seja necessário no meio do código alocar uma memória com 150 bytes, para isto seria necessário digitar as seguintes linhas de código:

No programa abaixo podemos verificar alguns problemas que podem ser facilmente resolvidos se tivéssemos utilizado alocação dinâmica.

Referências bibliográficas

Referência gerada com sucesso.

Referência: BATTISTI, Júlio. Linguagem C – Alocação dinâmica. 2009. Disponível em: <http://juliobattisti.com.br/tutoriais/katiaduarte/cbasico009.asp>. Acesso em: 23 out. 2014.

Citação com autor incluído no texto: Battisti (2009)

Citação com autor não incluído no texto: (BATTISTI, 2009)

Filas e pilhas com alocação dinâmica

Como uma fila pode ser representada em C? Uma ideia é usar um vetor para armazenar os elementos da fila e duas variáveis, front e rear, para armazenar as posições dentro de um vetor do primeiro e último elemento da fila. Poderíamos declarar uma fila q de inteiros com:

#define MAXQUEUE 100

Struct queue {

Int items (MAXQUEUE);

Int front, rear;

}q;

Uma pilha é um conjunto ordenado de itens no qual novos itens podem ser inseridos e a partir do qual podem ser eliminados itens em uma extremidade chamado topo da pilha. Ao contrário do que acontece com o vetor, a definição da pilha compreende a inserção e a eliminação de itens, de modo que uma pilha é um objeto dinâmico, constantemente mutável. Por conseguinte, surge então a pergunta: como uma pilha muda ? A definição especifica que uma única extremidade da pilha é designada como o topo da pilha. Novos itens podem ser colocados no topo da pilha (em cujo caso este topo será deslocado para cima, de modo a corresponder ao novo primeiro elemento), ou os itens que estiverem no topo da pilha poderão ser removidos (em cujo caso esse topo será deslocado para baixo, de modo a corresponder ao novo primeiro elemento).

Referência gerada com sucesso.

A referência foi vinculada ao seu nome de usuário.

Referência: AARON M. TENENBAUM (Sp). Departamento de Ciências da Computação. Estrutura de dados usando c. Sorocaba: Pearson, 1995. 426 p. Adilson Domingues Nardi.

Citação com autor incluído no texto: Aaron M. Tenenbaum (1995)

Citação com autor não incluído no texto: (AARON M. TENENBAUM, 1995)

Passo 2

Taxiamento de voos

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<locale.h>

typedef struct Taxiamento{

int numeroVoo;

char modeloAeronave[20], empresaAerea[20], horaSaida[6];

struct Taxiamento* prox;

};

Taxiamento *aux, *inicio = NULL, *final = NULL;

void cadastrarTaxiamento(){

aux = (struct Taxiamento*)malloc(sizeof(struct Taxiamento));

system("cls");

printf("\n\tDigite o Numero do Voo: ");

scanf("%d", &aux -> numeroVoo);

...

Baixar como (para membros premium)  txt (7.8 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com