Ir ao conteúdo
  • Cadastre-se

kode v

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Tudo que kode v postou

  1. @amigo da Uni no meu também deu erro
  2. @amigo da Uni o PID acho que ta de boa ta gerando uma sequencia, agora o empilha ta deixando adicionar mais de 5 processo.
  3. isso já resolve o problema , o pior e o PID que tem que gera automático , se tiver algum ideia ? #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 DE RETORNO PARA RETORNAR O MENU void mostrar_menu() { printf("\n\n1 - Adicionar elemento na pilha.\n" "2 - Excluir elemento da pilha.\n" "3 - Esvaziar a pilha totalmente.\n" "0 - Encerrar o programa.\n"); } //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; tipo_proc backup; op = 1; while(op != 0){ printf("\n ---------------------* Pilha *----------------------- \n"); 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"); printf("\nEscolha sua opcao: "); scanf("%d", &op); switch (op) { case 1 : printf("\nInsira o nome do processo:\n"); scanf("%s",&processo.nome); empilhando(processo); //metodo que empilha; printf("\nDado da pilha:\n"); printf("PID: %d - Nome: %s\n",pilha.dados[pilha.ini].PID,pilha.dados[pilha.ini].nome ); break; case 2 : backup = desempilhando(); printf("\nConteudo desempilhado:\n"); printf("PID: %d - Nome: %s\n",backup.PID,backup.nome); desempilhando(); 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 ); }
  4. falta o menu agora #include <stdio.h> #include <stdlib.h> #include <locale.h> // 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!"); 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!\n"); system("pause"); } else { elemento = pilha.dados[pilha.topo]; for(int i=0; i<tamanho; i++) pilha.dados = pilha.dados[i+1]; pilha.topo--; return elemento; } } // FUNÇÃO PARA ESVAZIAR A PILHA void esvaziar_pilha() { int i; if (pilha.topo == pilha.ini) { printf("A pilha já está vazia!\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; op = 1; 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 ); } adicionado 1 minuto depois falta a biblioteca também #include <string.h>
  5. O seu programa precisa mostrar "O menu sempre deve imprimir o conteúdo da pilha (da base em direção ao topo);" são essas informações Os dados a serem armazenados na pilha devem simular processos, sendo que cada elemento a empilhar/desempilhar deve possuir: - O PID do cada processo (Process ID, é um código gerado automaticamente pelo sistema – cada processo tem seu próprio PID); - O nome do programa/comando que gerou o processo. O programa deve ter um menu principal em forma de laço de repetição que atenda aos seguintes requisitos: - O menu sempre deve imprimir o conteúdo da pilha (da base em direção ao topo); - Após a impressão do conteúdo da pilha, o usuário deve ser informado de que pode realizar as seguintes operações: 1) Inserir um elemento na pilha; 2) Remover um elemento da pilha; 3) Esvaziar a pilha; 0) Encerrar o programa. A operação “Inserir um elemento na pilha” deve pedir para que o usuário informe o nome do programa ou comando que será empilhado. O programa deve associar um PID a esse nome automaticamente, e empilhar ambos os dados: PID + nome. Caso a pilha esteja cheia, o usuário deve receber uma mensagem informando: “Pilha cheia, impossível empilhar mais elementos.”. A operação “Remover um elemento da pilha” tentar remover um elemento da pilha. Caso haja elemento para ser removido, o PID e o nome do elemento desempilhado devem ser impressos na tela. Caso não seja possível desempilhar elementos, o programa deve imprimir a mensagem “Pilha vazia, impossível desempilhar elementos.”, na tela. A operação “Esvaziar a pilha” deve remover todos os elementos da pilha. A operação “Encerrar programa” deve finalizar o processo.
  6. Pode usar esse e mudar numero para texto , já esta praticamente com precisa posta ai se conseguir mudar #include <stdio.h> #include <stdlib.h> #include <locale.h> // DEFININDO O TAMANHO #define tamanho 5 //DECLARANDO A ESTRUTURA typedef struct tipo_pilha { int dados[tamanho]; int topo; int ini; } pilha_tipo; // 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 DE RETORNO PARA RETORNAR O MENU void mostrar_menu() { printf("\n\n1 - Adicionar elemento na pilha.\n" "2 - Excluir elemento da pilha.\n" "3 - Esvaziar a pilha totalmente.\n" "0 - Encerrar o programa.\n"); } //FUNÇÃO PARA EMPILHAR OS ELEMENTOS void empilhando() { if (pilha.topo == tamanho) { printf("A pilha está cheia!"); system("pause"); } else { printf("\nDigite o elemento a ser empilhado: "); scanf("%d", &pilha.dados[pilha.topo]); pilha.topo++; } } //FUNÇÃO PARA DESEMPILHAR OS ELEMENTOS void desempilhando() { if (pilha.ini == pilha.topo) { printf("A pilha está vazia!\n"); system("pause"); } else { pilha.dados[pilha.topo - 1] = 0; pilha.topo--; } } // FUNÇÃO PARA ESVAZIAR A PILHA void esvaziar_pilha() { int i; if (pilha.topo == pilha.ini) { printf("A pilha já está vazia!\n\n"); system("pause"); } else { for (i = 0; i < tamanho; i++) { pilha.dados[pilha.topo - 1] = 0; pilha.topo--; } } } int main() { setlocale(LC_ALL, "Portuguese"); pilha.topo = 0; pilha.ini = 0; op = 1; while (op != 0) { mostrar_pilha(); mostrar_menu(); printf("\nEscolha sua opcao: "); scanf("%d", &op); switch (op) { case 1 : empilhando(); break; case 2 : desempilhando(); break; case 3 : esvaziar_pilha(); break; } } return (0); }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!