Está en la página 1de 30

PROGRAMACIN

EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO


PROGRAMACIN EN LA TEXAS VOYAGE 200


CURSO DE TERMODINMICA II ESCUELA DE ING. QUMICA

AUTOR: CARLOS MAURICIO CELIS CORNEJO Marzo 7 de 2009


INTRODUCCIN

Una calculadora programable es una herramienta de gran utilidad para el desarrollo de


aplicaciones en ingeniera, al igual que lo es una computadora personal donde pueden usarse
distintos lenguajes de programacin como FORTRAN, C, C++, C#, Java, Visual Basic, Pascal, etc.,
con el fin de crear programas que solucionen problemas particulares o generales sobre un rea
especfica. En el campo de la ingeniera y el desarrollo de mtodos numricos el programa ms
recomendado es FORTRAN, debido a su velocidad de compilacin y ejecucin (lo que significa
mejora en cuanto al costo computacional), aunque en las ltimas versiones de compiladores para
FORTRAN puede realizarse la POO 1, no es ampliamente usado en este campo; en su lugar se
emplean lenguajes como C++, Java y C#.

Cuando de practicidad se trata, se emplea una calculadora programable la cual trae un lenguaje de
programacin caracterstico, la Texas Voyage 200 viene con un Editor de Programas el cual
permite disear software en un lenguaje muy sencillo de usar. Adems la calculadora tambin
permite la aplicacin del lenguaje ensamblador, el cual es un lenguaje de bajo nivel 2 (lo ms
prximo al lenguaje de mquina) por lo que permite la ejecucin rpida de programas. No
obstante esta gua se centra en el uso del Editor de Programas, en donde se realizan diversos
ejemplos, desde los ms sencillos hasta aplicaciones orientadas al curso.

VISUALIZACIN Y ENTORNO EN LA TEXAS VOYAGE 200

La calculadora tiene un entorno bastante agradable el cual permite interactuar con el usuario de
una manera sencilla, de modo que ste pueda obtener la mayor cantidad de informacin. Para
nuestros intereses se tienen tres entornos, HOME, PROGRAM EDITOR y PrgmIO. El entorno HOME
es el ms comn, all se efectan las funciones que dispone la calculadora, tales como Solve(),


1
POO (Programacin Orientada a Objetos): A diferencia de la programacin estructurada, sta consiste en crear Objetos y Mtodos
para disear programas de computadora. Ver referencia [9] y [10].
2
Lenguaje de bajo nivel: La palabra bajo hace referencia a que hay poca abstraccin entre el lenguaje y el hardware, lo cual indica alta
velocidad de procesamiento con el menor uso de memoria. Recuerde que un lenguaje de programacin no es mejor que otro.

1 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

rref(), cos(), sin(), (), d(), etc., ya debe serle familiar al usuario su utilizacin. El segundo entorno
de importancia es prgmIO que es el entorno donde se ejecutarn los programas que se diseen en
el entorno PROGRAM EDITOR. En primer lugar encienda la calculadora y dirjase al men de
aplicaciones (Apps), podr observar la siguiente captura:

Hay tres aplicaciones que nos sern de inters, Data


Matrix Editor, Home y Program Editor; sobre la
aplicacin Home no se har mucho nfasis. Entonces a
continuacin abra el editor de programas seleccionando
la opcin y dando Enter, se despliega la siguiente
ventana:

Seleccione New. Y se abrir otra ventana en donde debe colocar el nombre del programa con el
cual se ejecutar desde Home, coloque prgm1 o el nombre que desee y digite Enter.

A continuacin aparecer lo siguiente en pantalla:

El programa principal se disear entre las palabras reservadas Prgm y EndPrgm. Adems se
cuenta con una barra de men, F1 para herramientas de manejo como guardar, abrir, copiar,
pegar, limpiar el editor (importante mencionar que no se cuenta con la opcin deshacer); F2 para
desplegar algunos bucles de uso comn como if, when, while, for; F3 para introducir algunas
palabras reservadas para la entrada y salida de flujo de informacin; F4 para definir variables y
funciones; F5 para buscar alguna palabra en el programa (cuando los programas son grandes y
poseen ms de 100 o 300 lneas, muy comn en el diseo de aplicaciones complejas); y F6
contiene algunas otras aplicaciones de visualizacin y modo.

2 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

EJEMPLO 1 SUMATORIA

Empezaremos entonces con un ejemplo sencillo, un programa que al introducrsele una funcin
f(x), ejecute una sumatoria de trminos de la forma de la funcin indicada por el usuario, as:
!

!(!) = ! 1 + ! 2 + ! 3 + + !(!)
!!!

Solucin:

El algoritmo de nuestro problema es el siguiente:

Como informacin de entrada se lee, func (una funcin de


x), x que es el valor inicial desde donde empieza la
sumatoria, y n que es el ltimo valor a reemplazar en la
sumatoria. El siguiente paso es introducir esa informacin a
un subprograma/programa que desarrolle la sumatoria y
finalmente el valor almacenarlo en una variable de nombre
sumatoria e imprimir dicho valor para que el usuario lo
observe.

Nuestro objeto de inters es disear el subprograma o el


programa que al ejecutarse desarrolle la sumatoria indicada
por el usuario, con los datos de entrada suministrados.
Entonces dirjase al editor de programas y cree un nuevo
programa con el nombre sumat (importante, el nombre del
programa no debe contener ms de 8 caracteres), enseguida
se abrir la siguiente ventana:

Entonces digite el siguiente programa (La flecha de asignacin es la tecla STO):

:sumat()
:Prgm
:ClrIO

3 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

:@ClrIO limpia la pantalla


:@DelVar elimina los datos almacenados en las variables
:DelVar xn,n,funci,i,suma,x
:
:@Se crea el cuadro de lectura
:Dialog
: Title Datos de entrada
: Request f(x)=,funci
: Request valor inicial, xn
: Request valor final,n
:EndDlog
:
:@expr() convierte los valores de string a numericos
:expr(funci)funci
:expr(xn)xn
:expr(n)n
:
:@ciclo for para la sumatoria
:0suma
:for i,xn,n
: ix
: funci+sumasuma
:EndFor
:
:@imprime el resultado
:Disp el resultado es
:Disp suma
:
:EndPrgm

La palabra reservada ClrIO se encarga de limpiar la pantalla del entorno prgmIO donde se
ejecutan los programas, esto con puro fin esttico. La siguiente declaracin DelVar
xn,n,funci elimina las cantidades almacenadas en las variables xn, n y funci para que llegado
el caso no ocurra un error de dimensin, el cual sucede cuando se emplea por ejemplo una matriz
donde debera ir un nico entero. Dialog EndDlog permite visualizar una pantalla para que
el usuario introduzca los valores ms fcilmente que si se hubiese empleado la palabra reservada
Input la cual pedira dato por dato para que el usuario lo introdujera en el entorno de prgmIO.
Title permite visualizar un ttulo en el cuadro de dilogo, el ttulo debe ponerse en frente de la
palabra entre comillas dobles. Request es la palabra reservada que en el cuadro de dilogo
muestra una frase (puesta entre comillas dobles) y un recuadro para asignar un valor a la variable
(que se coloca despus de la coma) as: Request frase,fr.

Hasta este punto el programa no ha realizado ningn clculo, tan slo ha recogido la informacin
suministrada por el usuario y la ha almacenado en las variables xn, n y funci. El lector debi haber
notado ya que a la variable funci se le puede agregar cualquier clase de string (es una clase que
permite almacenar cadenas de caracteres, por ejemplo Hola sera un tipo de dato de la clase
string) por ende se le puede introducir funciones cualesquiera de x.

4 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Las frases escritas despus del smbolo @ indican en el programa, que son comentarios del
programador; agregar comentarios en un programa facilita su lectura y an ms despus de haber
pasado un tiempo prolongado de haberlo elaborado. Otro tip sobre el diseo de software es
colocar nombres caractersticos a las variables, por ejemplo a la variable que almacena la funcin
introducida por el usuario, se le asign el nombre funci. Una vez el usuario ha asignado los
valores a las variables xn (valor inferior de la sumatoria), n (valor superior de la sumatoria) y
funci (la variable que almacena la funcin de x, f(x)), se inicializa un acumulador (Una variable
real) suma en 0 para ir guardando el valor de cada paso de la sumatoria.

El bucle for EndFor (para) requiere cierta informacin para poder ejecutarse, necesita una
variable que se comporte como contador, adems un valor inicial, un valor final y un paso (step).
La informacin del ciclo for debe suministrarse de la siguiente manera: for var, inicial,
final[,paso] EndFor, as en nuestro algoritmo la variable es i el valor inicial es xn, el
valor final es n, y el paso no se coloca pues por omisin el compilador asume 1. Lo que va dentro
del bucle for es igualar el valor del contador ix (dado que la funcin que el usuario introduce
en la variable funci es una funcin de x) y automticamente una vez la variable x tenga un valor
constante, se calcula el valor numrico de la funcin funci es por eso que se guarda ese valor en
el acumulador suma y se repite el ciclo (n xn) veces.

Por ltimo, el valor de la sumatoria se encuentra contenido en la variable acumuladora suma, por
lo que dicha variable ser el valor a imprimir para que el usuario la vea, para este fin se tiene la
palabra reservada disp la cual despliega en pantalla el valor que se asigne justo enfrente, como
en el algoritmo, disp suma despliega el valor del acumulador en la pantalla prgmIO. Para
ejecutar el programa digite en HOME el nombre del programa, sumat() y luego d enter.

Hay que mencionar algo importante, el ejemplo se hace con la finalidad de explicar de la manera
ms sencilla el uso de ciertas instrucciones, sin embargo no tiene ningn uso prctico; la
calculadora ya trae una funcin ms eficiente para realizar sumatorias. El lector debe tener
claridad de que no tiene ningn sentido redisear el software que ya est hecho.

ASIGNACIN 1

Debe ser de inters para el lector conocer las distintas palabras reservadas de flujo I/O
(Input/Output) para manejar el flujo de informacin de entrada y salida del programa y adems
conocer la aplicacin de otros bucles de importancia como los son el ciclo while y el condicional if,
por ende realice el siguiente programa y obtenga usted sus propias conclusiones.

:prgm1()
:Prgm
:ClrIO
:@ClrIO limpia la pantalla
:@DelVar elimina los datos almacenados en las variables
:DelVar xn,n,funci,i,suma,x

5 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

:
:Disp Introduzca la funcion
:input funci
:Disp Valor inicial:input xn
:Disp Valor final:input n
:
:@expr() convierte los valores de string a numericos
:expr(funci)funci
:expr(xn)xn
:expr(n)n
:
:@ciclo for para la sumatoria
:0suma
:xni
:While i n
: ix
: funci+sumasuma
: i+1i
:EndWhile
:
:@imprime el resultado usando disp
:Disp el resultado es
:Disp suma
:
:@la calculadora se pausa, debe digitar enter para continuar
:pause
:
:@imprime el resultado usando Output
:@Output fila, columna, variable
:Output 50,10,la respuesta es
:Output 60,10,suma
:
:pause
:
:@imprime el resultado usando un cuadro de dialogo
:@string() convierte a cadena la expresion suma
:string(suma)suma
:Dialog
: Title RESPUESTA
: Text el resultado es
: Text suma
:EndDlog
:
:EndPrgm

EJEMPLO 2 USO Y APLIACIN DEL CONDICIONAL: IF THEN

6 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Ahora se proceder a efectuar una aplicacin ms sencilla que la mostrada en el ejemplo 1, para
que el lector visualice la importancia de un condicional (if). Para ilustrar esta funcin realizaremos
un juego sencillo, un juego de dados.

JUEGO DE DADOS: El juego consistir en arrojar un solo dado, si sale 6 al jugador se le triplica la
apuesta inicial, si cae impar el jugador pierde todo, si cae par (exceptuando 6) no pasa nada.

Solucin:

Para solucionar este problema primero se debe plantear un algoritmo, pero el lector se preguntar
no sera mejor desarrollar de buenas a primeras el cdigo fuente 1? La respuesta es NO. Esto es
una mala costumbre, siempre es mejor elaborar un esquema claro en pseudocdigo 2 pero
grficamente con diagramas de flujo, esto facilita el diseo del software pues se tiene una idea
completa y no se parte de la nada para crear fragmentos de ideas. Sin embargo cuando ya se
adquiere suficiente prctica sobre un lenguaje de programacin, se torna fcilmente asimilable, de
modo que se adquiere la suficiente fluidez para omitir el diseo de diagramas de flujo (siempre y
cuando los programas no sean enormes). Si el lector desea profundizar en la elaboracin de
algoritmos y diagramas de flujo se recomienda la referencia [8]. Existe un programa de
computadora muy til al momento de desarrollar cualquier software y verificar que un diagrama
de flujo es correcto (no slo para elaborarlos como en Microsoft Visio), este programa es de libre
acceso y su nombre es DFD [4] y [5]. Fue desarrollado por la Universadad del Magdalena y es un
intrprete de algoritmos con una interfaz visual muy sencilla de utilizar la cual lo hace casi
intuitivo, adems cuenta con una ayuda muy completa para garantizar la aprehensin de la mayor
cantidad de conceptos posibles; en este software se desarroll el diagrama de flujo que se
muestra a continuacin. Se plantea entonces el algoritmo:

1. Leer apuesta
2. Generar un nmero aleatorio entre 1 y 6
3. Guardar dicho nmero aleatorio en una variable, x
4. Mostrarle al usuario cunto fue su tiro
5. Preguntar: x = 6?
a. Si: El jugador Gana!, Apuesta = 3*Apuesta Fin del programa
b. No (Else): Preguntar: 2*(parte entera[x/2]) = x?
i. Si: Par! Vuelva a intentarlo! Fin del programa
ii. No (Else): Impar! Pierde todo! Fin del programa
!
Si, 2 = ! entonces el nmero es par, por ejemplo observe:
!
X = 7 (a priori se sabe que 7 es impar), X/2 = 3.5, la parte entera de 3.5 es 3.
! !
2 =2 = 6 7, por ende x no es un nmero par.
! !

1
Cdigo Fuente: en informtica y desarrollo de software, este trmino hace referencia al conjunto de lneas de texto que son
instrucciones en un determinado lenguaje de programacin.
2
Pseudocdigo: Es un lenguaje ficticio, es el que usualmente se emplea para elaborar los algoritmos; aunque no es la idea, suele
emplearse este trmino tambin para describir los algoritmos hechos con diagramas de flujo.

7 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Observe el diagrama de flujo (Hecho en DFD):

La funcin RANDOM(x) genera un nmero aleatorio en el intervalo [0, x 1]. Debido a que un
dado no arroja 0, debemos sumar 1 al resultado, de este modo el intervalo queda [1, x]. En la

8 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

calculadora la funcin es rand(x) y arroja un nmero aleatorio entre [1, n], es decir, se ahorra
este breve anlisis. La funcin TRUNC(x) saca la parte entera de un nmero, as, TRUNC(3.5)=3. En
la calculadora la funcin es iPart(x). Una vez claro el algoritmo se plantea el cdigo fuente en
el lenguaje del Editor de Programas:

:dice()
:Prgm
:
:ClrIO
:DelVar tiro,apta,k,y
:
:Request Apuesta,apta
:expr(apta)apta
:
:rand(6)tiro
:
:tiroy
:string(y)y
:Dialog
:Title RESULTADO
:Text Su tiro fue
:Text y
:EndDlog
:
:If tiro=6 Then
: Disp ganador, su monto es de
: Disp apta*3
:Else
: tiro/2k
: 2*iPart(k)k
: if tiro=k Then
: Disp vuelva a intentarlo
: Else
: 0apta
: Disp Pierde!
: EndIf
:EndIf
:
:EndPrgm

GENERACIN DE NMEROS PSEUDOALEATORIOS

La idea no es profundizar mucho en la teora de la generacin de nmeros pseudoaleatorios, sino


ms bien en sus aplicaciones, ya que la teora es compleja y requiere de bases slidas en
probabilidad y estadstica para poder abordarla. Si el lector est interesado en indagar esta
temtica puede remitirse a las referencias [11-13]. La aplicabilidad de dichos nmeros aleatorios
es muy importante y es el desarrollo de algoritmos tipo Monte Carlo, algoritmos genticos,
algoritmos evolutivos, y de ms aplicaciones en el campo de la optimizacin. Como se observ en

9 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

el ejemplo 2, se generaban nmeros pseudoaleatorios para simular el lanzamiento de un dado, lo


cual es una aplicacin muy sencilla pero sirve de ejemplo para ilustrar el modo de empleo. Sin
embargo es importante tener en cuenta que la generacin de nmeros aleatorios por
computadora se basa en un algoritmo determinista 1 y genera nmeros de acuerdo a una semilla
(seed) o valor inicial x0 , de este modo puede decirse que aunque estadsticamente no tenga
ningn patrn, puede llegar a predecirse la secuencia de nmeros generados. Para evitar la
posible prediccin de los nmeros pseudoaleatorios generados se plantea cambiar la semilla
(seed) de la cul parte la generacin de dichos nmeros, para ello la calculadora trae la funcin
RandSeed la cual nos permite efectuar el cambio de semilla colocando el valor inicial al frente. Lo
que generalmente se hace es obtener un valor numrico que constantemente este cambiando,
como por ejemplo la hora, se extrae dicho valor y se emplea para cambiar el seed; para ello en la
calculadora se utiliza la instruccin startTmr()la cual arroja un valor numrico de la hora y
fecha desde que se inicializ el reloj:

:startTmr x
:RandSeed x
:rand(6) tiro

Lo que se observa es que primero se genera un nmero aleatorio entre [1,1000] y ste se
almacena en la variable x, la cual se usa como semilla para crear el nmero aleatorio de 1 a 6 que
se usar para almacenar en la variable tiro.

ASIGNACIN 2

Corrija el cdigo fuente del ejemplo 2, agregando el cambio de seed propuesto en la seccin
anterior. Adems, para imprimir el resultado cambie la palabra reservada Disp y utilice en su
lugar Output o un cuadro de dilogo Dialog EndDlog.

EJEMPLO 3 USO DE MATRICES: DATA MATRIX EDITOR

Para ilustrar de manera prctica el empleo de matrices en el Editor de Programas, se plantea un


problema sencillo; evaluar una funcin y su derivada en n puntos distintos y almacenarlos en una
tabla, la tabla ser la matriz que deseamos obtener.

Solucin:

Se deja de tarea para el lector elaborar el diagrama de flujo que desarrolle dicho problema, y se

1
Algoritmo determinista: Es un algoritmo que en cierto modo es predecible, ya que dada una entrada produce la misma salida.

10 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

proceder a efectuar el cdigo fuente con una subsecuente explicacin:

:dice()
:Prgm
:
:ClrIO
:DelVar funci,n,tabla,dato,x,deriv,matriz
:
:Dialog
: Title VALORES DE ENTRADA
: Request f(x)=,funci
: Request # de evaluaciones,n
:EndDlog
:
:expr(funci)funci
:expr(n)n
:
:@calcula la derivada de la funcion(x) funci
:d(funci,x)deriv
:
:@newMat(fila,column) asigna una matriz() a una variable
:newMat(n+1,3)tabla
:
:@se colocan los titulos de las columnas
:puntostabla[1,1]
:f(x)tabla[1,2]
:f(x)tabla[1,3]
:
:@Ciclo for, es el nucleo del programa
:For i,1,n
: Disp coloque el valor #:
: Disp i
: Input dato
: datotabla[i+1,1]
: datox
: funcitabla[i+1,2]
: derivtabla[i+1,3]
:EndFor
:
:DelVar matriz
:@newData hace que la nueva variable sea la actual de Data/Matrix
Editor
:NewData matriz,tabla
:
:setMode(Split 1 App,Data/Matrix Editor)
:
:DelVar funci,n,table,dato,x,deriv
:
:EndPrgm

11 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

La palabra reservada para inicializar una matriz es newMat(fila,column) la cual debe


asignarse a una variable que contendr la matriz. Para manipular un elemento de la matriz se
coloca el nombre de la matriz y en seguida las coordenadas en parntesis cuadrado; como en el
ejemplo se inicializ la matriz newMat(n,3)tabla por ende (suponiendo que n es igual a 5)
podemos utilizar el elemento tabla[1,3] y operarlo, as como el elemento
tabla[i,3]donde i ! {0}, i puede ser como en el ejemplo un contador de un ciclo. Otro
aspecto que es importante resaltar del cdigo fuente es la instruccin NewData la cual genera un
nuevo tipo de Dato que se ejecutar en la aplicacin Data/Matrix Editor, la variable que se cree
ser la que se muestre en pantalla. La instruccin setMode(Split 1
App,Data/Matrix Editor) ejecuta en pantalla la aplicacin Data/Matrix Editor donde
Split 1 App es un modo de la orden setMode() y Data/Matrix Editor representa el
estado del modo. Si el lector desea, puede observar ms aplicaciones de la instruccin
setMode() yendo a las referencias [1] y [2], sin embargo se enlistarn a continuacin las
aplicaciones extradas directamente de dichas referencias:

Modo Estado del modo


Graph Function, Parametric, Polar, Sequence, 3D, Diff
Equations
Display Digits Fix 1 , , Fix12, Float 1, , Float 12
Angle Radian, Degree, Gradian
Exponential Format Normal, Scientific, Engineering
Complex Format Real, Rectangular, Polar
Vector Format Rectangular, Cylindrical, Spherical
Pretty Print Off, On
Split Screen Full, Top-Bottom, Left-Right
Split 1 App Home, Y=Editor, Window Editor, Graph, Table,
Data/Matrix Editor, Program Editor, Text Editor,
Numeric Solver, Apl flash
Split 2 App Home, Y=Editor, Window Editor, Graph, Table,
Data/Matrix Editor, Program Editor, Text Editor,
Numeric Solver, Apl flash
Number of Graphs 1, 2
Graph2 Function, Parametric, Polar, Sequence, 3D, Diff
Equations
Exact/Aprox Auto, Exact, Approximate
Base Dec, Hex, Bin
Language English, Lenguaje alternativo

ASIGNACIN 3

Haga un programa que emplee una tabla que se despliegue en la aplicacin Data/Matrix Editor, el
cual desarrolle el mtodo de punto fijo. Las columnas de la tabla deben ser:

# iteraciones x g(x) g(x) (%error)


12 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Mtodo de Punto Fijo

El mtodo de punto fijo es un mtodo numrico iterativo, utilizado para el clculo de races reales
de funciones con dominio real, cuya pendiente no sea muy inclinada. Se empieza definiendo un
punto fijo, pero qu es un punto fijo? Es un punto cualquiera p, en donde una funcin g(x)
evaluada en dicho punto es idntica al punto, es decir p = g(p). Una raz de una funcin es un
punto en el que para un valor dado de una abscisa x, la funcin genera una ordenada igual a 0, es
decir f(x) = 0. Bajo este supuesto se plantea una funcin f(x), dado que el inters es calcular una
raz de dicha funcin, se iguala la funcin a 0, f(x) = 0, pero debe expresarse la funcin como un
punto fijo, en donde f(x) = p g(x) = 0. El mtodo converge siempre y cuando !(!) < 1.

Ejemplo del mtodo:

(! !!)
Dada la funcin f(x) = ln|x| , calcule por el mtodo de punto fijo el valor de alguna raz,
(!!)(!!!)
tomando como valor inicial x0 =0.6 , con una tolerancia () de 10-4.

- Desarrollo:

En primer lugar, debemos obtener el punto fijo, una funcin g(x) = x, con f(x) = 0:

(1 2!)
! ! = !! ! = 0
(2!)(1 + !)

Despejando ln|x| y sacando exponencial (euler) a toda la ecuacin se obtiene:

(1 2!)
! ! = ! = exp
(2!)(1 + !)

Para este problema, es de inters calcular la derivada de la funcin, para ello se emplea la
instruccin de la calculadora, ! (! 1 2! /( 2! 1 + ! ) , !) y se obtiene la siguiente funcin:

! !
!! 3! !! ! !!
!! ! = ! !(!!!)
2(! + 1)! 2! !

Ya se tiene la suficiente informacin para comenzar a iterar:

- # de iteracin = 0 (i = 0)
x0 = 0.6

1 2!! !"!#$#"%&'() 1 2 0.6


!!!! = exp !! = exp = 0.90107511
2!! 1 + !! 2 0.6 1 + 0.6

!! 0.90107511 = 0.15885969 < 1 , por consiguiente el mtodo converge.

13 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

- # de iteracin = 1 (i = 1)
x1 = 0.90107511

1 2 0.90107511
!! = exp = 0.79125537
2 0.90107511 1 + 0.90107511

!! 0.79125537 = 0.26961215 < 1, por consiguiente el mtodo converge.

- # de iteracin = 2 (i = 2)
x2 = 0.79125537

1 2 0.79125537
!! = exp = 0.81424474
2 0.79125537 1 + 0.79125537

!! 0.81424474 = 0.24124661 < 1, por consiguiente el mtodo converge.

- # de iteracin = 3 (i = 3)
x3 = 0.81424474

1 2 0.81424474
!! = exp = 0.80837895
2 0.81424474 1 + 0.81424474

!! 0.80837895 = 0.24817221 < 1, por consiguiente el mtodo converge.

De este modo se sigue iterando hasta completar la siguiente tabla:

# de iteracin x g(x) g(x)


0 0.6 0.901075 -0.723519
1 0.901075 0.791255 -0.158859
2 0.791255 0.814245 -0.269612
3 0.814245 0.808379 -0.241246
4 0.808379 0.809814 -0.248722
5 0.809814 0.809459 -0.246458
6 0.809459 0.809546 -0.246881
Las iteraciones se detienen cuando gi(x) gi -1(x) < 10^-4, que es el valor de la tolerancia establecida.

Para calcular el error, debera conocerse el valor real, que en teora se determina analticamente,
sin embargo analizar dicha funcin es un trabajo tedioso y poco prctico. En la calculadora se
puede aplicar la instruccin Solve(f(x)=0,x) para encontrar la raz mediante un mtodo
numrico muy preciso que arroja un valor muy cercano al analtico con errores infinitesimales. Es
por eso que no tiene sentido alguno programar este mtodo si ya hay funciones de la calculadora
que desarrollan estas tareas, no obstante es una buena labor disear estos programas ya que se
obtiene toda la informacin que la calculadora no despliega, y adems con la ventaja de que se
conoce con certeza cul es el mtodo empleado. En este caso particular en donde no se conoce el

14 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

valor real, se dispone del ltimo valor calculado y aceptado para la tolerancia establecida y se
utiliza este valor para determinar que tan alejada est cada iteracin del mtodo; el error se
determina utilizando la siguiente expresin:

! !! ! !!
% !""#" = 100%
! !!

Donde n es el valor encontrado con una tolerancia preestablecida, e i es el valor de cada iteracin.
De este modo se calcula la siguiente tabla:

# iteracin 1 2 3 4 5 6
% error 11.30611 % 2.25947 % 0.58031 % 0.14427 % 0.03303 % 0.01082 %

Mtodo de Newton-Raphson

El mtodo de Newton-Raphson al igual que el mtodo de punto fijo, es un mtodo iterativo que
determina la raz de una funcin dada desarrollando un modelo general. A diferencia de punto fijo,
el mtodo de Newton-Raphson converge en la mayora de los casos. El mtodo se deduce por una
interpretacin geomtrica; supngase una funcin f(x), y su derivada en el punto x f(x)
(interpretndola como la tangente en el punto x):

El punto a, es un punto inicial cercano a la raz r de la funcin f(r) = 0. Como puede observarse la
derivada en el punto f(a) 0 , y emplendola puede determinarse un punto b (b es el intercepto
de la tangente con el eje x) ms cercano a la raz r. Por tanto la lnea tangente a y = f(x) en el
punto (a , f(a) ) es:

! ! ! !
= ! ! (!)
!!
15 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Reordenando:

! ! = ! ! + ! ! ! ! (!)

Se tiene que b es el intercepto con x, entonces f(x=b) = 0:

! !
!=!
! ! (!)

De modo que b es el punto de inters; se repite este proceso hasta que se llegue a un punto muy
cercano al valor de la raz, tambin se puede expresar as:

! !!
!!!! = !!
! ! (!! )

Donde i, representa la iteracin actual.

Observe el cdigo fuente:

:newtrap()
:Prgm
:
:ClrIO
:
:DelVar i,n,x0,funci,deriv,data,matriz,tol,x
:
:Dialog
: Request f(x)=,funci
: Request Valor Inicial,x0
: Request Tolerancia,tol
:EndDlog
:
:expr(funci)funci
:expr(x0)x0
:expr(tol)tol
:
:d(funci,x)deriv
:newMat(100,5)data
:
:@ la matriz data almacenar la informacin temporalmente
:
:# Iter.data[1-1]
:x data[1,2]
:f(x) data[1,3]
:f(x) data[1,4]
:f/f data[1,5]
:
:0i
:idata[2,1]
:x0x
:x0data[2,2]

16 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

:funcidata[2,3]
:derivdata[2,4]
:funci/derivdata[2,5]
:x funci/derivx0
:
:i+1i
:idata[3,1]
:x0x
:x0data[3,2]
:funcidata[3,3]
:derivdata[3,4]
:funci/derivdata[3,5]
:x funci/derivx0
:
:While abs(data[i,3] data[i+1,3]) tol
: idata[i+2,1]
: x0x
: x0data[i+2,2]
: funcidata[i+2,3]
: derivdata[i+2,4]
: funci/derivdata[i+2,5]
: x funci/derivx0
: i+1i
:EndWhile
:
:string(data[i+1,i])salida
:Dialog
: Title RESPUESTA
: Text El valor estimado es:
: Text salida
:EndDlog
:
:newData matriz,data
:setMode(Split 1 App,data/matrix editor)
:
:@no elimine la variable matriz
:DelVar i,n,x0,funci,deriv,data,tol,x
:
:EndPrgm

Este mtodo es de gran importancia ya que converge ms rpidamente que otros en


determinados casos, para ilustrar su aplicacin observe el ejemplo 4.

EJEMPLO 4 CLCULO DE LA FRACCIN DE VAPOR EN UNA MEZCLA (REF [6])

Suponga un proceso donde se conocen las composiciones de alimento a la entrada (zi) y son
conocidas las condiciones finales de presin y temperatura. Tomando 1 Kmol de alimento se
plantea el siguiente balance:
! + ! = 1 !! ! + !! ! = !!

17 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

L es la fraccin de lquido de todos los componentes, y V es la fraccin de vapor de todos los


componentes de la mezcla. Los trminos xi y yi son respectivamente las composiciones de lquido
y vapor de cada componente en la mezcla. Por tanto !!!! !! = 1 , !!!! !! = 1, para n
componentes de la mezcla. Ahora reordenando las ecuaciones anteriores se tiene:
! = 1 !, !! 1 ! + !! ! = !! !! !!! + !! ! = !!
Por definicin se tiene que:
!!
= !!
!!
El cual es conocido como coeficiente de distribucin tambin llamado Valor K. Es una medida de la
tendencia de un componente a favorecer la fase vapor, se recomienda que el lector se remita a la
referencia [7] (cap. 10). Aplicando la Ley de Raoult (xi Pisat = yi P) para un sistema ideal, el
coeficiente de distribucin resulta as:
!!!"#
= !!
!
Retomando:
!!
!! !!! + !! ! = !! 1 ! + !! ! = !!
!!
!! !! !! !!
!! = =
1 !(1 !! ) 1 + !(!! 1)
Dado que !!!! !! = 1:
! !
!! !!
!! = 1 =
1 + !(!! 1)
!!! !!!
Para xi se tiene:
! !
!!
!! = 1 =
1 + !(!! 1)
!!! !!!
! !
Y ya que, !!! !! !!! !! = 0
! ! !
!! !! !! !! (!! 1)
=0 = 0
1 + !(!! 1) 1 + !(!! 1) 1 + !(!! 1)
!!! !!! !!!

El sistema acetona(1)/acetonitrilo(2)/nitrometano(3) a 80C y 110 KPa tiene la siguiente


composicin global, !! = 0.45 !! = 0.35 !! = 0.20. Suponiendo que la Ley de Raoult resulta
apropiada para este sistema, determine L, V, xi , yi . Las presiones de las especies puras a 80C son:

!!!"# = 195.75 !"# !!!"# = 97.84 !"# !!!"# = 50.32 !"#

Solucin:

Se trabajar bajo la suposicin de que a la presin y temperatura indicadas, el sistema se


encuentra en un equilibrio lquido vapor (lo cual se puede demostrar encontrando las presiones
de burbuja y de roco del sistema, por ahora se omitir este clculo).

18 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Para empezar se calcula el coeficiente de distribucin para cada componente de la mezcla,


aplicando la ley de Raoult:

!!!"# 195.75
!! = !! = = 1.7795 !! = 0.8895 !! = 0.4575
! 110
Tomando la siguiente ecuacin y sustituyendo la informacin que ya se posee, se obtiene:
!
!! (!! 1)
= 0
1 + !(!! 1)
!!!

0.45(1.7795 1) 0.35(0.8895 1) 0.2(0.4575 1)


+ + = 0
1 + !(1.7795 1) 1 + !(0.8895 1) 1 + !(0.4575 1)

Resolver analticamente esta ecuacin resulta poco prctico y bastante tedioso, por ende se
recurre a herramientas computacionales que faciliten la ejecucin de los mtodos numricos para
resolverla. En este caso se aplicar Newton-Raphson para estimar el valor de V (la fraccin de
vapor), para ello se utiliza el programa mostrado en la seccin anterior, y se obtiene el siguiente
resultado para un x0 = 0, con una tolerancia de 10-6: V = 0.736650151701 (Con 5 iteraciones).

Por consiguiente L = 1 V = 0.263349848299

!! !!
!! = ! = 0.5088 !! = 0.3389 !! = 0.1524
1 + !(!! 1) !

Y utilizando la relacin del coeficiente de distribucin se calcula xi = (yi /ki) :

!! = 0.2859 !! = 0.3810 !! = 0.3331

Como se cumple que !!!! !! = 1 y !!!! !! = 1, se demuestra que este mtodo funciona,
independientemente de la cantidad de componentes.

ASIGNACIN 4

El proceso que se desarrolla en el ejemplo 4 se conoce como vaporizacin instantnea ideal. Con
base en el ejemplo anterior elabore un programa que tenga como valores de entrada, las
presiones de saturacin de cada componente de la mezcla, la presin del sistema, y las
composiciones globales (zi) para n componentes; que determine la fraccin de vapor, de lquido, y
las composiciones de cada componente en fase lquida (xi) y vapor (yi). Utilice el ejemplo anterior
para comprobar el programa (bajo la suposicin de que la presin del sistema se encuentra entre
la presin de burbuja y la presin de roco).

19 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

FUNCIONES

Las funciones y subprogramas, son de gran utilidad durante la programacin y podra decirse que
su uso es indispensable, ya que disminuyen la cantidad de cdigo, y el tiempo de clculo, adems
permiten reutilizar programas y subrutinas que fueron creadas antes para una determinada
aplicacin. Como se dijo en el ejemplo anterior, se trabaj bajo el supuesto de que el sistema se
encontraba en equilibrio lquido vapor; a continuacin se efectan los clculos de la presin de
burbuja (bubble pressure) y de presin de roco (dew pressure), para determinar el estado del
sistema y demostrar este supuesto.

ID_BUBL_P(X,T,n,A,B,C) ID_DEW_P(Y,T,n,A,B,C)

For i, 1, n For i, 1, n

Psat(i) = exp(A(i)-B(i)/(T+C(i)) Psat(i) = exp(A(i)-B(i)/(T+C(i))

CERRAR
CERRAR

P = 0 SUMP = 0

For i, 1, n For i, 1, n

P = X(i)*Psat(i) + P SUMP = Y(i)/Psat(i) + SUMP

CERRAR CERRAR

P = 1/SUMP
SUMY = 0

For i, 1, n SUMX = 0

For i, 1, n
Y(i) = X(i)*Psat(i)/P

SUMY = Y(i) + SUMY X(i) = Y(i)*P/Psat(i)

CERRAR SUMX = X(i) + SUMX

CERRAR
SI NO
SUMY = 1
SI NO
For i, 1, n SUMX = 1

For i, 1, n
Y(i) = Y(i) / SUMY

CERRAR X(i) = X(i) / SUMX

RETURN P RETURN P CERRAR



20 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Se recomienda al lector estudiar las siguientes referencias:

- Referencia 6: Captulo 3
- Referencia 7: Captulo 10

Los diagramas de flujo muestran el algoritmo que se sigue para encontrar la presin de burbuja y
la presin de roco de un sistema, dada su temperatura (T), la cantidad de sustancias presentes (n),
las fracciones presentes de cada sustancia en fase vapor o lquido (Yi o Xi) y los parmetros de
Antoine para cada sustancia (A, B y C).

Como se observa, los diagramas fueron escritos como subprogramas, de modo que la funcin
ID_BUBL_P() (ideal bubble pressure) tiene como argumento los datos de entrada: T, n, A, B, C, X.
Anlogo a ste se tiene el subprograma ID_DEW_P() (ideal dew pressure).

Programando en la Voyage 200 existen muchas maneras de hacer esto, la idea es hacerlo de la
manera ms sencilla. Para ello, dirjase al editor de programas y cree un programa nuevo con el
nombre id_bub_p. Copie el siguiente cdigo:

:id_bub_p()
:Prgm
:
:newMat(1,n)psat
:For i,1,n
:e^(a(1,i)+b(1,i)/(temp+c(1,i))psat(1,i)
:EndFor
:
:0p
:For i,1,n
:p+psat(1,i)*x(1,i)p
:EndFor
:
:0sumy
:newMat(1,n)y
:For i,1,n
:x(1,i)*psat(1,i)/Py(1,i)
:sumy+y(1,i)sumy
:EndFor
:
:Lbl atras
:If sumy=1 Then
:Else
:For i,1,n
:y(1,i)/sumyy(1,i)
:Goto atras
:EndFor
:EndIf
:
:EndPrgm

21 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

A continuacin el cdigo fuente del programa id_dew_p(), cpielo tambin:

:id_dew_p()
:Prgm
:
:newMat(1,n)psat
:For i,1,n
:e^(a(1,i)+b(1,i)/(temp+c(1,i))psat(1,i)
:EndFor
:
:0p
:For i,1,n
:p+y(1,i)/psat(1,i)p
:EndFor
:1/pp
:
:0sumy
:newMat(1,n)x
:For i,1,n
:y(1,i)*p/psat(1,i)x(1,i)
:sumx+x(1,i)sumx
:EndFor
:
:Lbl atras
:If sumx=1 Then
:Else
:For i,1,n
:x(1,i)/sumxx(1,i)
:Goto atras
:EndFor
:EndIf
:
:EndPrgm

Como quiz haya podido notar, los cdigos no leen, ni devuelven ningn tipo de dato; esto se debe
a que la calculadora almacena en las variables todos los clculos que se designaron con la flecha
(STO, store) en las variables. De este modo, si en HOME digita la letra p aparecer de inmediato
el valor de dicha variable. Realice la siguiente actividad:

En el entorno HOME, digite: 80temp (Enter)


[0.45,0.35,0.2]z (Enter)
zx (Enter)
[14.3145,14.895,14.7513]a (Enter)
[2756.22,3413.1,3331.7]b (Enter)
[228.06,250.523,227.6]c (Enter)
3n (Enter)
Id_bub_p() (Enter)

22 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Enseguida observar en la pantalla la palabra Done lo cual indica que el programa ha terminado
satisfactoriamente. Digite en HOME la letra p y presione Enter, el valor que debe ver en pantalla
ser 140.269, este valor corresponde a la presin de burbuja (en KPa) del sistema
Acetona(1)/Acetonitrilo(2)/Nitrometano(3) del ejemplo 4 con la siguiente informacin:

A B C RANGO DE T /C
ACETONA 14.3145 2756.22 228.060 -26 a 77
ACETONITRILO 14.8950 3413.10 250.523 -27 a 81
NITROMETANO 14.7513 3331.70 227.600 56 a 146
Tabla B.2. Datos extrados de la referencia 7, apndice B.


Como la temperatura del sistema es T = 80C no se espera una muy buena aproximacin con estos
parmetros ajustados para la ecuacin de Antoine, para la acetona, ya que el valor de temperatura
cae por fuera del intervalo de tolerancia del sistema, sin embargo la aproximacin es aceptable, y
es buena para los otros dos compuestos. Para realizar el cdigo de Vaporizacin Instantnea Ideal,
se tiene que hacer un ligero cambio en el cdigo fuente del programa del mtodo Newton-
Raphson:


:new_rap(funci,x0,tol)
:Prgm
:
:d(funci,x)deriv
:newMat(100,5)data
:
:# Iter.data[1,1]
:x data[1,2]
:f(x) data[1,3]
:f(x) data[1,4]
:f/f data[1,5]
:
:0i
:idata[2,1]
:x0x
:x0data[2,2]
:funcidata[2,3]
:derivdata[2,4]
:funci/derivdata[2,5]
:x funci/derivx0
:
:i+1i
:idata[3,1]
:x0x
:x0data[3,2]
:funcidata[3,3]

23 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

:derivdata[3,4]
:funci/derivdata[3,5]
:x funci/derivx0
:
:While abs(data[i,3] data[i+1,3]) tol
: idata[i+2,1]
: x0x
: x0data[i+2,2]
: funcidata[i+2,3]
: derivdata[i+2,4]
: funci/derivdata[i+2,5]
: x funci/derivx0
: i+1i
:EndWhile
:
:@La respuesta est en la posicin [i+1,2] de la matriz data
:@ya que i se actualiza al final
:data[i+1,2]rta
:
:EndPrgm


Los cambios que se efectuaron sobre el programa se observan al comienzo y al final del programa.
El programa new_rap() se aplicar como una funcin, por eso tiene como argumento funci,
x0, tol. La palabra funci es la variable que almacena la ecuacin que resuelve el mtodo de
Newton-Raphson, x0 es el valor inicial del mtodo, y tol la tolerancia (la precisin del
resultado). Al final no es necesario que el programa despliegue toda la tabla de iteraciones
(aunque puede visualizarse en DATA/MATRIX la matriz data que tiene almacenados todos los
datos de las iteraciones), por ende slo se toma el valor de la respuesta que queda almacenada en
la posicin [i+1,2] de la matriz data.

Retomando la idea, lo que se desea es escribir el cdigo fuente del programa de Vaporizacin
Instantnea Ideal, considerando que el sistema debe estar en equilibrio lquido vapor, por ello,
es necesario incluir los algoritmos de ID_BUBL_P y de ID_DEW_P en el diagrama general, y
comprobar que la presin del sistema se encuentre en el intervalo:

Presin de Roco < Presin del Sistema < Presin de Burbuja

Una vez se demuestre que el sistema se encuentra en equilibrio lquido vapor, se procede a
calcular la fraccin de vapor (V), para lo cual se plantea la ecuacin a resolver mediante el mtodo
de Newton-Raphson, obtenindose as V, enseguida se procede a calcular las composiciones de
lquido y vapor (X, Y).

El diagrama se muestra a continuacin:

24 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

VAP_INST()
For i, 1, n

T, Ps, n

K(i) = Psat(i) / Ps
For i, 1, n

Z(i), A(i), CERRAR


B(i), C(i)

EQ_1 = 0
CERRAR

For i, 1, n
X = Z

Z (i ) * (k (i ) 1)
EQ_1 = EQ_1 +
ID_BUBL_P() 1 + V (k (i ) 1)

Pb = P CERRAR

Y = Z NEW_RAP(EQ_1,0,10^-5)

ID_DEW_P()
For i, 1, n

Pd = P
Z (i ) * k (i )
Y(i)=
1 + V * (k (i ) 1)
NO SI
Pd < Ps < Pb
CERRAR For i, 1, n

No hay
separacin X(i) = Y(i) / K(i)

CERRAR

X, Y

FIN

Con el Diagrama de flujo del programa ahora se procede a desarrollar el cdigo fuente:

25 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

:vap_inst()
:Prgm
:
:ClrIO
:Dialog
: Title VAPORIZACION INSTANTANEA
: Request Temperatura\C,temp
: Request Presion\KPa,ps
: Text Copie: dato1,dato2,
: Request Z,z
: Text Ln(Ps) = A B/(T[C] + C)
: Request A,a
: Request B,b
: Request C,c
:EndDlog
:
:[&z&]z
:[&a&]a
:[&b&]b
:[&c&]c
:expr(temp)temp
:expr(ps)ps
:expr(z)z
:expr(a)a
:expr(b)b
:expr(c)c
:dim(z)n
:n[2]n
:zx
:
:id_bub_p()
:ppb
:DelVar y
:zy
:id_dew_p()
:ppd
:
:Disp Presion de rocio:
:Disp pd
:Disp Presion de burbuja:
:Disp pb
:
:DelVar x,y
:If pd<ps<pb Then
: newMat(1,n)k
: For i,1,n
: psat[1,i]/psk[1,i]
: EndFor
:
: 0eq_1

26 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

: For i,1,n
: eq_1+z[1,i]*(k[1,i]-1)/(1+x*(k[1,i]-1)eq_1
: EndFor
: new_rap(eq_1,0,1.E-5)
: rtavapfr
: DelVar rta
:
: Disp Fraccion de vapor:
: Disp vapfr
:
: newMat(n+1,5) salida
: Compuesto salida[1,1]
: X salida[1,2]
: Y salida[1,3]
: K salida[1,4]
: P sat salida[1,5]
:
: For i,1,n
: z[1,i]*k[1,i]/(1+vapfr*(k[1,i]-1)) salida[i+1,3]
: salida[i+1,3]/k[1,i] salida[i+1,2]
: k[1,i] salida[i+1,4]
: isalida[i+1,1]
: psat[1,i] salida[i+1,5]
: EndFor
:Else
: Text No hay separacion
:EndIf
:
:NewData matriz,salida
:setMode(Split 1 App,Data/Matrix Editor)
:DelVar salida
:
:EndPrgm

PRUEBA DEL PROGRAMA

El programa se va a probar con los datos del ejemplo 4, omitiendo que se conocen las presiones de
saturacin de los compuestos, y en vez de conocer dicha informacin, se conocen los parmetros
de la ecuacin de Antoine (Tabla B.2), para calcular dichas presiones de saturacin.

INFORMACIN:

Temperatura: 80C Presin: 110 KPa

Acetona (1) Acetonitrilo (2) Nitrometano (3)


Composicin Global (Z) 0.45 0.35 0.2

A continuacin se ejecuta el programa:

27 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Una vez se digite la tecla Enter, se ejecuta la ventana de dilogo en donde se debe llenar la
informacin as:

Mientras el programa se va ejecutando, arroja alguna informacin pertinente en el entorno


prgmIO:

Una vez el programa termina arroja la siguiente tabla:

28 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO

Compuesto Xi Yi Ki PiSAT \KPa


1 0.25441 0.49568 1.9484 214.32
2 0.38895 0.3409 0.87648 96.413
3 0.35665 0.16341 0.4582 50.402
Tabla de resultados del programa, calculando presiones de saturacin con la ecuacin de Antoine.

Los resultados son levemente distintos a los arrojados en el ejemplo 4 donde se supona conocidas
las presiones de saturacin de los compuestos:
Compuesto Xi Yi Ki PiSAT \KPa
1 0.2859 0.5088 1.7795 195.75
2 0.3810 0.3389 0.8895 97.84
3 0.3331 0.1524 0.4575 50.32
Tabla de resultados del ejemplo 4, conocidas las presiones de saturacin de los componentes de la mezcla.

En los datos donde se observa una mayor varianza es en los del compuesto 1, esto debido a lo que
se coment anteriormente; los parmetros de Antoine para la Acetona estn calculados en un
intervalo entre -26C y 77C y la temperatura del sistema es de 80C por lo cual se genera un error
considerable, pero para efectos prcticos omisible.

ASIGNACIN 5

Realice los programas del clculo de la presin y temperatura de burbuja para sistema real, y
temperatura de roco para sistema real, adems del clculo de vaporizacin instantnea para
sistema real. Para guiarse se recomienda utilizar las referencias [6 y 7] (si desea, para simplificar el
problema asuma coeficiente de fugacidad igual a la unidad [=1]).















29 | P g i n a

PROGRAMACIN EN LA TEXAS VOYAGE 200 CARLOS M. CELIS CORNEJO



REFERENCIAS

[1]. Texas Instruments. TI-89 TITANIUM VOYAGE 200 GUIDEBOOK. (2004).

[2]. Texas instruments educational home page: http://www.education.ti.com

[3]. List of programming languages by category: http://en.wikipedia.org/wiki


/Categorical_list_of_programming_languages, Search on google by this keywords: "Categorical list
of programming languages"

[4]. Freeware DFD download link: http://dfd.softonic.com/

[5]. Data Flow Diagram. DFD. http://www.colombiaaprende.edu.co/html/mediateca/1607


/articles-107108_archivo.pdf. Universidad de Magdalena. (1998), Search on google by this
keywords: DFD+universidad de magdalena+colombia aprende

[6]. Aristbulo Centeno Hurtado. BASES DE TERMODINMICA EN INGENIERA QUMICA. UIS


Departamento de Ingeniera Qumica. (1992)

[7]. J. M. Smith, H. C. Van Ness, M. M. Abbott. INTRODUCCIN A LA TERMODINMICA EN


INGENIERA QUMICA. 7 ED, Editorial MCGraw Hill. (2007)

[8]. Leonel Parra Pinilla. EL ARTE DE LA PROGRAMACIN, INTRODUCCIN A LA INFORMTICA.


editorial uis. (1989)

[9]. Harvey M. Deitel, Paul J. Deitel. CMO PROGRAMAR EN C++. 4 ED, Editorial PEARSON,
Prentice Hall. (2003)

[10]. Francisco Javier Ceballos. PROGRAMACIN ORIENTADA A OBJETOS CON C++. 3 ED. Editorial
RAMA. (2003)

[11]. Luis Francisco Garca Russi. MTODO DE MONTE CARLO; PROCESOS ESTOCSTICOS;
PROBABILIDADES. UIS. (1999)

[12]. I. M. Sobol. LECCIONES POPULARES DE MATEMTICAS, MTODO DE MONTECARLO. Editorial


MIR. (1983)

[13]. F. Fonseca, A. M. Prez, V. Rodrguez. CONFIGURACIN PTIMA POR MONTECARLO PARA UN


CLUSTER DE 13 TOMOS Y APROXIMACIN A SUS PROPIEDADES TRMICAS. Revista Colombiana de
Fsica, Vol. 42, (2010)

30 | P g i n a

También podría gustarte