Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: padiuwu en 6 Agosto 2018, 02:27 am



Título: Alguien me ayude a terminar mi programa.
Publicado por: padiuwu en 6 Agosto 2018, 02:27 am
Solamente me falta calcular en la condicion: if(gramos>30 && gramos<=200)

una oficina de correo aplica la siguiente tarifa para sus envios 10 pesos por los primeros 20 gramos, 2 pesos por gramo para los siguientes 10 gramos, 1.50 pesos por gramo hasta los 200 gramos.

Código:
#include <iostream>

using namespace std;

float peso();
float gramos, pago;

int main()
{
    peso();
    return 0;
}

float peso(){
    cout<<"Ingrese el peso de envio en gramos: ";
    cin>>gramos;

    if(gramos<=20){
        pago=10;
        cout<<"Monto a pagar: "<< pago;

    }else{
    if(gramos>20 && gramos<=30){
        pago = (gramos - 20)*2+10;
        cout<<"Monto a pagar: "<< pago;
    }

    }if(gramos>30 && gramos<=200){
        cout<<"Monto a pagar: "<<pago;

    }else{
        if(gramos > 200)
        cout<<"No se acepta";}

}


Título: Re: Alguien me ayude a terminar mi programa.
Publicado por: MAFUS en 6 Agosto 2018, 16:46 pm
Para hacer esto debes mirar la cantidad que tienes cada vez, algo así:

Los primeros 20 gramos valen 10 pesos, eso es, pase lo que pase ya cobras 10.

precio = 10

Ahora hay que quitarse esos 20 gramos de encima, por tanto si el paquete mesa igual o mas a 20 gramos los quitas del peso. Si pesa menos lo llevas a 0.

Siguiente.
Si el paquete sigue pesando 10 gramos o más sumas al precio 2*10 y restas al peso del paquete los 10 gramos. En cambio si pesa menos de 10 gramos sumas al precio el peso actual por 2 pesos/gramo, y llevas el peso a 0.

Para terminar.
Si el peso supera los 200 gramos lo pones a 200. Ahora sumas al precio el peso actual por 1.5 pesos/gramo.

El precio resultante es el que debe pagar el cliente.