Sie sind auf Seite 1von 9

UNIVERSIDADE ANHANGUERA DE CAMPINAS - Unidade II

CURSO: Sistemas de Informao


DISCIPLINA: Estrutura de Dados

Nelson Manoel da Silva - RA 1299113233

METODOS E ORGANIZAOES DE PROCESSAMENTO DE DADOS


Desafio apresentado como requisito para a
obteno de nota da disciplina Estrutura de
dados do Curso de Sistemas de Informao,
supervisionada pelo tutor presencial
Prof. Srgio

CAMPINAS, 24 de novembro de 2015

ETAPA 3
3.1. Implementao da estrutura taxiamento.
Passo 2
1. Fazer um programa em Linguagem C que implemente a estrutura taxiamento
(structtaxiamento) para controlar a Liberao para Taxiamento das Aeronaves para
decolagem na pista de voos. O taxiamento e as decolagens devem obedecer uma fila para
no haver choques entre as aeronaves a decolar e que esto pousando. A estrutura
taxiamento deve ser implementada de forma dinmica e deve conter as seguintes
informaes:
nmero do voo;
modelo da Aeronave;
empresa Area;
horrio de Sada;
2. Implementar a funo cadastrarTaxiamento() que deve cadastras as informaes do
taxiamento e decolagem com as informaes acima. O cadastro deve obedecer disciplina
de insero dos dados FIFO (First In First Out).
3. Implementar a funo autorizaTaxiamento() que deve apresentar qual a sequencia de
taxiamentos e decolagens das aeronaves.
struct taxiamento
{
int numeroVoo;
int horarioSaida;
char modeloAeronave[10];
char empresaAerea[10];
struct taxiamento * prox; // ponteiro para o prximo
};
int main (int argc, char *argv[])
{
struct taxiamento * inicio = NULL,*fim,*novo,*aux,*imprime; // ponteiro para a struct voo
int opcao = 0;

while(opcao != 3)
{
printf("\n");
printf("[1] Cadastrar Taxiamento\n");
printf("[2] Ordem de Autorizacao de Taxiamento \n");
printf("[3] Sair \n");
2

scanf("%d", &opcao);
if(opcao == 1)
{
novo = (struct taxiamento*)malloc(sizeof(struct taxiamento));
novo->prox = (struct taxiamento*)NULL;
printf("\n");
printf("Digite o numero do voo: ");
scanf("%d", &novo->numeroVoo);
printf("Modelo da aeronave: ");
scanf("%s", &novo->modeloAeronave);
printf("Empresa Aerea: ");
scanf("%s", &novo->empresaAerea);
printf("Horario de Saida: ");
scanf("%d", &novo->horarioSaida);
if(inicio==(struct taxiamento *)NULL)
{
inicio = novo;
fim = inicio;
}
else
{
fim->prox = novo;
fim = novo;
}
}
else if(opcao == 2)
{
imprime = inicio;
printf("\n");
while(imprime != NULL)
{
printf(" Ordem de decolagem: \n Voo n.: %d, Modelo Aeronave: %s, Empresa Aerea: %s,
Horario de Saida: %d\n", imprime->numeroVoo, imprime->modeloAeronave,imprime>empresaAerea, imprime-> horarioSaida);
imprime = imprime->prox; // aponta para o prximo
}
}
}
3

return 0;
};
Resultado:

Figura 1 Execuo passo 2 atps estrutura taxiamento.

Passo 3
1. Fazer um programa em Linguagem C que implemente a estrutura bagagem (struct
bagagem) para o controle de armazenamento das bagagens no compartimento de cargas.
O programa deve controlar o empilhamento e desempilhamento das bagagens e ser
implementado de forma dinmica, por meio das seguintes informaes:
Cdigo da Bagagem;
Nmero da Passagem;
Nmero do Voo;
Data Embarque;
Horrio de Embarque;
Porto de Embarque.
2. Implementara funo cadastraBagagem() que deve permitir o cadastro de bagagens dos
passageiros. O cadastro deve obedecer disciplina de insero dos dados LIFO
(Last In First Out).
3. Implementar a funo recuperaBagagem() que deve resgatar as bagagens que foram
empilhadas pela funo cadastraBagagem().
4

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct bagagem
{
int codigoBag;
int numeroPassagem;
int numeroVoo;
int dataEmbarque;
int horaEmbarque;
int portaoEmbarque;
struct bagagem* prox;
};
int main (int argc, char *argv[])
{
struct bagagem* inicio = NULL,*fim, *novo,*aux,*imprime;
int opcao = 0;
while(opcao != 3)
{
printf("\n");
printf("[1] Cadastrar Bagagem \n");
printf("[2] Recuperar Bagagem \n");
printf("[3] Sair \n");
scanf("%d", &opcao);
if(opcao == 1)
{
// aloca memria
novo = (struct bagagem*)malloc(sizeof(struct bagagem));
// atualiza fim do ponteiro
novo->prox = (struct bagagem*)NULL;
printf("\n");
printf("Digite codigo dabagagem: ");
scanf("%d", &novo->codigoBag);
printf("Digite o numero da passagem: ");
scanf("%d", &novo->numeroPassagem);
printf("Digite o numero do Voo: ");
scanf("%d", &novo->numeroVoo);
printf("Data do embarque: ");
scanf("%d", &novo->dataEmbarque);
printf("Horario de Embarque: ");
5

scanf("%d", &novo->horaEmbarque);
printf("Portao de embarque: ");
scanf("%d", &novo->portaoEmbarque);
if(inicio==(struct bagagem*)NULL)
{
inicio = novo;
fim = inicio;
}

else
{
//atribui o apontamento do primeiro registro para o ultimo da pilha
novo->prox = inicio;
//aponta o novo registro para o primeiro da pilha
inicio = novo;
}
}
else if(opcao == 2)
{
// proximo_ponto aponta para o mesmo de ini_ponto, comea do incio
imprime = inicio;
printf("\n");
// mostra todos os dados
// enquanto proximo_ponto for diferente de NULL
while(imprime != NULL)
{
printf(" Recuperar bagagem :\n Codigo: %d, Numero da Passagem: %d, Numero do Voo: %d,
Data de Embarque: %d, Horario de Embarque: %d, Portao de Embarque: %d \n", imprime>codigoBag, imprime->numeroPassagem,imprime->numeroVoo, imprime-> dataEmbarque,
imprime->horaEmbarque, imprime->portaoEmbarque);
imprime = imprime->prox; // aponta para o prximo
}
}
}
return 0;
};
Resultado:

ETAPA 4
Grafo
Informalmente, um grafo e um modelo matemtico para representar uma
coleo de objetos (chamados vrtices) que so ligados aos pares por outra
coleo de objetos (chamados arcos ou arestas). Em ilustraes de grafos, os
vrtices so geralmente representados por pontos, crculos ou caixas, e as
arestas por linhas ligando os vrtices. Veja a figura 12.1. Em tais diagramas
entende-se que as posies dos vrtices e a forma das linhas so irrelevantes; o
grafo representa apenas a topologia dos vrtices e arestas, isto , quem est
ligado a quem.
Grafos so extremamente uteis para modelar problemas em muitas reas de
aplicao. Por exemplo, a malha rodoviria de um estado pode ser representada
por um grafo em que as cidades so os vrtices, e cada trecho de estrada entre
cidades consecutivas e uma aresta. Um circuito eltrico pode ser visto como um
grafo onde os vrtices so condutores metlicos e as arestas so resistores,
capacitores, e outros componentes. Uma molcula pode ser abstrada por um
grafo onde os tomos so os vrtices e as arestas so as ligaes covalentes.
Uma trelia metlica pode ser entendida como um grafo onde as arestas so as
barras e os vrtices so as juntas. Grafos so especialmente importantes em
computao, para modelar tanto hardware em vrios nnveis (desde circuitos
digitais at a internet mundial) quanto conceitos de software (como registros em
7

bancos de dados, blocos e mmdulos de programas, protocolos de transmisso


de dados, e muito mais).
O conceito abstrato de grafo e o estudo matemtico de suas propriedades foi
uma das muitas contribuies do matemtico suo Leonhard Euler (17071783).
Um quebra-cabeas famoso na poca era encontrar um passeio que visitasse
todas as pontes da cidade de konigsberg (veja a figura 12.2), passando uma
nica vez em cada ponte. Euler resumiu as propriedades essenciais do mapa por
um diagrama de pontos ligados por linhas. Apenas analisando esse diagrama
abstrato, ele provou que o tal passeio era impossvel. Este trabalho (publicado
em 1736) e considerado o primeiro artigo da teoria de grafos.
As teorias matemtica dos grafos foi desenvolvida gradualmente no sculo 19,
quando surgiram importantes aplicaes em qumica e engenharia. Sua
importncia cresceu muito no sculo 20, com o surgimento das redes de
telefonia, dos circuitos digitais, e por fim dos computadores.

Variedades de grafos
H vrias maneiras diferentes de formalizar o conceito de grafo em matemtica. Cada autor
Pode adotar uma definio diferente, e qual delas e melhor depende da aplicao. Nesta
Seo vamos apresentar as definies mais comuns.
Em todas as definies, um grafo G consiste de um conjunto de vrtices e um conjunto
de arestas, que denotaremos por V G e E G, respectivamente. O conjunto de vrtices e
arbitrrio; a natureza das arestas depende da definio, mas cada aresta tem sempre dois
extremos (no necessariamente distintos) que so vrtices de G. Dependendo da definio,
um grafo pode ter outras informaes alm dos conjuntos V G e E G.
Grafos orientados e no orientados
Um detalhe que varia entre as diferentes definies e a existncia de uma orientao ou
direo especfica em cada aresta, como a mo nica de certas vias urbanas. Grafos que
incluem essa informao so ditos grafos orientados (ou dirigidos), e os que no a registram
so no orientados (ou no dirigidos).
Em um grafo orientado, os extremos de cada aresta so distintos: um vrtice e considerado
a origem da aresta, e o outro seu destino. Nas ilustraes de grafos dirigidos, o sentido de
cada aresta e geralmente indicado por uma seta da origem para o destino.
Arestas paralelas
Em algumas aplicaes, tudo o que precisamos saber sobre as arestas se dois vrtices u
e v esto ligados entre si ou no. Nesse caso, o conjunto E G pode ser definido como um
8

conjunto de pares de vrtices: u e v esto ligados se e somente se o par (u, v) est em E G.


Em outras aplicaes, pode haver mais de uma ligao entre dois vrtices, e esse fato
precisa ser levado em conta pelo modelo. Nesses casos, costuma-se definir E G como outro
conjunto arbitrrio, independente de V G, e acrescentar ao grafo uma funo de incidncia
F G que, para cada aresta, diz quem so seus dois extremos. Neste modelo, portanto, pode
haver um nmero arbitrrio de arestas com os mesmos extremos.
Em um grafo no orientado, duas arestas com os mesmos extremos so ditas paralelas
(ou mmltiplas). Em um grafo orientado, duas arestas so paralelas se elas tm os mesmos
extremos e a mesma orientao (ou seja, a mesma a origem e mesmo destino). Se elas tem
os mesmos extremos mas orientaes opostas, elas so ditas antiparalelas.
Laos
Uma aresta que liga um vrtice a ele mesmo, como uma viela circular que comea e termina
na mesma esquina, e chamada de lao. Algumas definies permitem laos no grafo; outras
probem laos, exigindo que os dois extremos de cada aresta sejam vrtices distintos.
Grafos simples e multigrafos
Alguns autores definem grafos simples como sendo grafos (orientados ou no) sem laos e
sem arestas paralelas. Outros definem grafo excluindo arestas paralelas, e usam o termo
multigrafos quando h tais arestas.
Grafos finitos e infinitos
Um grafo pode ter infinitos vrtices e/ou infinitas arestas. Tais grafos infinitos tem aplicaes
na matemtica, mas os que ocorrem em computao geralmente so finitos em ambos os
aspectos.

Das könnte Ihnen auch gefallen