Mi programita para calcular hipotecas y préstamos en C++

Iniciado por RevolucionVegana, 30 Noviembre 2016, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

RevolucionVegana

Hola a todos antes de ayer tenía que hacer unos ejercicios para clase (una tabla de amortización), los hice y después de darme cuenta de que para hacer una tabla de amortización de 6 meses tardé como 15 min. me pregunté que por que no hacer un programita que me calculase instantáneamente la tabla, el interés y varias cosillas más, ya que no me quiero imaginar lo que tardaría si me pusiese a hacer una tabla de 25 meses por ejemplo y teniendo en cuenta que podría fallar y adiós todo, cogí me tomé un café me motivé me puse música de piano y a darle al teclado, he de decir que para hacer esto que nunca lo he hecho y con tal constancia he tenido que quitar windows y todo lo que pueda tener relación con los videojuegos porque si no ni programa ni nada xD, me he puesto Ubuntu y bueno en total he estado dos tardes, la mayor parte del tiempo ha sido con el tema de la matriz bidimensional viendo a ver como podía pasar las formulas que uso en papel al pc y finalmente lo he conseguido iba a pedir ayuda por el foro sobretodo iba a mandarle un MP a engel pero bueno por no dar follón no lo hice así que aquí os dejo todo el código para quién lo quiera usar y adaptar, no es gran cosa pero puede ser de utilidad sobretodo para mi que lo he hecho a lo que exactamente yo necesito para clase y me va a ahorrar muchísimo trabajo y tiempo. Sois libres de llamarme noob jajaja aquí tenéis:

Código (cpp) [Seleccionar]

/* De RevolucionVegana para todos los hipotecados de elhacker.NET jajaja :) */
// Tu banco te quiere :D

#include <iostream>
#include <math.h>

using std::cout;
using std::cin;
using std::endl;

int main(){

int C0;
double TIN;
int tiempo;

cout << "Introduce el capital inicial: ";
cin >> C0;

cout << "Introduce el TIN (sin el símbolo de porcentaje, solo números): ";
cin >> TIN;
TIN = TIN / 100;

cout << "Introduce el tiempo en meses: ";
cin >> tiempo;

int fila;
fila = tiempo;

cout << "\n";

int eleccion;
double interes;
double ANI;
double a_minuscula;

cout << "¿Que quieres calcular?\n \n" << "Pulse 1 si quiere calcular el interés.\n" << "Pulse 2 si quiere calcular ANI.\n" << "Pulse 3 si quiere calcular el interés, ANI y hacer el cuadro de amortización.\n";
cin >> eleccion;

int tiempo2;
tiempo2 = tiempo - (tiempo * 2);
interes = TIN / 12;
double parte_elevada = 1 + interes;
ANI = (1 - (pow(parte_elevada, tiempo2))) / interes;

if(eleccion==1){
cout << "\n" << "El interés es: " << interes;
}

if(eleccion==2){
cout << "El resultado de ANI es: " << ANI;
}

if(eleccion==3){
cout << "El interés es: " << interes << "\n";
cout << "El resultado de ANI es: " << ANI << "\n";

a_minuscula = C0 / ANI;
cout << "\'a\' es igual a " << a_minuscula << "\n";

// Algoritmo para calcular el cuadro de amortización

cout << "\nCuadro de amortización:" << "\n";

float matriz[fila][6]; //Declaramos el array. El número de filas dependerá del tiempo y el número de columnas será 6.

matriz[0][5] = C0;
matriz[0][4] = 0;
matriz[0][3] = 0;
matriz[0][2] = 0;
matriz[0][1] = a_minuscula;
matriz[0][0] = 0;
cout << "n" << "\t" << "a" << "\t" << "I" << "\t" << "A" << "\t" << "m" << "\t" << "C" << "\n";
cout << matriz[0][0] << "\t" << matriz[0][1] << "\t" << matriz[0][2] << "\t" << matriz[0][3] << "\t" << matriz[0][4] << "\t" << matriz[0][5] << "\n";
for(int valor_i=1;valor_i<=fila;valor_i++){
matriz[valor_i][0] = valor_i;
cout << matriz[valor_i][0] << "\t";
for(int valor_columna=0;valor_columna<=5;valor_columna++){
if(valor_columna==1){ //'a'
matriz[valor_i][valor_columna] = a_minuscula;
cout << matriz[valor_i][valor_columna] << "\t";
}
if(valor_columna==2){//'I'
matriz[valor_i][valor_columna] = matriz[valor_i - 1][5] * interes;
cout << matriz[valor_i][valor_columna] << "\t";
}
if(valor_columna==3){//'A'
matriz[valor_i][valor_columna] = matriz[valor_i][valor_columna - 2] - matriz[valor_i][valor_columna - 1];
cout << matriz[valor_i][valor_columna] << "\t";
}
if(valor_columna==4){//'m'
matriz[valor_i][valor_columna] = matriz[valor_i - 1][valor_columna] + matriz[valor_i][valor_columna - 1];
cout << matriz[valor_i][valor_columna] << "\t";
}
if(valor_columna==5){//'C'
matriz[valor_i][valor_columna] = matriz[valor_i - 1][valor_columna] - matriz[valor_i][valor_columna - 2];
cout << matriz[valor_i][valor_columna] << "\n";
}
}

}

cout << "\n";


}
return 0;
}


Por ejemplo un ejercicio con capital 10.000, TIN 3,6% y a devolver durante 5 meses.

Resultados del programa:

El interés es: 0.003
El resultado de ANI es: 4.95531
'a' es igual a 2018.04

Cuadro de amortización:
n a I A m C
0 2018.04 0 0 0 10000
1 2018.04 30 1988.04 1988.04 8011.96
2 2018.04 24.0359 1994 3982.04 6017.96
3 2018.04 18.0539 1999.98 5982.02 4017.98
4 2018.04 12.0539 2005.98 7988 2012
5 2018.04 6.036 2012 10000 0.00012207


Y por cierto justo ayer cumplí un año en el foro que rápido y que lento al mismo tiempo pasa el tiempo no? jaja :)

Un saludo a todos!!!!!!!!!!!!!!!!!!!!!!!!!

PD: 'n' es el mes, 'a' el pagadero, 'A' es el capital, 'C' es el capital residual, 'I' es el interés y 'm' no tengo ni idea de lo que es xDDDD pero en las formulas lo uso, adióóós ;)


CoAd: Los temas de C++ van en C/C++
HAS DICHO ALGO NENAAAAAA?!