Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: daost en 9 Febrero 2020, 06:38 am



Título: necesito ayuda
Publicado por: daost en 9 Febrero 2020, 06:38 am
hola se me ocurrio crear un programa que basicamente me calculee una inversion en plazo fijo
pero tuve un problema durante la creacion si bien me funciona con solo 1 mes es decir 30 dias no logro ni tampoco se como puedo hacer para que el programa leea que poniendo 1 sea 30 y dos sea 60 ya que para hacer el plazo fijo necesito saber la cantidad de meses les dejo mi codigo para que vean como va :

#include<iostream>

using namespace std;

int main()
{
   int dinero=0;
   int unmes=0;
   float ganancia=0;
   float gananciatotal=0;
   
   cout<<"ingrese dinero a depositar: ";cin>>dinero; //ingreso dinero
   cout<<"ingrese cantidad de mes: ";cin>>unmes; // cantidad de mes dependiendo de que 1 sea= 30, 2=60, etc..
   
   ganancia = dinero * (0.33*30/365); //0.33 es la tasa anual de ganancia lo multiplico por 30 que seria 1 mes y lo divido por el año para saber la ganancia
   
   gananciatotal= ganancia+dinero; //sumo la ganancia con el dinero ingresado para que me de el total del dinero si hago la inversion
   
   cout<<"su ganancia es de:  "<<ganancia; cout<<"pesos";
   cout<<"\nsu dinero con interes seria de:  "<<gananciatotal; cout<<"pesos";
   
   return 0;
   
}

/* el problema como comente en el foro es que no logro poder poner lo de los meses osea que el programa por ahora
solo funciona con un mes, me faltaria los otros 11 meses, no estoy seguro pero creo que debo usar las condiciones si alguien me puede ayudar seria un golazo*/


Título: Re: necesito ayuda
Publicado por: daost en 9 Febrero 2020, 07:12 am
CREO QUE ENCONTRE MI RESPUESTA XD

#include<iostream>
#include<stdio.h>
#include<conio.h>

using namespace std;

int main()
{
   int dinero=0;
   int mes=0;
   float ganancia=0;
   float gananciatotal=0;
   
   cout<<"ingrese dinero a depositar: ";cin>>dinero; //ingreso dinero
   cout<<"ingrese cantidad de mes: ";cin>>mes; // cantidad de mes dependiendo de que 1 sea= 30, 2=60, etc..
      if (mes==1)
      {
         ganancia=dinero*(0.33*30/360);
      }
      else
      {
         if(mes==2)
         ganancia=dinero*(0.33*60/360);
      }
   
      {
         if(mes==3)
         ganancia=dinero*(0.33*90/360);
      }
   
      {
         if(mes==4)
         ganancia=dinero*(0.33*120/360);
      }
      
      {
         if(mes==5)
         ganancia=dinero*(0.33*150/360);
      }
      
      {
         if(mes==6)
         ganancia=dinero*(0.33*180/360);
      }
      
      {
         if(mes==7)
         ganancia=dinero*(0.33*210/360);
      }
      
      {
         if(mes==8)
         ganancia=dinero*(0.33*240/360);
      }
      
      {
         if(mes==9)
         ganancia=dinero*(0.33*270/360);
      }
      
      {
         if(mes==10)
         ganancia=dinero*(0.33*300/360);
      }
      
      {
         if(mes==11)
         ganancia=dinero*(0.33*330/360);
      }
      
      {
         if(mes==12)
         ganancia=dinero*(0.33*360/360);
      }
    //0.33 es la tasa anual de ganancia lo multiplico por 30 que seria 1 mes y lo divido por el año para saber la ganancia
   
   gananciatotal= ganancia+dinero; //sumo la ganancia con el dinero ingresado para que me de el total del dinero si hago la inversion
   
   cout<<"su ganancia es de:  "<<ganancia; cout<<"pesos";
   cout<<"\nsu dinero con interes seria de:  "<<gananciatotal; cout<<"pesos";
   
   return 0;
   
}




COMO PUEDO AHORRARME TANTAS LINEAS??, NO RECUERDO EL METODO


Título: Re: necesito ayuda
Publicado por: engel lex en 9 Febrero 2020, 08:44 am
Hola!

evita escribir parrafos en mayusculas si quieres resaltar puedes usar negritas
para el codigo procura usar lasetiquetas GeSHi
y evita hacer doble post


sobre tu problema de ahorrar lineas no es un asunto de funciones, es de matematica

no necesitas if, solo formula
Código
  1. ganancia=dinero*0.33*30*mes/360;


si es mes 1 esto será dinero*0.33*30*1/360 -> dinero*0.33*30/360
si es mes 4 esto será dinero*0.33*30*4/360 -> dinero*0.33*120/360



Título: Re: necesito ayuda
Publicado por: @XSStringManolo en 9 Febrero 2020, 11:32 am
hola se me ocurrio crear un programa que basicamente me calculee una inversion en plazo fijo
pero tuve un problema durante la creacion si bien me funciona con solo 1 mes es decir 30 dias no logro ni tampoco se como puedo hacer para que el programa leea que poniendo 1 sea 30 y dos sea 60 ya que para hacer el plazo fijo necesito saber la cantidad de meses les dejo mi codigo para que vean como va :

#include<iostream>

using namespace std;

int main()
{
   int dinero=0;
   int unmes=0;
   float ganancia=0;
   float gananciatotal=0;
   
   cout<<"ingrese dinero a depositar: ";cin>>dinero; //ingreso dinero
   cout<<"ingrese cantidad de mes: ";cin>>unmes; // cantidad de mes dependiendo de que 1 sea= 30, 2=60, etc..
   
   ganancia = dinero * (0.33*30/365); //0.33 es la tasa anual de ganancia lo multiplico por 30 que seria 1 mes y lo divido por el año para saber la ganancia
   
   gananciatotal= ganancia+dinero; //sumo la ganancia con el dinero ingresado para que me de el total del dinero si hago la inversion
   
   cout<<"su ganancia es de:  "<<ganancia; cout<<"pesos";
   cout<<"\nsu dinero con interes seria de:  "<<gananciatotal; cout<<"pesos";
   
   return 0;
   
}

/* el problema como comente en el foro es que no logro poder poner lo de los meses osea que el programa por ahora
solo funciona con un mes, me faltaria los otros 11 meses, no estoy seguro pero creo que debo usar las condiciones si alguien me puede ayudar seria un golazo*/
A parte de la solución de Engel, tienes las funciones:

Código
  1. int calcularGanancia (dinero, meses)
  2. {
  3. return dinero * (0.33*meses*30/365);
  4. }

Después dentro del main pasas el dinero y los meses en la llamada y la función te retorna la ganancia.

Código
  1. int main()
  2. {
  3. ...
  4. ...
  5. ...
  6. int gananciasPrimerTrimestre = calcularGanancia(dinero, 3);
  7. int gananciasSegundoTrimestre = calcularGanancia(dinero, 6) - gananciasPrimerTrimestre;
  8. int gananciasAnuales = calcularGanancia(dinero, 12);
  9. ...
  10. ...
  11. ...
  12. }


Título: Re: necesito ayuda
Publicado por: daost en 9 Febrero 2020, 22:55 pm
graciass