Ir ao conteúdo
  • Cadastre-se

RAFAEL BARRETO

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

Tudo que RAFAEL BARRETO postou

  1. O objetivo deste trabalho é simular os padrões de aterrissagem e decolagem em um aeroporto. Suponha um aeroporto que possui três pistas, numeradas como 1, 2 e 3. Existe uma “prateleiras" de espera para aterrissagem, e uma para decolagem. A cada unidade de tempo, de zero a três aeronaves podem chegar nas filas de decolagem e de zero a três aeronaves podem chegar nas prateleiras. A cada unidade de tempo, cada pista pode ser usada para um pouso ou uma decolagem. A prioridade, inicialmente, é para aterrissagem. Utilize inteiros pares sucessivos de ID dos aviões chegando na fila de decolagem e ímpares para a filas d aterrissagem. A cada unidade de tempo, assuma que os aviões entram nas filas antes que aterrissagens ou decolagens ocorram. Projete um algoritmo que não permita o crescimento excessivo das filas de aterrissagem ou decolagem. Coloque os aviões sempre no final das filas. A saída do programa deverá indicar o que ocorre a cada unidade de tempo. Periodicamente imprima: a) o conteúdo de cada fila; os aviões que estão decolando/aterrissando em cada uma das 3 pistas; Obs.: A entrada deve ser criada utilizando-se um gerador de números aleatórios. typedef struct { int aviao; }tipoitem; typedef struct{ tipoitem itens [maxtam]; int inicio, fim; }tipopista; void pista_vazia (tipopista *pista) { pista->inicio=0; pista->fim=0; } int pistavazia (tipopista pista) { return (pista.inicio==pista.fim); } void enfileira_aviao_para_pousar (tipopista *pista, tipoitem dados) { pista->itens[pista->fim]=dados; pista->fim++; } void imprime_pista (tipopista pistax) { int i; printf ("\n\n\n\t\t\t ___________________________"); printf ("\n\t\t\t|______ PISTA DE POUSO______| \n "); for (i=pistax.inicio; i<pistax.fim; i++) printf (" %d - ", pistax.itens.aviao); } int pouso ( tipopista *pista,int pos, tipoitem *dados) { int aux; *dados = pista->itens[pos]; for (aux=pos; aux<pista->fim; aux++) pista->itens[aux-1]=pista->itens[aux]; pista->fim--; } int numeros_de_pouso ( tipopista pista) { return (pista.fim); } // PISTA DO AEROPORTO PARA DECOLAGEM typedef struct{ int avioes; }tipoaeroporto; typedef struct { tipoaeroporto item [tamanho]; int primeiro, ultimo; }tipopistadedecolagem; void faz_pista_de_decolagem (tipopistadedecolagem *lista) { lista->primeiro=0; lista->ultimo=0; } int pista_de_decolagem (tipopistadedecolagem lista) { return (lista.primeiro==lista.ultimo); } void avioes_para_decolagem (tipopistadedecolagem *lista, tipoaeroporto info) { lista->item[lista->ultimo]=info; lista->ultimo++; } void imprime_decolagem (tipopistadedecolagem listay) { int j; printf ("\n\n\n\t\t\t ___________________________"); printf ("\n\t\t\t|_____PISTA DE DECOLAGEM____| \n "); for (j=listay.primeiro; j<listay.ultimo; j++) printf (" %d - ", listay.item[j].avioes); } int pista_de_decolagem ( tipopistadedecolagem *lista, int posicao, tipoaeroporto *info) { int aux2; *info = lista->item[posicao]; for (aux2=posicao; aux2<lista->ultimo; aux2++) lista->item[aux2-1]=lista->item[aux2]; lista->ultimo--; } int numeros_de_decolagem (tipopistadedecolagem lista) { return (lista.ultimo); } int main(int argc, char *argv[]) { tipoitem pista; tipopista pistas; tipoaeroporto decola; tipopistadedecolagem decolagem; int op,x,pos=0,posicao=0; int conta_decolagem_na_pista_um=0, conta_decolagem_na_pista_dois=0; int pista_um, pista_dois,pista_tres; faz_pista_de_decolagem (&decolagem); pista_vazia (&pistas); srand ((unsigned )time(NULL)); while (op!=-1) { system ("cls"); printf ("\n\t\t\t###############################"); printf ("\n\t\t\t# CONTROLE DE TRAFEGO AEREO #"); printf ("\n\t\t\t###############################"); printf ("\n\t\t ____________________________________________"); printf ("\n\t\t| TECLE 1 PARA CONTINUAR OU -1 PARA SAIR |"); printf ("\n\t\t|_________________________________________ ___|\n"); printf ("\n\n\n\n\t\t\t\t SUA OPCAO --------> "); scanf ("%d", &op); system ("cls"); switch (op) { case 1: while ((x=rand())>3); if (x%2==1) { pista.aviao=x; enfileira_aviao_para_pousar(&pistas, pista); } if (x%2==0) { decola.avioes=x; avioes_para_decolagem (&decolagem, decola); } pista_um ; imprime_decolagem (decolagem); imprime_pista (pistas); printf ("\n\n\n\n\n %d ", x); printf ("\n\n %d DECOLAGEM NA PISTA UM ", conta_decolagem_na_pista_um); printf ("\n\n %d DECOLAGEM NA PISTA DOIS ", conta_decolagem_na_pista_dois); break; } getch(); } } minha duvida é em como saber se as pistas estão vazia ou não... como fazer as condições para aterrizar, ou pousar nas pistas vazias... quem puder dar uma ideia agradeço... abraços

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!