Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Created March 24, 2012 17:37
Show Gist options
  • Save HiroNakamura/2185457 to your computer and use it in GitHub Desktop.
Save HiroNakamura/2185457 to your computer and use it in GitHub Desktop.
Cálculos básicos de ingeniería económica
'''
----------------------------------------------------------------
[Operaciones de Ingeniería Económica]
----------------------------------------------------------------
'''
from series import *
def menu():
print "\t[Menú del programa]"
print "\t1. Valor presente dado un valor futuro"
print "\t2. Valor futuro dado un valor presente"
print "\t3. Valor presente dada una anualidad"
print "\t4. Valor futuro dada una anualidad"
print "\t5. Anualidad dado un valor presente"
print "\t6. Anualidad dado un valor futuro"
print "\t7. Salir del programa"
opc=int(raw_input('Tu opción es:'))
return opc
def inicio():
salir="s"
while salir=="s":
print "================================================"
print " <<<<<<<< [Ingeniería económica] >>>>>>>>>>"
print "================================================"
valor=float(raw_input('Valor:'))
tasa=float(raw_input('Tasa:'))
periodo=int(raw_input('Periodo:'))
datos(valor,tasa,periodo)
opcion=menu()
if opcion==1:
print "[Valor presente]"
print "Resultado: ",valorp(valor,tasa,periodo)
if opcion==2:
print "[Valor futuro]"
print "Resultado: ",valorf(valor,tasa,periodo)
if opcion==3:
print "[Valor presente dada una anualidad]"
print "Resultado: ",valorpA(valor,tasa,periodo)
if opcion==4:
print "[Valor futuro dada una anualidad]"
print "Resultado: ",valorfA(valor,tasa,periodo)
if opcion==5:
print "[Anualidad dado un valor presente]"
print "Resultado: ",anualidadVp(valor,tasa,periodo)
if opcion==6:
print "[Anualidad dado un valor futuro]"
print "Resultado: ",anualidadVf(valor,tasa,periodo)
if opcion==7:
print "[Fin del programa]"
break
salir=raw_input('¿Desea realizar otra operación? Si->s No->n :')
if salir=="n":
print "adios"
#inicio
inicio()
@HiroNakamura
Copy link
Author

Aquí esta el módulo que contiene las operaciones

series.py

'''

        [Series uniformes]

'''
def valorp(v,i,n):
return v/pow(1+i/100,n)

def valorf(v,i,n):
return v*pow(1+i/100,n)

def valorpA(v,i,n):
return v_((pow(1+i/100,n)-1)/(pow(1+i/100,n)_(i/100)))

def valorfA(v,i,n):
return v*((pow(1+i/100,n)-1)/(i/100))

def anualidadVp(v,i,n):
return v_((pow(1+i/100,n)_(i/100))/(pow(1+i/100,n)-1))

def anualidadVf(v,i,n):
return v*((i/100)/(pow(1+i/100,n)-1))

def datos(v,i,n):
print "Valor: %f Tasa: %f Periodo: %d"%(v,i,n)

'''
cualquier mejora es bienvenida
'''

@HiroNakamura
Copy link
Author

import javax.swing.JOptionPane;
import javax.swing.;
import java.awt.
;

class Tuto93{

public static void main(String[] args) {

    Economica economica = new Economica(0.0,0.0,0);

    double valor=Double.parseDouble(JOptionPane.showInputDialog("valor"));
    double tasa=Double.parseDouble(JOptionPane.showInputDialog("tasa"));
    int plazo=Integer.parseInt(JOptionPane.showInputDialog("plazo"));

economica.valor=valor;
economica.tasa=tasa;
economica.plazo=plazo;

economica = new Economica(economica.valor,economica.tasa,economica.plazo);
//JOptionPane.showMessageDialog(null,economica.toString(),"Resultado",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("ferd.jpg"));
JTextArea textArea2 = new JTextArea(economica.toString(), 20, 20);

JScrollPane scrollPane = new JScrollPane(textArea2);
  textArea2.setLineWrap(true);

JOptionPane.showMessageDialog(null,scrollPane,"Resultado",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("ferd.jpg"));

}

}

class Economica{
double valor;
double tasa;
int plazo;

Economica(){}

Economica(double v,double t, int p){
    valor=v;
    tasa=t;
    plazo=p;
}

public double getValor(){
    return valor;
}

public double getTasa(){
    return tasa;
}
public int getPlazo(){
    return plazo;
}

public String toString(){
    return "\nvalor: "+valor+"\ntasa: "+tasa+"\nplazo: "+plazo+"\nValor futuro obtenido por periodo: "+String.valueOf(calculo());
}

public String calculo(){
    String cad="";
    int cont=0;

    for(;cont<=plazo;cont++){
        cad+="\nresultado:  "+String.valueOf(valor* Math.pow(1+tasa/100,cont))+" ["+String.valueOf(cont)+"]";
    }

    return cad;
}

}

@HiroNakamura
Copy link
Author

/**

import javax.swing.JOptionPane;
import javax.swing.*;

class CalculoIMC{
public static void main(String[] args) {
//instanciar clase
Persona persona= new Persona();
//usar los atributos
persona.nombre=JOptionPane.showInputDialog("nombre: ");
persona.edad=Integer.parseInt(JOptionPane.showInputDialog("edad: "));
persona.peso=Double.parseDouble(JOptionPane.showInputDialog("peso: "));
persona.talla=Double.parseDouble(JOptionPane.showInputDialog("talla: "));

//concatenación
persona.asignar(persona.nombre,persona.edad,persona.peso,persona.talla).verDatos();

}

}

class Persona{
public String nombre;
public int edad;
public double peso,talla;

Persona asignar(String n,int e,double p,double t){
    nombre=n;
    edad=e;
    peso=p;
    talla=t;
    return this;
}



Persona verDatos(){
   String res="Datos\n";
    res+="\nnombre: "+nombre;
    res+="\nedad: "+edad;
    res+="\npeso: "+peso;
    res+="\ntalla: "+talla;
    res+="\nIMC obtenido es: "+imc();
    res+="\nClasificacion obtenida es: "+clasificacion();
    JOptionPane.showMessageDialog(null, res,"Resultado",JOptionPane.PLAIN_MESSAGE,new ImageIcon("fer.jpg"));
    return this;
}


public double imc(){
    return peso/(talla*talla);
}

public String clasificacion(){
    String cad="";
    if(imc()<16.00){

        cad="Infrapeso: Delgadez Severa";

    }else if(imc()<=16.00 || imc()<=16.99){
        cad="Infrapeso: Delgadez moderada";
    }else if(imc()<=17.00 ||imc()<=18.49){

cad="Infrapeso: Delgadez aceptable";
}else if(imc()<=18.50 || imc()<=24.99){
cad="Peso Normal";
}else if(imc()<=25.00 || imc()<=29.99){
cad="Sobrepeso";
}else if(imc()<=30.00 || imc()<=34.99){
cad="Obeso: Tipo I";
}else if(imc()<=35.00 || imc()<=40.00){
cad="Obeso: Tipo II";
}else if(imc()>=40.00){
cad="Obeso: Tipo III";
}else{
cad="no existe clasificacion";
}
return cad;
}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment