Ir ao conteúdo
  • Cadastre-se

Tony Soprano

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

Reputação

3
  1. Olá pessoal, algúem me indica um notebook bom para estudar e programar, e se puder rodar uns joguinhos que não sejam pesados também...
  2. @arfneto Realmente assim parece estar muito mais fácil, apesar de eu já estar acostumado a programar daquele jeito, quero aderir a sua forma. Se você puder me indicar materiais como livros, PDFs, vídeos, etc, para ajudar no meu aprendizado, agradeço mais ainda.
  3. @arfneto sim é C++ mas meu professor nunca comentou nada sobre esses Typedefs loucos, talvez seja por isso que eu estou com muita dificuldade, acho que vou reprovar nessa matéria porque meu aprendizado não está bom
  4. @arfneto essas TAD´s foi meu professor que criou, e n tô usando biblioteca porque assim é mais fácil de mudar alguma coisa se eu quiser
  5. Olá galera, estou fazendo um trabalho da faculdade de fazer uma fila de alunos em C++. Mas o problema está na hora de incluir um novo aluno na fila, só é validado o último que entrou, por exemplo: Cadastro um aluno A, logo depois cadastro um aluno B, o aluno B substitui o A e só fica ele na fila... aqui está o código: #include <iostream> #include <windows.h> #include <cstdlib> #define MAXTAM 30 typedef struct Aluno { int RA; char nome[12]; }Aluno; typedef struct { int inicio, fim; Aluno Fila[MAXTAM]; int tamanho; }TFila; // Funções: void TFila_Inicializa (TFila *f); bool TFila_Vazia (TFila *f); bool TFila_Cheia (TFila *f); void TFila_Enfileira(TFila *f, Aluno x); Aluno TFila_Desenfileira(TFila *f); void TFila_Imprime (TFila *f); void IncluiAluno (TFila *f, Aluno a); void ImprimeFila(TFila *f); void AtendeAluno (TFila *f); using namespace std; int main() { UINT CPAGE_UTF8 = 65001; UINT CPAGE_DEFAULT = GetConsoleOutputCP(); SetConsoleOutputCP(CPAGE_UTF8); TFila f; Aluno a; int opcao_menu; do { cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � FILA DE ALUNOS �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � 1 - INCLUIR NOVO ALUNO �"; cout<<" \n � �"; cout<<" \n � 2 - ATENDER ALUNO �"; cout<<" \n � �"; cout<<" \n � 3 - EXIBIR FILA �"; cout<<" \n � �"; cout<<" \n � 4 - SAIR �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������\n\n"; cout << " \n Escolha uma opção: "; cin >> opcao_menu; system ("cls"); switch (opcao_menu) { case 1: IncluiAluno(&f, a); break; case 2: AtendeAluno(&f); break; case 3: ImprimeFila(&f); break; case 4: cout << "Volte sempre!" << endl; break; } } while (opcao_menu != 4); cout << endl << endl; system("pause"); return 0; } void TFila_Inicializa(TFila *f) { f->inicio = 0; f->fim = -1; f->tamanho = 0; } bool TFila_Vazia(TFila *f) { if (f->inicio > f->fim) { // 0 é maior que -1 no começo return true; // 1 } else { return false; // 0 fila não vazia } } bool TFila_Cheia(TFila *f) { if (f->fim == MAXTAM-1) { return true; // fila cheia } else { return false; // 0 fila não cheia } } void TFila_Enfileira(TFila *f, Aluno x) { if (TFila_Cheia(f)) { cout << "Fila Cheia.\n"; } else { f->fim++; f->Fila[f->fim] = x; f->tamanho++; } } Aluno TFila_Desenfileira(TFila *f) { Aluno aux; if (TFila_Vazia(f)) { cout << "Fila vazia.\n"; } else { aux = f->Fila[f->inicio]; f->inicio++; f->tamanho--; return aux; } Aluno a; return a; } void IncluiAluno (TFila *f, Aluno a) { cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � RECEPÇÃO �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������"; cout << "\n\n\tNome: "; cin.ignore(); gets(a.nome); cout << "\tRA: "; cin >> a.RA; TFila_Inicializa(f); TFila_Enfileira(f, a); cout << "\n\n\tO aluno entrou na fila e aguarda ser atendido." << endl; system("pause"); system("cls"); } void ImprimeFila(TFila *f) { if (TFila_Vazia(f)) { cout << "\nFila vazia!" << endl; } else { cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � FILA DE ALUNOS �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������"; for (int i = f->inicio; i <= f->fim; i++) { cout << "\n\n\tNome: " << f->Fila[i].nome << endl; cout << "\tRA: " << f->Fila[i].RA; } cout << endl; cout << "\n\tTamanho da fila: " << f->tamanho << endl; } system("pause"); system("cls"); } void AtendeAluno (TFila *f) { Aluno aux; if (TFila_Vazia(f)) { cout << "\nFila vazia!" << endl; } else { aux = TFila_Desenfileira(f); cout << "O aluno foi atendido." << endl; system("pause"); system("cls"); } }
  6. Considere a seguinte estrutura: #define MAXTAM 20 typedef struct { int idade; bool gestante; } Cliente; typedef struct { Cliente Fila[MAXTAM]; int inicio, fim; int tamanho; } TFila; Elabore um programa que divida uma determinada Fila de n Clientes (n ≤ MAXTAM) em duas filas. Considerando a estrutura da fila inicial e os dados atribuídos (manualmente ou por sorteio), mova os(as) clientes gestantes e maiores de 60 anos para a nova fila chamada Fila Prioritaria. Mostre as duas filas. Como faço esse exercício pessoal? Tenho dificuldades em estruturas de dados, se puderem ajudar com algo, ficarei muito grato!
  7. Considere a seguinte estrutura: #define MAXTAM 20 typedef struct { int idade; bool gestante; } Cliente; typedef struct { Cliente Fila[MAXTAM]; int inicio, fim; int tamanho; } TFila; Elabore um programa que divida uma determinada Fila de n Clientes (n ≤ MAXTAM) em duas filas. Considerando a estrutura da fila inicial e os dados atribuídos (manualmente ou por sorteio), mova os(as) clientes gestantes e maiores de 60 anos para a nova fila chamada Fila Prioritaria. Mostre as duas filas. Pessoal não estou sabendo como fazer isso, se alguém puder me explicar melhor... tenho aqui as TADS necessárias prontas: void TFila_Inicializa(TFila *f) { f->inicio = 0; f->fim = -1; f->tamanho = 0; } bool TFila_Vazia(TFila *f) { if (f->inicio > f->fim) { // 0 é maior que -1 no começo return true; // 1 } else { return false; // 0 fila não vazia } } bool TFila_Cheia(TFila *f) { if (f->fim == MAXTAM-1) { return true; // fila cheia } else { return false; // 0 fila não cheia } } void TFila_Enfileira(TFila *f, int x) { if (TFila_Cheia(f)) { cout << "Fila Cheia.\n"; } else { f->fim++; f->Fila[f->fim] = x; f->tamanho++; } } int TFila_Desenfileira(TFila *f) { int aux; if (TFila_Vazia(f)) { cout << "Fila vazia.\n"; } else { aux = f->Fila[f->inicio]; f->inicio++; f->tamanho--; return aux; } } void TFila_Imprime(TFila *f) { if (TFila_Vazia(f)) { cout << "Fila vazia.\n"; } else { cout << "Fila: "; for (int i = f->inicio; i <= f->fim; i++) { cout << f->Fila[i] << " "; } cout << endl; } }
  8. Era isso mesmo, não tinha percebido kkk. Valeu cara!! @Danis Barsant obrigado pela força
  9. Dada uma sequência contendo N números reais em uma pilha, escreva uma função que imprima a ordem reversa dessa pilha. Pessoal, ao tentar reverter a pilha, os números estão saindo como inteiros e não como reais, aqui está o meu código em C++: #include <iostream> #include <windows.h> using namespace std; /* Dada uma sequência contendo N números reais em uma pilha, escreva uma função que imprima a ordem reversa dessa pilha. */ #define MAXTAM 3 typedef struct { float item[MAXTAM]; // [0, 1, 2, 3...] int topo; } TPilha; void TPilha_Inicializa(TPilha *pilha); int TPilha_Vazia (TPilha *pilha); int TPilha_Cheia (TPilha *pilha); void TPilha_Empilha (TPilha *pilha, float x); int TPilha_Desempilha (TPilha *pilha); int TPilha_Imprime(TPilha *pilha); void Reverte (TPilha *pilha, TPilha *pilhaR, float aux); int main() { UINT CPAGE_UTF8 = 65001; UINT CPAGE_DEFAULT = GetConsoleOutputCP(); SetConsoleOutputCP(CPAGE_UTF8); TPilha pilha, pilhaR; float aux; TPilha_Inicializa(&pilha); TPilha_Empilha(&pilha, 2.8); TPilha_Empilha(&pilha, 4.4); TPilha_Empilha(&pilha, 11.5); cout << "Pilha: "; TPilha_Imprime(&pilha); cout << "\n\nRevertendo pilha..." << endl; Sleep(1500); Reverte(&pilha, &pilhaR, aux); // Reverte os elementos da pilha cout << "\n\nPilha reversa: "; TPilha_Imprime(&pilhaR); cout << endl << endl; system("pause"); return 0; } void TPilha_Inicializa(TPilha *pilha) { pilha->topo = -1; // Indica que a pilha está inicializada e vazia } int TPilha_Vazia (TPilha *pilha) { if (pilha->topo == -1) { return 1; // Verdadeiro, a pilha está vazia } else { return 0; // Falso, a pilha contém elementos } } int TPilha_Cheia (TPilha *pilha) { if (pilha->topo == MAXTAM-1) { return 1; // Verdadeiro, pilha cheia } else { return 0; // Falso, pilha não está cheia } } void TPilha_Empilha (TPilha *pilha, float x) { if (TPilha_Cheia(pilha) == 1) { cout << endl << "Pilha cheia!" << endl; } else { pilha->topo++; pilha->item[pilha->topo] = x; } } int TPilha_Desempilha (TPilha *pilha) { float aux; if (TPilha_Vazia(pilha) == 1) { cout << "\nImpossível desempilhar. Pilha vazia" << endl; } else { aux = pilha->item[pilha->topo]; pilha->topo--; return aux; } } int TPilha_Imprime(TPilha *pilha) { if (TPilha_Vazia(pilha) == 1) { cout << "\nPilha vazia" << endl; return 0; } else { for (int i=pilha->topo; i>=0; i--) { if (i == pilha->topo) { cout << endl << "Topo-> " << pilha->item[i] << endl; } else { cout << " \t" << pilha->item[i] << endl; } } } } void Reverte (TPilha *pilha, TPilha *pilhaR, float aux) { // Desempilha os números da pilha 1 e empilha na pilha 2, assim deixando-a reversa TPilha_Inicializa(pilhaR); aux = TPilha_Desempilha(pilha); TPilha_Empilha(pilhaR, aux); aux = TPilha_Desempilha(pilha); TPilha_Empilha(pilhaR, aux); aux = TPilha_Desempilha(pilha); TPilha_Empilha(pilhaR, aux); } Alguém consegue identificar o problema?
  10. Faça em C/C++, um sistema para o departamento pessoal de uma empresa. O sistema deve possuir um menu principal através do qual o usuário pode escolher a opção que deseja. As operações (opções do menu principal) são: 1.) Inclusão de um novo funcionário: Neste caso, deve-se entrar com o código, o nome, o endereço e o número de dependentes do funcionário. Em seguida, deve-se entrar com a relação de projetos nos quais o funcionário trabalha (código, nome e número de horas trabalhadas por semana em um projeto). Cada funcionário pode trabalhar em, no máximo, 5 projetos diferentes. Não existem funcionários com o mesmo código. 2.) Inclusão de novos projetos para um funcionário: Neste caso, deve-se entrar com o código do funcionário para o qual se deseja acrescentar novos projetos. Então, o sistema deve apresentar os dados do funcionário e a relação de projeto nos quais ele já trabalha. Em seguida, deve-se entrar com os novos projetos a serem incluídos (código, nome e número de horas trabalhadas por semana no projeto). Se o funcionário não existe, deve ser apresentado uma mensagem de erro. Pessoal estou simplesmente perdido em listas encadeadas, tô fazendo facul e o EAD tá me matando. Enfim, qualquer ajuda tô aceitando, se puderem me mostrar como fazer essas duas ficarei muito grato. Por enquanto estou com essa estrutura básica(C++): #include <iostream> #include <windows.h> #define MAXTAM 5 #define INICIO 1 typedef int TChave; typedef struct TCelula_str *TApontador; typedef struct { TChave codigo; // codigo do projeto char nome[30]; // nome do projeto int horas; // numero de horas trabalhas no projeto } TProjeto; typedef struct { TProjeto item [MAXTAM]; int primeiro; int ultimo; } TListaSequencial; typedef struct { TChave numero; // codigo do funcionario char endereco [40]; // endereco do funcionario int dependentes; // numero de dependentes do funcionario TListaSequencial projetos; // Lista Sequencial que guarda os projetos nos quais o funcionario trabalha } TFuncionario; typedef struct TCelula_str { TFuncionario item; TApontador prox; } TCelula; typedef struct { TApontador primeiro ; TApontador ultimo; } TListaEncadeada; using namespace std; // Funções(parâmetros) void menu(); void CriaListaVazia (TListaEncadeada * lista); int main() { UINT CPAGE_UTF8 = 65001; UINT CPAGE_DEFAULT = GetConsoleOutputCP(); SetConsoleOutputCP(CPAGE_UTF8); TListaEncadeada lista; CriaListaVazia (&lista); int op; do { menu(); cout << "Escolha a opção: "; cin >> op; system("cls"); switch(op) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: cout << "Volte sempre!" << endl; system("pause"); break; } } while(op != 7); return 0; } void menu() { system("color 0B"); cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � DEPARTAMENTO PESSOAL �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������"; cout<<" \n � �"; cout<<" \n � 1 - INCLUIR NOVO FUNCIONÁRIO �"; cout<<" \n � �"; cout<<" \n � 2 - INCLUIR NOVO PROJETO �"; cout<<" \n � �"; cout<<" \n � 3 - EXCLUIR PROJETO �"; cout<<" \n � �"; cout<<" \n � 4 - EXCLUIR FUNCIONÁRIO �"; cout<<" \n � �"; cout<<" \n � 5 - CONSULTAR FUNCIONÁRIO �"; cout<<" \n � �"; cout<<" \n � 6 - IMPRIMIR CONTRA-CHEQUE �"; cout<<" \n � �"; cout<<" \n � 7 - SAIR �"; cout<<" \n � �"; cout<<" \n ����������������������������������������������������������������\n\n"; } void CriaListaVazia (TListaEncadeada * lista) { lista->primeiro = new TCelula; lista->ultimo = lista->primeiro; lista->primeiro->prox = NULL; } int VerificaListaVazia (TListaEncadeada lista) { return (lista.primeiro == lista.ultimo); }
  11. Faça em C/C++, um sistema para o departamento pessoal de uma empresa. O sistema deve possuir um menu principal através do qual o usuário pode escolher a opção que deseja. As operações (opções do menu principal) são: 1.) Inclusão de um novo funcionário: Neste caso, deve-se entrar com o código, o nome, o endereço e o número de dependentes do funcionário. Em seguida, deve-se entrar com a relação de projetos nos quais o funcionário trabalha (código, nome e número de horas trabalhadas por semana em um projeto). Cada funcionário pode trabalhar em, no máximo, 5 projetos diferentes. Não existem funcionários com o mesmo código. 2.) Inclusão de novos projetos para um funcionário: Neste caso, deve-se entrar com o código do funcionário para o qual se deseja acrescentar novos projetos. Então, o sistema deve apresentar os dados do funcionário e a relação de projeto nos quais ele já trabalha. Em seguida, deve-se entrar com os novos projetos a serem incluídos (código, nome e número de horas trabalhadas por semana no projeto). Se o funcionário não existe, deve ser apresentado uma mensagem de erro. 3.) Exclusão de projetos de um funcionário: Neste caso, deve-se entrar com o código do funcionário cujos projetos serão excluídos. Então, o sistema deve apresentar os dados do funcionário e a relação de projetos nos quais ele trabalha. Em seguida, deve-se selecionar os projetos a serem excluídos. Se o funcionário não existe, deve ser apresentada uma mensagem de erro. 4.) Exclusão de funcionários que não trabalham em nenhum projeto: Neste caso, o sistema deve excluir UM ou TODOS todos os funcionários que não trabalham em nenhum projeto. Funcionários que trabalham em projetos, não podem ser excluídos! 5.) Consulta de um funcionário: Neste caso, deve-se entrar com o código do funcionário que se deseja consultar. Então, o sistema deve apresentar os dados do funcionário em questão (nome, endereço e número de dependentes) e a relação dos projetos nos quais ele trabalha (código, nome e número de horas semanais). Se o funcionário não existe, deve ser apresentada uma mensagem de erro. 6.) Imprimir contra-cheque: Neste caso, o sistema deve imprimir o contra-cheque de todos os funcionários da empresa (código, nome, total de horas semanais, salário bruto , desconto de INSS , desconto de IR e salário líquido. Desculpem pedir esse monte de coisa galera mas estou simplesmente perdido em listas encadeadas, tô fazendo facul de sistemas e o EAD tá me matando . Enfim, qualquer ajuda tô aceitando, se puderem me mostrar como fazer pelo menos a 2, 3 e 4 que parecem ser as mais difíceis ficarei muito grato. Por enquanto estou com essa estrutura básica: # define MAXTAM 5 # define INICIO 1 typedef TChave int; typedef struct TCelula_str * TApontador ; typedef struct { TChave codigo; // codigo do projeto char nome [30]; // nome do projeto int horas ; // numero de horas trabalhas no projeto } TProjeto ; typedef struct { TProjeto item [ MAXTAM ]; int primeiro ; int ultimo ; } TListaSequencial ; typedef struct { tchave numero ; // codigo do funcionario char endereco [40]; // endereco do funcionario int dependentes ; // numero de dependentes do funcionario TListaSequencial projetos ; // Lista Sequencial que guarda os projetos nos quais o funcionario trabalha } TFuncionario ; typedef struct { TFuncionario item ; TApontador prox ; } TCelula ; typedef struct { TApontador primeiro ; TApontador ultimo } TListaEncadeada ;

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...