Ir para conteúdo
Fórum Script Brasil

renatoemoura

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre renatoemoura

Perfil

  • Gender
    Male

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

renatoemoura's Achievements

0

Reputação

  1. Fila.h typedef struct item { int numero; char nome[30]; struct item *prox; } Item; typedef struct fila { Item *primeiro; Item *ultimo; int qtdItens; } Fila; Fila *criaFila(); void liberaFila(Fila *f); int estahVazia(Fila); void enfileirar(Fila *f, int n, char nm[]); void desenfileirar(Fila *f, char *nomeDesenfileirado, int *nDesenfileirado); void mostrarFila(Fila *f); int quantidadeFila(Fila *f); void mostrarCaracteristicas(Fila *f);Fila.cpp #include <malloc.h> #include <iostream> #include <string.h> #include "Fila.h" using namespace std; #define MSG_FILAVAZIA "\nA Fila está vazia\n" Fila *criaFila(){ Fila* f = (Fila*) malloc(sizeof(Fila)); f->primeiro = NULL; f->ultimo = NULL; f->qtdItens = 0; return f; } void liberaFila(Fila *f){ free(f); } int estahVazia(Fila *f){ return f->qtdItens == 0; } void enfileirar(Fila *f, int i, char n[]){ Item *novoItem = (Item*) malloc(sizeof(Item)); novoItem->numero = i; strcpy(novoItem->nome, n); if (estahVazia(f)){ novoItem->prox = NULL; }else{ novoItem->prox = f->ultimo; } f->ultimo = novoItem; f->qtdItens++; } int desenfileirar(Fila *f, char *nomeDesenfileirado[], int *nDesenfileirado){ Item *i; if(!estahVazia(f)){ i = f->primeiro; f->primeiro = i->prox; strcpy(*nomeDesenfileirado, i->nome); *nDesenfileirado = i->numero; free(i); }else{ fprintf(stderr, MSG_FILAVAZIA); return 0; } f->qtdItens--; return 1; } void mostrarFila(Fila *f){ Item *i = f->primeiro; while(i != f->ultimo){ cout << " [Numero: " << i->numero << ", Nome: " << i->nome << "] |"; i = i->prox; } cout << " [Numero: " << i->numero << ", Nome: " << i->nome << "]" << endl; } int quantidadeFila(Fila *f){ return f->qtdItens; } void mostrarCaracteristicas(Fila *f){ cout << " [Numero: " << f->primeiro->numero << ", Nome: " << f->primeiro->nome << "]" << endl; }aeroporto.h #include "Fila.cpp" /* 1. Escreva um programa que simule o controle de uma pista de decolagem de aviões em um aeroporto. Neste programa, o usuário deve ser capaz de realizar as seguintes tarefas: */ // a) Listar o número de aviões aguardando na fila de decolagem; void quantosAvioesAguardam(Fila *f); // b) Autorizar a decolagem do primeiro avião da fila; void autorizarDecolagem(Fila *f); // c) Adicionar um avião à fila de espera; void adicionarAviaoFilaDecolagem(Fila *f); // d) Listar todos os aviões na fila de espera; void listarAvioesFilaDecolagem(Fila *f); // e) Listar as características do primeiro avião da fila; void caracteristicasProximoDecolar(Fila *f); // Menu interativo para acesso às funções. int menuAeroporto(Fila *f);aeroporto.cpp #include <iostream> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "aeroporto.h" using namespace std; void quantosAvioesAguardam(Fila *f){ system("clear"); if(!estahVazia(f)){ cout << f->qtdItens << " Avioes estao aguardando para decolar." << endl; }else{ cout << "Nao ha avioes aguardando para decolar." << endl; } cout << endl; sleep(2); menuAeroporto(f); } void autorizarDecolagem(Fila *f){ Item *i; char *nm[30]; int *num; system("clear"); if (!estahVazia(f)){ desenfileirar(f, nm, num); cout << "Aviao [Numero: " << num << "] [Nome: " << nm << "] | Autorizado a decolar." << endl; }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } void adicionarAviaoFilaDecolagem(Fila *f){ char nm[30]; int num=0; system("clear"); cout << "Digite os dados do aviao a ser inserido na Fila de Decolagem" << endl; cout << "Numero: "; cin >> num; cout << endl; cout << "Nome: "; cin >> nm; enfileirar(f, num, nm); system("clear"); cout << "Aviao [" << num << "] [" << nm << "] adicionado com sucesso." << endl; sleep(2); menuAeroporto(f); } void listarAvioesFilaDecolagem(Fila *f){ Item *i; if(!estahVazia(f)){ system("clear"); i = f->primeiro; while(i != f->ultimo){ cout << "[" << i->numero << "] [" << i->nome << "] | "; i=i->prox; } cout << "[" << i->numero << "] [" << i->nome << "]" << endl; }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } void caracteristicasProximoDecolar(Fila *f){ if(!estahVazia(f)){ system("clear"); cout << "O proximo a decolar sera:" << endl; mostrarCaracteristicas(f); }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } int menuAeroporto(Fila *f){ int opt=1; while(opt != 6){ system("clear"); if(opt < 1 || opt > 6){ cout << "Opcao errada." << endl; cout << "Escolha entre 1 e 6." << endl; } opt = 1; cout << "1 - Quantos Avioes estao aguardando." << endl; cout << "2 - Autorizar proxima decolagem." << endl; cout << "3 - Adidionar aviao a espera." << endl; cout << "4 - Ver avioes aguardando." << endl; cout << "5 - Detalhes do proximo a decolar." << endl; cout << "6 - Sair." << endl; cout << endl; cout << "Opcao: "; cin >> opt; switch(opt){ case 1: quantosAvioesAguardam(f); break; case 2: autorizarDecolagem(f); break; case 3: adicionarAviaoFilaDecolagem(f); break; case 4: listarAvioesFilaDecolagem(f); break; case 5: mostrarCaracteristicas(f); break; case 6: cout << "Fechando aplicacao, aguarde..." << endl; sleep(3); return 0; break; default: menuAeroporto(f); break; } } return 0; }exFila.cpp #include "aeroporto.cpp" int main(){ Fila *aeroporto = criaFila(); menuAeroporto(aeroporto); return 0; }
  2. Não sei se já resolveu, mas eu olhei aqui e tem só 2 detalhes no código que impedem de executar do jeito como você precisa. 1 - no For com o i ao invés de utilizar o j que você está trabalhando no for anterior você usa o n que é um valor que você não está mechendo o valor, por isso ele imprime o mesmo numero. 2 - no if em seguida o mesmo esquema você está usando o n e não o j. int main(void) { int i, total, n=1, cont=0, j; printf("\n\nEscreva um numero inteiro positivo: "); scanf("%d", &n); for(j=n; j!=0; j--) { total=0; cont=0; for(i=1; i<=j; i++) { if(j%i==0) { cont++; printf("D%d=%d ",cont ,i); total+=i; } } if(total>0) printf("\nA soma dos divisores de %d eh: %d\n\n",j ,total); } return 0; }Espero que tenha sido útil.
  3. corrigi aqui mas ainda dá problema. Antes de inserir algum dado é tranquilo, depois que algum dado é inserido o problema se inicia apenas a opção 1 traz informação, as outras trazem esse erro.
  4. Entendi... vou alterar e testar, obrigado! pode ser exatamenete isso =D
  5. Bom dia/Boa tarde/Boa noite, Estou com o seguinte exercício utilizando lista: Escreva um programa que simule o controle de uma pista de decolagem de aviões em um aeroporto. Neste programa, o usuário deve ser capaz de realizar as seguintes tarefas: a) Listar o número de aviões aguardando na fila de decolagem; b) Autorizar a decolagem do primeiro avião da fila; c) Adicionar um avião à fila de espera; d) Listar todos os aviões na fila de espera; e) Listar as características do primeiro avião da fila. Considere que os aviões possuem um nome e um número inteiro como identificador. Adicione outras características conforme achar necessário. Para este exercício eu resolvi fazer utilizando struct e fazer um menu que interagisse com o usuário, para isso e facilitar na hora de fazer escolhi fazer alguns arquivos separados. Fila.h typedef struct item { int numero; char nome[30]; struct item *prox; } Item; typedef struct fila { Item *primeiro; Item *ultimo; int qtdItens; } Fila; Fila *criaFila(); void liberaFila(Fila *f); int estahVazia(Fila); void enfileirar(Fila *f, int n, char nm[]); void desenfileirar(Fila *f, char *nomeDesenfileirado, int *nDesenfileirado); void mostrarFila(Fila *f); int quantidadeFila(Fila *f); void mostrarCaracteristicas(Fila *f);Fila.cpp #include <malloc.h> #include <iostream> #include <string.h> #include "Fila.h" using namespace std; #define MSG_FILAVAZIA "\nA Fila está vazia\n" Fila *criaFila(){ Fila* f = (Fila*) malloc(sizeof(Fila)); f->primeiro = NULL; f->ultimo = NULL; f->qtdItens = 0; return f; } void liberaFila(Fila *f){ free(f); } int estahVazia(Fila *f){ return f->qtdItens == 0; } void enfileirar(Fila *f, int i, char n[]){ Item *novoItem = (Item*) malloc(sizeof(Item)); novoItem->numero = i; strcpy(novoItem->nome, n); if (estahVazia(f)){ novoItem->prox = NULL; }else{ novoItem->prox = f->ultimo; } f->ultimo = novoItem; f->qtdItens++; } int desenfileirar(Fila *f, char *nomeDesenfileirado[], int *nDesenfileirado){ Item *i; if(!estahVazia(f)){ i = f->primeiro; f->primeiro = i->prox; strcpy(*nomeDesenfileirado, i->nome); *nDesenfileirado = i->numero; free(i); }else{ fprintf(stderr, MSG_FILAVAZIA); return 0; } f->qtdItens--; return 1; } void mostrarFila(Fila *f){ Item *i = f->primeiro; while(i != f->ultimo){ cout << " [Numero: " << i->numero << ", Nome: " << i->nome << "] |"; i = i->prox; } cout << " [Numero: " << i->numero << ", Nome: " << i->nome << "]" << endl; } int quantidadeFila(Fila *f){ return f->qtdItens; } void mostrarCaracteristicas(Fila *f){ cout << " [Numero: " << f->primeiro->numero << ", Nome: " << f->primeiro->nome << "]" << endl; } aeroporto.h #include "Fila.cpp" /* Escreva um programa que simule o controle de uma pista de decolagem de aviões em um aeroporto. Neste programa, o usuário deve ser capaz de realizar as seguintes tarefas: */ // a) Listar o número de aviões aguardando na fila de decolagem; void quantosAvioesAguardam(Fila *f); // b) Autorizar a decolagem do primeiro avião da fila; void autorizarDecolagem(Fila *f); // c) Adicionar um avião à fila de espera; void adicionarAviaoFilaDecolagem(Fila *f); // d) Listar todos os aviões na fila de espera; void listarAvioesFilaDecolagem(Fila *f); // e) Listar as características do primeiro avião da fila; void caracteristicasProximoDecolar(Fila *f); // Menu interativo para acesso às funções. int menuAeroporto(Fila *f); /* Considere que os aviões possuem um nome e um número inteiro como identificador. Adicione outras características conforme achar necessário. */ aeroporto.cpp #include <iostream> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "aeroporto.h" using namespace std; void quantosAvioesAguardam(Fila *f){ system("clear"); if(!estahVazia(f)){ cout << f->qtdItens << " Avioes estao aguardando para decolar." << endl; }else{ cout << "Nao ha avioes aguardando para decolar." << endl; } cout << endl; sleep(2); menuAeroporto(f); } void autorizarDecolagem(Fila *f){ Item *i; char *nm[30]; int *num; system("clear"); if (!estahVazia(f)){ desenfileirar(f, nm, num); cout << "Aviao [Numero: " << num << "] [Nome: " << nm << "] | Autorizado a decolar." << endl; }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } void adicionarAviaoFilaDecolagem(Fila *f){ char nm[30]; int num=0; system("clear"); cout << "Digite os dados do aviao a ser inserido na Fila de Decolagem" << endl; cout << "Numero: "; cin >> num; cout << endl; cout << "Nome: "; cin >> nm; enfileirar(f, num, nm); system("clear"); cout << "Aviao [" << num << "] [" << nm << "] adicionado com sucesso." << endl; sleep(2); menuAeroporto(f); } void listarAvioesFilaDecolagem(Fila *f){ Item *i; if(!estahVazia(f)){ system("clear"); i = f->primeiro; while(i != f->ultimo){ cout << "[" << i->numero << "] [" << i->nome << "] | "; i=i->prox; } cout << "[" << i->numero << "] [" << i->nome << "]" << endl; }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } void caracteristicasProximoDecolar(Fila *f){ if(!estahVazia(f)){ system("clear"); cout << "O proximo a decolar sera:" << endl; mostrarCaracteristicas(f); }else{ cout << "Nao existem avioes para decolar." << endl; } sleep(2); menuAeroporto(f); } int menuAeroporto(Fila *f){ int opt=1; while(opt != 6){ opt = 1; system("clear"); if(opt < 1 || opt > 6){ cout << "Opcao errada." << endl; cout << "Escolha entre 1 e 6." << endl; } cout << "1 - Quantos Avioes estao aguardando." << endl; cout << "2 - Autorizar proxima decolagem." << endl; cout << "3 - Adidionar aviao a espera." << endl; cout << "4 - Ver avioes aguardando." << endl; cout << "5 - Detalhes do proximo a decolar." << endl; cout << "6 - Sair." << endl; cout << endl; cout << "Opcao: "; cin >> opt; switch(opt){ case 1: quantosAvioesAguardam(f); case 2: autorizarDecolagem(f); case 3: adicionarAviaoFilaDecolagem(f); case 4: listarAvioesFilaDecolagem(f); case 5: mostrarCaracteristicas(f); case 6: cout << "Fechando aplicacao, aguarde..." << endl; sleep(3); return 0; default: menuAeroporto(f); } } return 0; } exFila.cpp #include "aeroporto.cpp" int main(){ Fila *aeroporto = criaFila(); menuAeroporto(aeroporto); return 0; } Bom... estes são os arquivos, o programa funciona na maioria do tempo, o menu vai e volta tranquilo. O problema é que em alguns momentos ele dá um erro de segmentação que não estou conseguindo resolver, acredito ser relativo a algum ponteiro. E acredito também que o menu pode ser melhorado, se alguém puder dar uma luz, serei muito grato.
×
×
  • Criar Novo...