Visual Basic - Ayuda Con Sub

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda Con Sub

Publicado por MecanicoWeb (19 intervenciones) el 15/06/2005 01:05:21
De antemano gracias por su ayuda y su tiempo.

Espero les parezca interesante y me ayuden, bueno el problema es el siguiente:

Necesito crear una base de datos (Bueno cualquier otra solucion se les agradece) mas o menos asi:

T K V Pr ... ......
100 0.32 0.15 0.7
200 0.35 0.17 0.78
300 0.43 0.21 0.81

En mi aplicacion el valor de entrada debe ser T, y necesito que mostrar el valor correspondiente de K, V, Pr ... para el valor de T introducido ,es sencillo cuando es uno de los valores de la tabla, pero el detalle esta cuando la T es un valor intermedio por ejemplo 180, para ese caso lo que quiero es un procedimiento que realize una interpolacion lineal, es decir:

K= ((K2 - K1)/(T2 - T1))(T - T1)+K1

Donde T1 y T2 son los valores entre los cuales esta T (para T=180, T1=100 y T2=200) , K1 y K2 son los valores de K correspondientes a T1 y T2.

Esta tabla es de propiedades de algunas sustancias en funcion de la temperatura, por lo que me gustaria una solucion orientada hacia una base de datos, de manera que el usuario pueda ingresar propiedades de otras sustancias.

Yo tengo una solucion pero es demasiado laboriosa ya que tengo que hacerlo con muchas tablas (Se me olvidaba aclarar que estoy aprendiendo VB6), por eso recurri a este for esperando de su ayuda.

Muchas Gracias...

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Con Sub

Publicado por César Augusto (158 intervenciones) el 15/06/2005 02:15:14
No sé si sabes utilizar SQL pero se me ocurre hacer lo siguiente

Select * from tabla where T=180

si te devuelve un EOF quiere decir que no existe el valor y debes hacer la interpolacion en ese caso tendrias que ejecutar el siguiente SQL

Select * from tabla where T<180 order by T desc

Con esto obtendrías una serie de valores T pero ordenados de la siguiente manera:
100
0
-100

de tal manera que tu buscas el 100 para la interpolacion que es el mayor de los menores. El complemento sería

Select * from tabla where T>180 order by T asc

donde obtendrias los siguientes valores:
200
300
400

y tu ocupas el 200 que es el primero de la lista, solo debes considerar ademas el caso en que se introduzca una T menor que la T ma spequeña almacenada o una T mayoor que la T mas grande almacenada

Espero te sea de utilidad si me necesitas estoy en [email protected] por MSN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Con Sub

Publicado por MecanicoWeb (19 intervenciones) el 16/06/2005 17:58:36
Gracias por tu ayuda, pero no se SQL, bueno apenas se manejar una base de datos ADO, te digo lo que pude entender de lo que me dijiste:

Primero busco en la tabla el valor de T .

Si no existe busco los valores menores a T y loos ordeno para seleccionar el mayor valor de los menores a T.

Luego el mismo procedimiento para los valores mayores a T, ordenandolos para seleccionar el menor valor de los mayores a T.

Al conocer los valores entre los cuales esta T procedo a hacer la interpolacion.

Lo que no entiendo muy bien es lo del orden pero tengo una idea


Voy a estudiar un poco mas manejo de bases de datos con ADO, porque si entendi bien creo que deberia poder hacerlo aunque me cueste un poco.

Muchas gracias por tu ayuda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar