Ir ao conteúdo
  • Cadastre-se

argolo.david

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Reputação

0
  1. Fiquei pegado nessa parte, meu retorno é sempre o primeiro PID: //FUNÇÃO DE RETORNO PARA MOSTRAR A PILHA void mostrar_pilha() { int i; printf("\nSua pilha: \n\n"); for (i = 0; i < pilha.topo; i++) { printf("PID : %d - nome :%s\n\n",pilha.dados[pilha.ini].PID,pilha.dados[pilha.ini].nome ); } }
  2. Alguem me da uma dica ai no encerrar programa.
  3. @Flávio Pedroza irmão, sua dica foi top. Agora so falta a função sair. Coloquei assim: // FUNÇÃO PARA SAIR DA PILHA void pilha_sair() { int i; if pilha.dados[pilha.topo-1] = 0; pilha.topo--; } (...) switch (op) (...) case 4 : pilha_sair (); //metodo sair
  4. @Flávio Pedroza Flavio, obrigado pela dica. Ja deu uma melhorada, mas inda não consigo utilizar. A pilha esta vindo cheia, então nao consigo usar o programa. se puder me ajudar, agradeço. Segue abaixo o retorno da tela. #include <stdlib.h> #include <stdio.h> #include <locale.h> #include <string.h> #include <iostream> #include <iomanip> // DEFININDO O TAMANHO #define tamanho 5 //DECLARANDO A ESTRUTURA typedef struct tipo_proc { char nome[10]; int PID; } tipo_proc; typedef struct tipo_pilha { tipo_proc dados [tamanho]; int topo; int ini; } tipo_pilha; // VARIÁVEIS GLOBAIS tipo_pilha pilha; int op; //FUNÇÃO DE RETORNO PARA MOSTRAR A PILHA void mostrar_pilha() { int i; printf("\nSua pilha: \n\n"); for (i = 0; i < tamanho; i++) { printf("%d \n", pilha.dados); } } //FUNÇÃO PARA EMPILHAR OS ELEMENTOS void empilhando(tipo_proc elemento) { if (pilha.topo == tamanho) { printf("A pilha está cheia, impossivel empilhar!"); system("pause"); } else { pilha.dados[pilha.topo] = elemento; pilha.topo++; } } //FUNÇÃO PARA DESEMPILHAR OS ELEMENTOS tipo_proc desempilhando() { tipo_proc elemento; if (pilha.ini == pilha.topo) { printf("A pilha está vazia, impossivel desempilhar!\n"); system("pause"); } else { elemento = pilha.dados[pilha.topo]; for(int i=0; i<tamanho; i++) pilha.dados[pilha.topo]=elemento; pilha.topo--; return elemento; } } // FUNÇÃO PARA ESVAZIAR A PILHA void esvaziar_pilha() { int i; if (pilha.topo == pilha.ini) { printf("A pilha esta vazia, impossivel esvaziar!\n\n"); system("pause"); } else { for (i = 0; i < tamanho; i++) { pilha.dados[pilha.topo]; pilha.topo--; } } } int main() { setlocale(LC_ALL, "Portuguese"); pilha.topo = 0; pilha.ini = 0; tipo_proc processo; processo.PID = 0; mostrar_pilha(); op = 1; //acrescentar while(op != 0){ // inicializa antes do while com valor 1 printf("\n ---------------------* Pilha *----------------------- \n"); mostrar_pilha(); //metodo que imprime a pilha printf("1 - Adicionar elemento na pilha.\n"); printf("2 - Excluir elemento da pilha.\n"); printf("3 - Esvaziar a pilha totalmente.\n"); printf("0 - Encerrar o programa.\n"); printf("S. sair \n"); scanf ("%d", &op); //acrescentar switch (op) { case 1 : printf("Digite o elemento a ser empilhado: \n"); empilhando(processo); //metodo que empilha; break; case 2 : desempilhando(); //metodo que desempilha break; case 3 : esvaziar_pilha(); //metodo que esvazia break; } } printf("\nInsira o nome do processo:\n"); scanf("%s",&processo.nome); fflush(stdin); empilhando(processo); printf("\n dados da pilha \n"); printf("PID : %d - nome :%s\n\n",pilha.dados[pilha.ini].PID,pilha.dados[pilha.ini].nome ); }
  5. @Everton Borchardt Valeu pela ajuda. Meu codigo ta quase funcionando, mas ele ta abrindo, direto, preenchendo as linhas e apenas me dando a opção de selecionar qualquer tecla para fechar. Não consigo vizualizar onde esta o erro. Poderia me dar um toque? #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> #include <iostream> #include <iomanip> // DEFININDO O TAMANHO #define tamanho 5 //DECLARANDO A ESTRUTURA typedef struct tipo_proc { char nome[10]; int PID; } tipo_proc; typedef struct tipo_pilha { tipo_proc dados [tamanho]; int topo; int ini; } tipo_pilha; // VARIÁVEIS GLOBAIS tipo_pilha pilha; int op; //FUNÇÃO DE RETORNO PARA MOSTRAR A PILHA void mostrar_pilha() { int i; printf("\nSua pilha: \n\n"); for (i = 0; i < tamanho; i++) { printf("%d \n", pilha.dados); } } //FUNÇÃO PARA EMPILHAR OS ELEMENTOS void empilhando(tipo_proc elemento) { if (pilha.topo == tamanho) { printf("A pilha está cheia, impossivel empilhar!"); system("pause"); } else { pilha.dados[pilha.topo] = elemento; pilha.topo++; } } //FUNÇÃO PARA DESEMPILHAR OS ELEMENTOS tipo_proc desempilhando() { tipo_proc elemento; if (pilha.ini == pilha.topo) { printf("A pilha está vazia, impossivel desempilhar!\n"); system("pause"); } else { elemento = pilha.dados[pilha.topo]; for(int i=0; i<tamanho; i++) pilha.dados[pilha.topo]=elemento; pilha.topo--; return elemento; } } // FUNÇÃO PARA ESVAZIAR A PILHA void esvaziar_pilha() { int i; if (pilha.topo == pilha.ini) { printf("A pilha esta vazia, impossivel esvaziar!\n\n"); system("pause"); } else { for (i = 0; i < tamanho; i++) { pilha.dados[pilha.topo]; pilha.topo--; } } } int main() { setlocale(LC_ALL, "Portuguese"); pilha.topo = 0; pilha.ini = 0; tipo_proc processo; processo.PID = 0; mostrar_pilha(); while(op != 0){ // inicializa antes do while com valor 1 printf("\n ---------------------* Pilha *----------------------- \n"); mostrar_pilha(); //metodo que imprime a pilha printf("1 - Adicionar elemento na pilha.\n"); printf("2 - Excluir elemento da pilha.\n"); printf("3 - Esvaziar a pilha totalmente.\n"); printf("0 - Encerrar o programa.\n"); printf("S. sair \n"); switch (op) { case 1 : printf("Digite o elemento a ser empilhado: \n"); empilhando(processo); //metodo que empilha; break; case 2 : desempilhando(); //metodo que desempilha break; case 3 : esvaziar_pilha(); //metodo que esvazia break; } } /*printf("\nInsira o nome do processo:\n"); scanf("%s",&processo.nome); fflush(stdin); */ empilhando(processo); printf("\n dados da pilha \n"); printf("PID : %d - nome :%s\n\n",pilha.dados[pilha.ini].PID,pilha.dados[pilha.ini].nome ); }
  6. Ola senhores, boa madrugada. Estou tentando finalizar, mas ta osso essa PILHA. To tentando linkar o meu menu, mas nao consigo de jeito nenhum. Alguem poderia me ajudar com m exemplo? Obrigado.

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