Ir ao conteúdo
  • Cadastre-se

kode v

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

posts postados por kode v

  1. 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 );

    }

     

  2. 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
    1 minuto atrás, vguimil disse:

    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 );
        
           

             
    }


     

    falta a biblioteca também #include <string.h>

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

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!