-
Posts
8 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por kode v
-
-
@GhostGolden posta ai para vemos
-
@amigo da Uni o PID acho que ta de boa ta gerando uma sequencia, agora o empilha ta deixando adicionar mais de 5 processo.
-
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 );}
-
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 depois1 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>
-
sim , hehehe
-
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. -
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
pilha estatica tan complicado
em C/C#/C++
Postado
@amigo da Uni no meu também deu erro