Download Funciones y Variables

Document related concepts

Math.h wikipedia , lookup

Joy (lenguaje de programación) wikipedia , lookup

Modelado molecular wikipedia , lookup

Null (SQL) wikipedia , lookup

Operador wikipedia , lookup

Transcript
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
Funciones
Evolución
y
Variables
con
Variables Internas
Funciones Internas
Funciones Estándar
Funciones propias de Evolución
Funciones definidas por los usuarios
Variables internas
Las variables internas no se pueden modificar pero si se pueden utilizar para definir
las ecuaciones del modelo. Si se trata de crear un elemento del modelo con alguno
de estos nombres se producirá un mensaje de error.
1. TRUE – Constante booleana Verdadera
2. FALSE – Constante booleana Falsa
3. PI - número PI (3.14159...) – Constante.
4. LN2 - ln(2) – Constante.
5. T – Tiempo de la simulación.
6. DT – Paso de la simulación.
7. VINICIAL – Valor Inicial de la simulación.
8. VFINAL – Valor Final de la simulación.
9. NITERACION – Número de la iteración en que va la simulación.
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
Funciones internas
Existen 2 grupos de funciones, las funciones estándar de los compiladores
modernos y las funciones que son propias de Evolución 3.5.
Funciones Estándar
Dentro de las funciones estándar tenemos 7 grupos:
Funciones Aleatorias
Este grupo contiene las funciones que dependen de un generador de números
aleatorios. Las llamadas sucesivas a estas funciones producen resultados aleatorios
de acuerdo a una función de probabilidad.
1. EXPRND(Media) – Números aleatorios distribuidos exponencialmente.
2. NORMAL(Media, Desviación) - Números aleatorios distribuidos normalmente.
3. RANDOM(Min, Máx) - Números aleatorios distribuidos uniformemente en un
intervalo.
Funciones de Conversión
Este grupo contiene funciones que convierten un valor de un tipo en otro.
1. DEGTORAD(ángulo) - Convierte de grados sexagesimales a radianes.
2. DEGTOGRAD(ángulo) - Convierte de grados sexagesimales a gradientes.
3. GRADTODEG(ángulo) - Convierte de gradientes a grados sexagesimales.
4. GRADTORAD(ángulo) - Convierte de gradientes a radianes.
5. RADTODEG(ángulo) - Convierte de radianes a grados sexagesimales.
6. RADTOGRAD(ángulo) - Convierte de radianes a gradientes.
7. PRED(X) - Convierte un número en el entero anterior más cercano.
8. SUC(X) - Convierte un número en el entero siguiente más cercano.
9. ROUND(X) - Convierte un número en el entero más cercano.
10. PCT(X) - Convierte un número en un porcentaje (divide por 100).
11. INVPCT(X) – Convierte un porcentaje en un número (multiplica por 100).
12. BOOL(X) – Convierte el valor X en un boleano. Si x > 0 devuelve TRUE (1)
de lo contrario devuelve FALSE (0).
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
13. ABS(X) – Valor absoluto de X.
14. INT(X) - Extraer la parte entera.
15. FRAC(X) - Extraer parte fraccional.
16. SIGN(X) – Retorna 1 para X>0, 0 para X = 0 y -1 para X<0.
Funciones Especiales
Este grupo contiene funciones que producen una salida predefinida utilizando
implícitamente el tiempo de simulación actual como una señal de entrada.
1. PULSE – Pulso periódico.
2. STEP(Altura, TiempoPaso, T) - Función paso.
3. RAMPA(Pendiente, Primero) - Función lineal rampa.
Funciones Lógicas
Este grupo contiene funciones que manipulan valores lógicos o valores de verdad.
Esto incluye a las funciones que utilizan los valores lógicos como parámetros y a las
que retornan un valor lógico como resultado. Evolución 3.5 no trata a los valores
lógicos como a un tipo de datos separado, sino que utiliza los números negativos y
el cero para representar el valor lógico FALSO y los números positivos para
representar el valor lógico VERDADERO.
Funciones Lógicas que utilizan valores lógicos o booleanos:
1. IF(X, Y, Z) - IF(X,Y,Z) si X<0 entonces se retorna Y sino se retorna Z.
2. PULSE IF – Pulso condicional.
3. NOT(Condición) - Negación lógica.
4. AND(Condición) – Y lógico (conjunción).
5. OR(Condición) – O lógico inclusivo.
6. XOR(Condición) – O lógico exclusivo.
Funciones Lógicas que producen valores lógicos o booleanos como resultado:
1. <
Menor que.
2. <=
Menor o Igual que.
3. >
Mayor que.
4. >=
Mayor o Igual que.
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
5. =
Igual que.
6. <>
Diferente que.
7. AND(Condicion1, Condicion2 ... CondicionN) - Y lógico (conjunción).
8. BOOL - Convierte un valor en boleano (0 o 1).
9. FALSE - La constante 0 que representa falso.
10. NOT - Negación lógica.
11. OR(Condicion1, Condicion2 ... CondicionN) - O lógico inclusivo.
12. TRUE - La constante 1 que representa verdadero.
13. XOR(Condicion1, Condicion2 ... CondicionN) - O lógico exclusivo.
Funciones Matemáticas
Las funciones matemáticas son aquellas que realizan cálculos matemáticos. Se
pueden dividir en operadores matemáticos y funciones propiamente dichas. Los
operadores matemáticos se clasifican en operadores unarios y operadores binarios.
Operadores matemáticos:
1. +
Adición y Más unario
2. –
Substracción y Menos unario
3. *
Multiplicación
4. /
División
Funciones matemáticas:
1. SQRT(X) – Raíz cuadrada.
2. EXP(X) – Exponente.
3. LN(X) – Logaritmo natural.
4. LG(X) – Logaritmo decimal.
5. SQR(X) - Cuadrado ó X * X.
6. CUBE(X) – Cubo ó X * X * X.
7. POW(X, Y) - Power(base,exp) ó X^Y.
8. CHS - chs(arg) = -arg, cambia el signo.
9. SUM(X, Y,..) – Devuelve la suma de todos los argumentos. El número de
parámetros no tiene límite.
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
10. PROD(X, Y,..) - Productoria de los parámetros. El número de parámetros no
tiene límite.
11. FACT(X) – Función factorial X!=X*(X-1)*(X-2)*...*1
12. BINOM(N, K) – Coeficiente binomial BINOM(N, K)=N!/(K!*(N-K)!).
13. MOD(X,Y) – Retorna el residuo obtenido de una división entera entre X y Y.
Funciones Trigonométricas
1. SIN(X) – Seno.
2. COS(X) – Coseno.
3. TAN(X) – Tangente.
4. COTAN(X) – Cotangente.
5. ATAN(X) - Arc Tangente.
6. ACOS(X) - Arc Coseno.
7. ASIN(X) - Arc Seno.
8. COSH(X) – Coseno Hiperbólico.
9. SINH(X) – Seno Hiperbólico.
10. TANH(X) - Tangente Hiperbólica.
11. ACOSH(X) - Arc – Coseno Hiperbólico.
12. ASINH(X) - Arc – Seno –Hiperbólico.
13. ATANH(X) - Arc - Tangente Hiperbólica.
Funciones Misceláneas
1. MIN(X, Y,..) – Retorna el menor de los parámetros. El número de parámetros
no tiene límite.
2. MAX(X, Y,..) - Retorna el mayor de los parámetros. El número de parámetros
no tiene límite.
Funciones propias de Evolución
1. INTLINEAL(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación lineal. Sólo es
válida para tablas.
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
2. INTSPLINE(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación polinomial.
Sólo es válida para tablas.
3. INTPASO(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación horizontal. Sólo
es válida para tablas.
4. RETARDO(fuente de datos, tiempo de ajuste, orden, valor inicial) - Sólo es
válida para Retardos.
5. SUMARETARDO(Retardo) – Devuelve el valor de la suma de los n niveles
dentro del retardo especificado.
Funciones definidas por los usuarios
La versión actual de Evolución cuenta con más de 65 funciones incluidas en el
paquete básico, además de los signos de operaciones y de condiciones.
Para dar mayor robustez al software, Evolución permite agregar nuevas funciones
desarrolladas por el usuario y que permite que cada usuario cree su propia
biblioteca de funciones que haga más cómodo la creación de modelos.
Esto es posible a través de una Biblioteca de Vínculos Dinámicos (DLL),
implementadas en cualquier lenguaje de programación de alto nivel como C++,
Visual C++, Visual Basic, Delphi, etc.
Para implementar una nueva función que funcione en Evolución 3.5 siga los
siguientes pasos:
Cree la Biblioteca: Para ello usted debe usar un lenguaje de programación de alto
nivel como los especificados anteriormente.
Si usa Delphi 6.0 siga los siguientes pasos para la creación de una biblioteca de
enlace dinámico:
1. Ejecute el programa Delphi 6.0.
2. En el menú Archivo (File) seleccione el ítem Nuevo (New...), ejecute la opción
otros (Other...) y seleccione el ícono:
3. Cree sus funciones usando las directivas correspondientes de Delphi 6.0 y con el
siguiente formato:
Function miFuncion(Parametros: array of Extended):Extended;
Begin
<Cuerpo de la Función>
End;
4. Use la directiva Exports para indicar cuales de las funciones implementadas
pueden ser usadas por otros programas, así:
Exports miFuncion;
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
5. Guarde: Ctrl + S ó Archivo/Guardar.
6. Compile la biblioteca: ctrl. + F9 ó Proyecto/Compilar.
7. Usted necesitara el archivo compilado (.dll), que se guarda en la misma
dirección donde guardó el archivo del proyecto Delphi.
El siguiente ejemplo muestra como debe quedar su librería:
library Prueba;
uses
SysUtils,
Classes;
{$R *.RES}
Function Factorial(Parametros: array of Extended):Extended;
Var i:integer;
begin
Result:=1;
for i := 0 to Round(Parametros[0]) do
Result:=Result*i;
end;
exports factorial;
begin
end.
Es importante que su librería reciba los parámetros aquí especificados y devuelva
un valor de tipo extended o un dato numérico de diez bytes.
Agregue la función en Evolución, para ello utilice la opción “Agregar Funciones” del
menú archivo de Evolución.
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
donde:
Archivo fuente: Especifica la ruta donde se encuentra el archivo físico de la
biblioteca dinámica por ejemplo ‘C:\Librerias\prueba.dll’
Nombre de la Función: Especifica el nombre de la función que usted le colocó en la
biblioteca por ejemplo ‘Factorial’, es importante que el nombre de su función no
exceda los diez caracteres y que no use caracteres especiales. Además debe tener
en cuentas las mayúsculas.
Descripción: Es el valor que se desea mostrar en Evolución al momento de mostrar
la función, así si su descripción es ‘(Valor)’ Evolución mostrara en el editor de
elementos ‘Factorial (Valor)’
No de Parámetros: Especifica el número de parámetros que recibe su función, si su
función no recibe un numero de parámetros fijo, es decir, pueden ser dos o tres o
infinitos, usted debe colocar cero (0) en esta casilla.
LISTO, Ahora sus funciones quedaron agregadas a la lista de funciones del editor de
elementos de Evolución 3.5.