rafaelalosano Posted January 10, 2017 at 08:24 PM Report Share #601920 Posted January 10, 2017 at 08:24 PM Olá pessoal, Sou nova por aqui...estou com dificuldade de encontrar uma solução para resolver um exercício. O objectivo é criar uma máquina de vendas, que recebe o pagamento em moedas, compara o valor recebido com o valor do produto e calcula o troco caso esse existir. Alguém pode ajudar???? Link to comment Share on other sites More sharing options...
iron Posted January 10, 2017 at 09:23 PM Report Share #601922 Posted January 10, 2017 at 09:23 PM E qual é a dúvida ou o problema? O que já tens feito? Cumprimentos, iron Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 10, 2017 at 09:28 PM Author Report Share #601924 Posted January 10, 2017 at 09:28 PM float conta_pagamento(){ int x,y; while (pagamento < valor){ pagamento += moedas; } x = pagamento - moeda; y = valor - x; if( pagamento > valor ){ printf("Valor total: %.2f\n", x); printf("Falta: %.2f\n", y); } else printf ("Valor total: %.2f\n", pagamento); } O que tenho é isto!! Pelo que a professora disse, a ideia é ler o valor inserido, guardar num array, comparar com o valor do produto e fazer o troco. E é isso que não sei fazer...!! Link to comment Share on other sites More sharing options...
iron Posted January 11, 2017 at 01:23 AM Report Share #601926 Posted January 11, 2017 at 01:23 AM E os produtos são passados como parâmetro? Onde tens os produtos guardados? O que recebes como parâmetro é apenas o valor inserido na máquina? Cumprimentos, iron Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 11, 2017 at 02:06 AM Author Report Share #601927 Posted January 11, 2017 at 02:06 AM (edited) struct Produto{ char B1,B2,B3,B4,B5,B6; char nome[10]; float valor; int stock_produto[5]; }Produto; Produto p[5]; p[0].nome = 'Bolicao' ; p[1].nome = 'Ruffles'; p[2].nome = 'TUC TUC'; p[3].nome = 'KIT KAT'; p[4].nome = 'Coca-cola'; p[5].nome = 'Red Bull'; p[0].valor = 0.75; p[1].valor = 1.00; p[2].valor = 0.75; p[3].valor = 0.80; p[4].valor = 1.50; p[5].valor = 2.50; p[0].stock_produto = 10; p[1].stock_produto = 10; p[2].stock_produto = 10; p[3].stock_produto = 10; p[4].stock_produto = 10; p[5].stock_produto = 10; Ai tens... Edited February 5, 2017 at 10:47 AM by pwseo Bloco de código. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 11, 2017 at 01:16 PM Report Share #601939 Posted January 11, 2017 at 01:16 PM guardar o valor inserido num array? Tens acertesa que foi isso que a tua professora disse? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 11, 2017 at 01:52 PM Author Report Share #601940 Posted January 11, 2017 at 01:52 PM Implementar em linguagem C um simulador de uma máquina de vending, com as seguintes especificações: 1. A máquina deve possuir 10 dispensadores numerados de 1 a 10, com uma dimensão pré-definida; 2. A cada dispensador deve corresponder um determinado produto; 3. O número de produtos a colocar em cada dispensador depende da dimensão do produto, devendo o simulador fazer o cálculo de acordo com esta; 4. A máquina deve permitir o fornecimento de 4 tipos de bebidas quentes confecionadas no momento; 5. Consoante as bebidas quentes a confecionar a máquina deve permitir o armazenamento dos produtos a utilizar na sua confeção; 6. A máquina deve permitir o pagamento em moedas ou notas de 5€; 7. A máquina deve fornecer o troco utilizando o menor número de moedas possível, de entre as de 1€, 50 cêntimos, 20 cêntimos, 10 cêntimos e 5 cêntimos; 8. Deve ser fornecida ao utilizador informação de quantas moedas de cada tipo compõem o troco; 9. O simulador deve possuir um módulo de carregamento (divido nos sub-módulos de carregamento de produtos e de moedas para fornecimento de troco); 10. Deve ser fornecida ao utilizador toda a informação necessária à sua gestão, bem como a considerada relevante à sua utilização. Foi assim que interpretei e comecei a pensar.... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 11, 2017 at 02:39 PM Report Share #601942 Posted January 11, 2017 at 02:39 PM ok . é dificil perceber realmente o problema só por esses pontos, mas já sei a razão do array depois disso, tens de ser muito específica nas dúvidas. por outras palavras, dizer que não sei fazer não é apresentação de uma dúvida, mas sim um requerimento de alguem que faça isso por ti. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 11, 2017 at 09:57 PM Author Report Share #601957 Posted January 11, 2017 at 09:57 PM 7 horas atrás, HappyHippyHippo disse: ok . é dificil perceber realmente o problema só por esses pontos, mas já sei a razão do array depois disso, tens de ser muito específica nas dúvidas. por outras palavras, dizer que não sei fazer não é apresentação de uma dúvida, mas sim um requerimento de alguem que faça isso por ti. Desde já agradeço o seu tempo. Em momento algum pedi para alguém fazer por mim, se assim fosse já teria copiado trabalhos feitos que existem na net. Posso não ter sido específica quando coloquei meu problema, mas não pedi nem a você nem a ninguém que o resolvesse por mim. Fico por aqui.... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 12, 2017 at 06:58 AM Report Share #601959 Posted January 12, 2017 at 06:58 AM 9 hours ago, rafaelalosano said: Desde já agradeço o seu tempo. Em momento algum pedi para alguém fazer por mim, se assim fosse já teria copiado trabalhos feitos que existem na net. Posso não ter sido específica quando coloquei meu problema, mas não pedi nem a você nem a ninguém que o resolvesse por mim. Fico por aqui.... certo, podes então explicar exactamente então qual a tua dificuldade ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 13, 2017 at 01:59 PM Author Report Share #601989 Posted January 13, 2017 at 01:59 PM Então é assim...tenho isso feito.... A função calcula_troco, identifica quantas moedas de cada valor foram inseridas. Só que quando entra no if não calcula o troco, então coloquei num ciclo for, só que agora aparece um erro dizendo que a variavel produto não foi declarada e um erro no switch também com o mesmo problema. Já pesquisei em varios livros e video aulas e a declaração da variavel não está mal...porque o compilador não aceita? E outra coisa, se eu colocar moeda2e[20] e disser caixa.moeda2e[20]+caixa.stockm2e a seguir a instrução que conta quantas moedas nesse valor há, está correto? #include <stdio.h> #include <stdlib.h> #include <conio.h> float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c); void main() { struct Caixa{ int moeda2e[10],moeda1e[10],moeda50c[10],moeda20c[10],moeda10c[10],moeda5c[10]; int stockm2e,stockm1e,stockm50c,stockm20c,stockm10c,stockm5c; }caixa; struct Produto{ char nome[20]; int codigo_produto; float valor_produto; int quant_produto; }produto[5]; produto[0].nome[20] ='Bolicao'; produto[0].codigo_produto = 1; produto[0].valor_produto = 1.00; produto[0].quant_produto = 10; printf("Escolha o produto e digite o codigo correspondente\n"); printf("1 - BOLICAO\n"); printf("2 - TUC TUC\n"); printf("3 - KIT KAT\n"); printf("4 - RUFFLES\n"); printf("5 - COCA-COLA\n"); printf("6 - REDBULL\n"); scanf("%d",&produto[].codigo_produto);//qual o valor devo colocar nessa instruçao?? switch(produto){ case 1: printf("O valor e %f\n",produto[0].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; case 2: printf("O valor e %f\n",produto[1].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; case 3: printf("O valor e %f\n",produto[2].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; case 4: printf("O valor e %f\n",produto[3].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; case 5: printf("O valor e %f\n",produto[4].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; case 6: printf("O valor e %f\n",produto[5].valor_produto); printf("Introduza o pagamento\n"); calcula_troco(); break; } float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c){ float pagamento,troco; printf("Introduza o pagamento\n"); scanf("%f",&pagamento); caixa.stockm2e = (int)pagamento/2; pagamento = pagamento - (caixa.stockm2e*2); caixa.stockm1e = (int)pagamento/1; pagamento = pagamento - (caixa.stockm1e*1); caixa.stockm50c = (float)pagamento/0.5; pagamento = pagamento - (caixa.stockm50c*0.5); caixa.stockm20c = (float)pagamento/0.2; pagamento = pagamento - (caixa.stockm20c*0.2); caixa.stockm10c = (float)pagamento/0.1; pagamento = pagamento - (caixa.stockm10c*0.1); caixa.stockm5c = (float)pagamento/0.05; pagamento = pagamento - (caixa.stockm5c*0.05); printf("Numero de moedas de 2 euros e %d\n", caixa.stockm2e); printf("Numero de moedas de 1 euro e %d\n", caixa.stockm1e); printf("Numero de moedas de 0,50 centimos e %d\n", caixa.stockm50c); printf("Numero de moedas de 0,20 centimos e %d\n", caixa.stockm20c); printf("Numero de moedas de 0,10 centimos e %d\n", caixa.stockm10c); printf("Numero de moedas de 0,05 centimos e %d\n", caixa.stockm5c); int i; for(i=0; i<=5 ; i++){ if(pagamento>=produto.valor_produto){ troco = pagamento - produto.valor_produto; printf("O seu troco e %f\n",troco);} else printf("Introduza mais moedas\n"); } return troco; } } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 13, 2017 at 02:16 PM Report Share #601990 Posted January 13, 2017 at 02:16 PM não sei o que dizer tens tantos problemas no código que nem sei onde pegar. diz-me uma coisa : comecaste a progarmar com javascript, ou com outra linguagem que implementa closures ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
rafaelalosano Posted January 13, 2017 at 06:33 PM Author Report Share #601994 Posted January 13, 2017 at 06:33 PM (edited) Não. Comecei com C, mas fui a poucas aulas esse semestre por causa dos horarios do trabalho. Você pode me ajudar a corrigir os erros?? Edited January 14, 2017 at 09:50 PM by rafaelalosano falta de informação Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now