• Revista PROGRAMAR: Já está disponível a edição #56 da revista programar. Faz já o download aqui!

rafaelalosano

Vending machine

13 mensagens neste tópico

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????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E qual é a dúvida ou o problema? O que já tens feito?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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...!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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...

Editado por pwseo
Bloco de código.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

guardar o valor inserido num array? Tens acertesa que foi isso que a tua professora disse?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

....

Editado por rafaelalosano
apagar
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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.... 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;


    }
}


 

Editado por pwseo
Bloco de código.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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??

Editado por rafaelalosano
falta de informação
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora