Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Calculadora hecha en delphi (https://www.clubdelphi.com/foros/showthread.php?t=84332)

alquimista 28-11-2014 13:46:10

delphi 2007

En Acerca de...
Si conseguimos pinchar en créditos aparecen componentes utilizados

Componentes utilizados:
-JEDI VCL Modificado (v3.47) Jvinterpreter
-SynEdit
-ATViewer free
{ by Alexey Torgashin }

-TGradient v2.71
{ by Kambiz R. Khojasteh }
-Cyndy Components
-Toolbar2000 Components
-Inno Setup
{ by Jordan Russell }

alquimista 28-11-2014 14:13:25

Como creo que dije...
Fue mas un proyecto para no olvidar delphi, que en un principio iba a ser una calculadora para realizar ejercicios de subredes (subnetting) y creció y creció (ya que tuve un tiempo por enfermedad que pude emplear para programar)

En la ayuda de funciones aparecen funciones de IPv4
Aquí se encuentran las funciones más utilizadas para resolver ejercicios de direcciones IP v4
Ej.- 192.168.2.23 (formato IPv4)

Listado de Funciones:

IP4, IP4Text, IP4IsValid ,IP4BIN, IP4ID, IP4BR, IP4Class IP4Range IP4MaskPrefix, IP4MP, IP4Hosts, IP4H
IP4MaskNetHost, IP4MNH, IP4BitsHosts, IP4BitsH, IP4MaskHosts, IP4MH, IP4Subnets, IP4MaskText, IP4BitsSubnets
,IP4Add,MiIP, IPPublica

Ejemplo: Sumar a una IP un número de hosts determinados
IP4Add('192.168.10.245', 45 ) --> Resultado 192.168.11.34
IP4Add('192.168.10.245',- 246 ) -->Resultado: 192.168.9.255
IP a binario
IP4BIN('192.168.0.1') -->resultado: 11000000.10101000.00000000.00000001
IP4BIN(IP4ID('192.168.10.245',28)) -->resultado: 11000000.10101000.00001010.11110000

Otro ejemplo más complejo
Obtener la clase de red que se adapta si quiero tener x redes e y equipos en cada subred
IP4MNH(número subredes:entero, número equipos:entero)
IP4MaskNetHost(número subredes:entero, número equipos:entero)

número subredes es un número sin decimales de las subredes que queremos crear. Ej.- 12, 64, 133
número equipos es un número sin decimales de los hosts (equipos) que queremos que tenga cada subred.

Descripción:
Devuelve como resultado la clase de red que deberíamos usar y la máscara que sería necesaria para tener las subredes y equipos solicitados.
Ejemplo: Dirección IP en binario (x: representa cualquier dígito binario, n=bits a 1 que representean las subredes, h= bits a cero que representan los hosts.
xxxxxxxx.nnnnnnnn.nnnnnnnn.nnhhhhhh --> con 6 digitos binarios representamos hasta 64-2 host.

Ejemplos:
IP4MNH(65532,158) --> Elegir IP Clase A -255.255.255.0
IP4MaskNetHost(64,2) -->devuelve la siguiente información: Elegir IP Clase C -255.255.255.252
IP4MaskNetHost(65532,1500) -->Clase invalida 255.255.248.0


Luego puedes saber la IP privada(MiIp) y la pública (IPPublica)

Y luego hay diversas funciones de áreas y volúmenes.
complejos, matrices, electrónica.... etc...

Vamos que al final se lió...

Las funciones IP están en source-> jedi modificado...-> JvInterpreter_Misc.pas

alquimista 28-11-2014 14:22:30

Aun le faltan muchas cosillas...
Al ser el JvInterpreter un interprete para funciones pascal mas que para una calculadora, me toco modificar para que soportara exponentes 2^3, y notación cientifica...
Queda POR HACER que no haya que poner ceros delante( ejemplo 0,3*2). No vale ,3*2 que sería mas util..
Pero como me dedico a otras cosas no tengo tiempo para programar...

Espero que alguien le encuentre utilidad
Hay muchas funciones matematicas sacadas o de este foro o por internet...

Saludos

Ñuño Martínez 01-12-2014 10:48:13

Tengo un pequeño problema, y posiblemente no sea yo el único. El instalador funciona con Wine, sí, pero casi preferiría que estuviera el ejecutable tal cual comprimido. Es decir: "descomprimir y usar". Salvo que el programa necesite DLL o algo raro, claro...

alquimista 02-12-2014 00:57:43

Se puede utilizar aunque dará los tipicos errores de no encuentro archivo Ini. pero los cálculos funcionarán. perderás ayuda de funciones y botonoes personalizados. Lo de la enciclopedia es prescindible.

No usa DLLs pero si archivos INI de configuración
En un principio las carpetas importantes son la de configuración CFG donde se almacenan los botones de acceso rápido a funciones.
html que tiene la ayuda en html de bastantes funciones.
UFunc para guardar funciones de usuario.

Las demas carpetas son prescindibles.

La idea era poder configurar las carpetas de guardado...

La mayoria de archivos son de texto. Incluso las funciones definidas de usuario.
Ejemplo Pol.ini
Calcula coordenadas polares.
;Archivo de funciones
;CalcUFP
version=0.91 beta
autor=JCSOFT
nombre=Pol
vars=x,y
FCount=7
L1=var f:variant; //ejemplo de Variable temporal
L2=begin
L3= result:= Hypot(x,y);
L4= f:=arccos(x/result); //para evitar indeterminacion
L5= if y<0 then f:=-f;
L6= res2(f); //Añade segundo resultado a la variable result2
L7=end;
DCount=5
D1=Convierte de coordenadas cartesianas (x,y) a polares (Módulo, angulo)
D2=angulo deberia de estar en grados. Devuelve 2 resultados.
D3=Añadir
D4=modeangle(0);
D5=antes de la función arccos , para forzar modo grados (degrees).

Se podría hacer con relativa facilidad (unidad Constvars.pas tiene las rutas por defecto) un ejecutable que guardase en el directorio de aplicación todos los archivos de configuración.

Ñuño Martínez 02-12-2014 10:45:42

Aclarado. Interesante forma de añadir los "guiones", por cierto. ;)

alquimista 02-12-2014 11:15:34

no entendí lo de los "guiones". Te refieres a las funciones de usuario?

Ñuño Martínez 03-12-2014 10:19:14

Sí, eso mismo. Las funciones de usuario. Los "scripts".

compsystems 04-12-2014 14:11:52

Alquimista, grandioso software ;) te pregunto si has utilizado calculadoras Texas Instrumnets, Hewlett Packard, Casio?

Yo soy programador de TI89, Tivoyage200, HP48, HP50

alquimista 04-12-2014 19:19:52

Hola compsystems.
Gracias..
Utilizaba antes la casio Fx-850p. LLegué a conocer muy bien sus secretos...
Hasta hice un documento que deje hace mucho tiempo por la web sobre lo oculto de la misma.
De hecho casi todas las funciones de cálculo de áreas que he puesto estaban en esa máquina.

mamcx 04-12-2014 21:03:01

Estoy armando un lenguaje de programacion, y entre las cosas que me gustarian es poder hacer como en

http://futureboy.us/frinkdocs/

Ej:

Código PHP:


precio 
10$
cant =  10mts

total 
= (precio cant) * 10


compsystems 04-12-2014 21:06:55

Cita:

Empezado por alquimista (Mensaje 486100)
Hola compsystems.
Gracias..
Utilizaba antes la casio Fx-850p. LLegué a conocer muy bien sus secretos...

Encontré un programa que simula una casio fx-880P, se llama ABAKO, podrias inspirarte en este programa para calcu FP

Enlace

www matemáticas net buscar abako.zip

alquimista sabes si existe un editor de programas en BASIC para este tipo de calculadoras?

compsystems 04-12-2014 22:06:27

Estoy muy entusiasmado con DELPHI, el siguiente emulador de la calculadora PB2000 están escritos en este lenguaje

www .pisi .com .pl /piotr433/pb2000ee.htm

alquimista 04-12-2014 22:35:54

Buen trabajo la abako.
Hay muchas cosas que aparecen que se pueden agregar mediante funciones de usuario.
El interfaz de CalcuFP es muy mejorable. POr supuesto...
Lo del lenguaje de programación aquí lo proporciona el interprete de las jedi.

En las funciones de usuario se puede obtener la potencia que buscais..

Por ejemplo

Dos funciones de usuario sencillas que he creado ahora para probar
Porcen(100,20)-> 20 % de la cantidad dada 100=20
PorcenA(100,20)-> Suma a 100 el 20 de 100=120
Los scripts son:
Código Delphi [-]
Porcen(valor,cant) begin    result:= (valor*cant)div 100;//expresion end;
Código Delphi [-]
PorcenA(valor,cant) begin     result:= Porcen(valor,cant)+valor;//expresion end;
Como se ve los scripts no son de una dificultad elevada..

Si se crease un repositorio de Formulas en algun sitio se podría crear una biblioteca por temas

Lo interesante es poder utilizar funciones que devuelvan texto
Por ejemplo
Cita:

Función
- Comres(499)->Devuelve el valor comercial de una resistencia que se aproxime a 499
el valor devuelto es: 470 Ohmios o 510 Ohmios
Indica que el valor comercial por debajo de 499 es 470 Ohmios y el superior es 510 Ohmios
- Colres(470)-> devuelve los colores de la resistencia de 470 Ohmios y varias tolerancias
470=Amarillo, Morado, Marrón, Tol +-[1%-Marrón, 2% Rojo, 5% Oro, 10% Plata]
Cita:

EstTrianCpx('3+2j' ,'2+3j' ,'3+2j' ) -> Convierte de circuito estrella a triángulo en forma compleja. (electrónica corriente alterna)
Z12=(7 + 8j), Z23=(7 + 8j), Z31=(9.53846153846154 + 4.69230769230769j)
En cálculos Pulsar Ctrl+espacio y aparecen aparte de funciones delphi conocidas todas las que están definidas en CalcuFp y constantes que se pueden utilizar.

Ahora que he desempolvado el source he hecho cambios que sugirió dec para guardar en las carpetas de usuario y ya se utiliza .3 en vez de 0.3

alquimista 04-12-2014 22:45:23

Para compsystems
Enlace el alquimista, al final de la página web
http://www.oocities.org/timessquare/...utilidades.htm

... echale un vistazo y veras casi todo lo oculto de la casio Fx-850P (83 páginas) e incluso hice una fuente truetype con los caracteres chinos de la calculadora

Saludos

alquimista 29-12-2014 19:04:03

Muy buenas.
última versión 0.95beta con código fuente.

Añadido a la calculadora tabla periodica de elementos, generador codigos QR
Y corregidos unos pocos errores

Permite no usar el cero (0.2=.2)
Se ha añadido una función de usuario para hacer las ecuaciones ax2+bx+c=0

Desde aquí tambien desear a todos los del Club Delphi

FELIZ AÑO NUEVO 2015

Un saludo


La franja horaria es GMT +2. Ahora son las 15:02:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi