FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema para generar vector a partir de maskedit y combobox
Hola buen día, soy usuario nuevo en el foro y vengo a pedir ayuda y orientación para resolver un problema muy básico al generar un vector a partir de valores ingresados en dos maskedit y un combobox, soy principiante usando delphi espero su comprensión.
El objetivo del programa es generar un vector de rango 'n'. Esta 'n' está definida por el rango existente entre el MaskEdit1 y el MaskEdit2. Por ejemplo, si el maskedit1 tiene como texto '0' y el maskedit2 tiene como texto '10', el rango será 10, que resulta de la resta en entero de 10 - 0, strtoint(maskedit2.text) - strtoint(maskedit1.text). La longitud del vector se determina con el valor del combobox, los valores posibles pueden ser 0.1, 0.2, 0.5 o 1. Esto quiere decir que si en el combobox se selecciona 0.2 cada posición del vector aumentará 0.2. Para el ejemplo de 0 a 10, el vector tendrá una longitud de 50, resultante de 0.2/10, algo así es lo deseado: [0 0.2 0.4 0.6 .... 9.6 9.8 10] El problema es que justo en las posiciones 23 a 27 del vector resultan valores con exponenciales muy pequeños cercanos a cero, al usar la función trunc() se vuelven cero. Entre la posición cero y la veintidos todo bien, y partir de la 28 todo bien. Para comprobar, escribo cada posición del vector en una línea de un memo. El evento se genera al presionar un botón. Aquí el código:
De antemano muchas gracias por su ayuda y su tiempo. Última edición por roman fecha: 16-10-2015 a las 04:33:56. Razón: cerrar correctamente la etiqueta delphi |
#2
|
|||
|
|||
olvidé mencionar:
VE1 : array of Real; RE1 : Integer; |
#3
|
||||
|
||||
Hola MoeHoward, bienvenido a los foros de Club Delphi
Y como acostumbramos con los ingresantes, te invitamos a que leas nuestra guía de estilo. Si no interpreté mal la consigna, tu código está bién encaminado. Pero veo algunos detalles:
Se puede optimizar un poco, El control de ingreso no es muy exaustivo para no complicar el código (tal vez te convendría usar SpinEdits en lugar de los MaskEdits). Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
|||
|
|||
Muchas gracias ecfisa!
Ya resolví el problema, me sirvió mucho tu explicación así con detalles y con la optimización del código. El problema estaba en que me equivoqué al definir la longitud de mi vector con otra variable(RES1 en lugar de RE1), algo muy simple jeje. Gracias por todo, saludos. |
#5
|
||||
|
||||
Por cierto, yo lo primero que vi con olor es el uso del tipo Real
Yo ni sabia de la existencia de ese tipo, bueno si que estaba en Pascal, pero no sabia que venia con Delphi. Yo siempre uso Single o Double Es mas, acá se aconseja lo mismo debido a que el tipo Real esta obsoleto El Double es el mas "comun" por decirlo de una manera. Tiene balance de precision/velocidad El Single es mas rápido que el Double, pero pierde precision El Extended es el más lento pero el de mayor precision Saludos |
#6
|
|||
|
|||
Gracias, lo tomaré en cuenta ya que en el programa ocupo de un gran número de variables que son de este tipo.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Generar XML a Partir de XSD | Avellas | Internet | 3 | 02-05-2022 11:54:57 |
Generar Metadatos a partir de una consulta SQL. | Neeruu | MS SQL Server | 10 | 09-04-2014 01:02:00 |
generar un string a partir de dos celdas de un DbGrid | pablopessoa | Conexión con bases de datos | 3 | 20-10-2008 18:18:44 |
Generar fichero x.tlb a partir de x_TLB.pas | albion | Varios | 1 | 16-06-2006 13:20:51 |
generar html (tablas) a partir de query | jymy788 | Varios | 2 | 28-09-2004 10:29:36 |
|