-
Posts
3 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Marcos Antonio Conceição
-
-
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.
-
Eu fiz um codigo fonte para esse questão
Vendo a greve dos caminhoneiros gerar a falta de combustível, você decide vender um programa para auxiliar o trabalho de um posto de combustível. Num posto de combustível a informação necessária diz respeito aos seguintes dados: total de litros consumido, valor do combustível, total arrecadado.
O que deve ser realizado na questão:
Vamos programar esta solução utilizando vetores.
· O vetor A deve conter o total de litros que cada veículo abasteceu.
· O vetor B deve ter um caractere representando o combustível: ‘G’ para gasolina, ‘E’ para etanol, ‘D’ para diesel. Use outros se desejar.
· O vetor C deve receber o total pago por cada cliente, durante o dia de trabalho (ou seja, o valor do vetor A vezes o preço do combustível informado no vetor B).
Seu programa deve:
· pedir os dados de um dia de trabalho, para o vetor A e B.
· calcular os dados do vetor C.
· calcular o total de arrecadação do posto naquele dia.
Faça um teste com 20 entradas de cliente (dados de trabalho de um dia) e mostre todos os resultados.
SEGUE o CODIGO#include <cstdio> #include <string.h> #include <iostream> #include <conio.h> int main(){ int i, VETOR_A[100], Cont=0; char VETOR_B[100], Op= 'S', Aux[10]; float VETOR_C[100], PRECO , SOMA=0; do{ printf("\nCLIENTE %d:\n\n", Cont+1); printf("DIGITE O COMBUSTIVEL UTILIZADO:\n \n= G = GASOLINA - R$ 4,49\n= E = ETANOL - R$ 2,69\n= D = DIESEL - R$ 3,39\n\n"); do{ fflush(stdin); scanf ("%c", &VETOR_B[Cont]); if (toupper(VETOR_B[Cont])=='G'){strcpy(Aux,"GASOLINA"); PRECO=4.49; Op= 'p';} else if(toupper(VETOR_B[Cont])=='E'){strcpy(Aux,"ETANOL" ); PRECO=2.69; Op= 'p';} else if(toupper(VETOR_B[Cont])=='D'){strcpy(Aux,"DIESEL" ); PRECO=3.39; Op= 'p';} else {printf("COMBUSTIVEL NAO CADASTRADO, SO E PERMITIDO OS TRES COMBUSTIVEIS CADASTRADO NO SISTEMA\n"); } }while (Op != 'p'); do{ printf ("\nDIGITE O TOTAL DE LITROS%S ABASTECIDO: ", Aux); fflush (stdin); scanf ("%d", &VETOR_A[Cont]); if (VETOR_A[Cont] >=0){ VETOR_C[Cont] = (float)VETOR_A[Cont] * PRECO; } else{ printf("NAO PODE EXISTIR VALOR NEGATIVO...!\n"); } }while(VETOR_A[Cont] < 0); Cont++; printf("\nDESEJA CADASTRAR OS DADOS DE OUTRO CLIENTE? S/N \n"); fflush(stdin); scanf ("%c", &Op); }while(toupper(Op) != 'N'); printf("\n"); for(i=0; i<Cont; i++){ printf("TOTAL DE LITROS ABASTECIDO: %d COMBUSTIVEL UTILIZADO: %c VALOR TOTAL: %2f\n",VETOR_A[i], VETOR_B[i], VETOR_C[i]); SOMA += VETOR_C[i]; } printf("\nVALOR TOTAL ARRECADADO NO DIA -> R$ %.2f\n\n",SOMA); getch(); return 0; }
E Essa Foi a Resposta do Professor
Cont pode passar de 100 elementos no cadastro -3
O resto está OK.
Alguem Pode Me Ajudar a Resolver Isso
Grato Desde Já- 1
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
Auxílio na solução de exercício
em C/C#/C++
Postado
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