Ir ao conteúdo
  • Cadastre-se
Marcos Antonio Conceição

Auxílio na solução de exercício

Recommended Posts

Existem diferentes formas de manipulação de itens em estruturas lineares. Uma das formas de manipulação é a “fila”, que implementa o conceito de FIFO (First In, First Out), no qual o primeiro elemento que entra é o primeiro que sai. Muitas vezes, o controle de execução dos processos em um sistema operacional é gerenciado utilizando este conceito, para que o sistema possa atender de forma satisfatória, e sob uma determinada ordem, diversas tarefas que são executadas simultaneamente.

A seguir, propomos outra tarefa que também é gerenciada deste modo: um supermercado possui 3 filas de carrinhos (caixas) que vão chegando e são atendidos quando chega a sua vez.

O que deve ser realizado na questão:

1) Primeiramente defina um tipo abstrato de dados (TAD) para comportar os dados de um carrinho: um identificador numérico, o nome do cliente (com máximo de 30 caracteres); o número de produtos; e o valor total da compra.

2) Em seguida, crie um tipo abstrato de dados (TAD) que define a “fila” de carrinhos, para comportar um máximo de 10 clientes.

3) E, por último, crie três filas de carrinhos (os caixas), como três variáveis globais: caixa1, caixa2 e caixa3.

4) De posse desse trecho de código, faça as seguintes rotinas ou funções:

·                     Crie a função “enqueue” ou “insert”, que recebe por parâmetro os dados de um carrinho (encapsulados em um tad) e insere na fila escolhida pelo cliente, verificando se existe espaço na fila, e emitindo mensagem de erro caso a fila esteja cheia.

·                     Crie uma função “inicializa”, que esvazia as 3 filas no inicio do dia de trabalho.

·                     Crie a função “remove”, que retira um cliente de uma fila indicada.

·                     Crie também uma função “total”, que recebe uma fila de carrinhos como parâmetro e retorna o valor total arrecadado pelo supermercado nela.

5) No main, chame estas rotinas para:

o        Inicializar as filas

o        Colocar alguns clientes nas filas (4 ou 5 em cada uma bastam).

o        Retirar pelo menos um cliente de uma das filas.

o        E por ultimo calcular seus valores totais.

Dicas:

·                     Você pode fazer a fila com vetores de carrinhos; ou com nós alocados dinamicamente.

·                     Prefira passar a fila por parâmetro e por referencia ao fazer uma rotina.

·                     Diferencie os conceitos de pilha, fila e lista antes de iniciar a questão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Compartilhar este post


Link para o post
Compartilhar em outros sites
41 minutos atrás, Evandro disse:

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Compreendo Sim
O erro foi meu por não ter colocado o que eu já conseguir desenvolver do codigo
porém, Estagnei
Segue o Codigo Desenvolvido até o momento

 

#include <stdio.h>

#include <stdlib.h>

typedef struct cliente {

int cod;

char nome [40];

} Cliente;

typedef struct fila {

Clientes clientes [1000];

int inicio;

int fim;

} Fila;

typedef struct registro {

Cliente c;

float vlpago;

float vlcobrado;

float troco;

}

Registro;

Fila caixa1;

Fila caixa2;

Fila caixa3;

Registro reg_caixa1 [1000];

Registro reg_caixa2 [1000];

Registro reg_caixa3 [1000];

// inicialização das variaveis

int caixa1, caixa2, caixa3;

printf("MENU DE opções:\n\n");

printf("Escolha o caixa no qual deseja fazer a simulacao\n");

printf("1 para caixa 1 | 2 para o caixa 2 | 3 para o caixa 3 | 4 para sair\n");

Op:

printf("Opcao: ");fflush(stdin);

switch(getche())

{

case '1' : caixa1();

break;

case '2' : caixa2();

break;

case '3' : caixa3();

break;

case '4' : exit(0);

break;

case '5' : gravar();

break;

default : printf("Invalido!\n\n");

system("PAUSE");

return 0;

}

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara esse é o pronto ?

adicionado 20 minutos depois

@Marcos Antonio Conceição  porque tipo cara eu nao gosto muito de fazer isso mais nao estou conseguindo montar o meu sabe me dizer se o seu ja foi corrigido e se poderia me dizer as coisas que podem ser modificados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×