Ir para conteúdo
Fórum Script Brasil
  • 0

FILA CIRCULAR - EXERCUÇÃO DE PROCESSO E INSTRUÇÕES


Guest --guardiao --

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...