não consigo concluir no meu menu a opção executar processo CASE 2, tenho q retirar da frente da fila e decrementar o total de instruções, depois reenfileirar.
a ideia do programa é a segunte....
Exemplo:
MAX=4
Dados de entrada
Criar processo, PID=1, instrução = 60
Criar processo, PID=2, instrução = 98
Criar processo, PID=3, instrução = 1000
Imprimir
Executar processo = 1 , intruções restantes = 55
Executar processo = 2 , intruções restantes = 93
Executar processo = 3 , intruções restantes = 995
Executar processo = 1 , intruções restantes = 50
Executar processo = 2 , intruções restantes = 88
....
Executar processo = 1 , intruções restantes => Processo Terminado
Executar processo = 2 , intruções restantes = 38
Executar processo = 3 , intruções restantes = 940
Algoritmo
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "filacircular.h"
int main(void) {
TipoFila f;
TipoDado d;
int opcao;
CriaFilaCircular(&f);
do {
printf("\n EXECUÇÃO DE PROCESSOS (No máximo: %d Processos)", Max);
Pergunta
Guest --guardiao --
não consigo concluir no meu menu a opção executar processo CASE 2, tenho q retirar da frente da fila e decrementar o total de instruções, depois reenfileirar.
a ideia do programa é a segunte....
Exemplo:
MAX=4
Dados de entrada
Criar processo, PID=1, instrução = 60
Criar processo, PID=2, instrução = 98
Criar processo, PID=3, instrução = 1000
Imprimir
Executar processo = 1 , intruções restantes = 55
Executar processo = 2 , intruções restantes = 93
Executar processo = 3 , intruções restantes = 995
Executar processo = 1 , intruções restantes = 50
Executar processo = 2 , intruções restantes = 88
....
Executar processo = 1 , intruções restantes => Processo Terminado
Executar processo = 2 , intruções restantes = 38
Executar processo = 3 , intruções restantes = 940
Algoritmo
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "filacircular.h"
int main(void) {
TipoFila f;
TipoDado d;
int opcao;
CriaFilaCircular(&f);
do {
printf("\n EXECUÇÃO DE PROCESSOS (No máximo: %d Processos)", Max);
printf("\n\n1 - Criar novo processo");
printf("\n2 - Executar processo");
printf("\n0 - Sair");
// __fpurge(stdin);
printf("\nOpcao -> ");
scanf("%d", &opcao);
switch (opcao) {
case 1:
printf("\nInforme o PID: ");
scanf("%d",&d.pid);
printf("Informe a instrução: ");
scanf("%d",&d.instrucao);
if (EnfileiraCircular(&f, d))
printf("\nCriar Processo, PID = %d ,Instrução = %d\n", d.pid, d.instrucao);
break;
case 2:
if (ConsultaFrenteFilaCircular(f, &d))
printf("Frente -> %d\n", d.instrucao);
if (DesenfileiraCircular(&f, &d))
printf("Elemento Desenfileirado -> %d\n", d.instrucao);
break;
case 0:
printf("\n\nSaindo....\n");
break;
default:
printf("\n\nErro: Opcao invalida");
}
} while (opcao != 0);
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.