Sei sulla pagina 1di 71

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA

BASIC 2010

VISUAL

Visual Basic 2010


Tutorial bsico para iniciar programacin en visual Basic 2010.
Visual Basic.- Es un compilador de quinta generacin, utiliza un modelo de
programacin orientado a objetos con interfaz grafica y funciones intrnsecas.
Conceptos Bsicos de Programacin.
Para iniciar el tutorial es necesario tener conceptos bsicos de programacin.
Algoritmo.- el algoritmo es una secuencia de pasos ordenados que llevan a la
resolucin de un problema.
Algoritmo de programacin.- vendra a ser la secuencia de instrucciones de
forma ordenada para llevar a la resolucin de un problema.
Los algoritmos de programacin se pueden representar mediante diagrama de
flujos y tambin Pseudocdigo.
Herramienta Bsica de programacin.
Una herramienta bsica para la programacin es conocer el flujo del programa
como ser:

DAVID SALOMON ALIAGA

Pgina 1

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Inicio

Datos

Proceso

Resultados
Fin

Es importante recordar que algunos programas se pueden desarrollar con datos


por defecto, es decir que los datos no son necesarios ingresarlos en el
programa ya que estn codificados.
Estructuras de Programacin.
Es necesario Saber Representar las estructuras al momento de representar un
algoritmo de manera grafica.
Inicio
IniiiiiINI

Datos de entrada.

Procesos
DAVID SALOMON ALIAGA

Pgina 2

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Condicionales

Fin

Bucles Lgicos.
Los bucles son herramientas de programacin que realizan un procedimiento n
veces, dependiendo de la condicin de salida o la condicin de entrada.

Funcin UNTIL DO (Hacer Hasta)


Esta funcin de bucle lgico realiza un procedimiento determinado mientras la
condicin sea Falsa.

Proceso

F
V
DAVID SALOMON ALIAGA

Pgina 3

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Funcin While Do
Esta realiza el bucle mientras la condicin sea verdadera.

V
Proceso

Bucle Determinado
Funcin FOR TO.
La funcin FOR TO realiza un bucle determinado, es decir que se conoce la
cantidad de repeticiones, esta es controlada con un contador i.

DAVID SALOMON ALIAGA

Pgina 4

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

FOR i

TO

VISUAL

PROCESO

HERRAMIENTAS BASICAS DE VISUAL BASIC.


Al iniciar el programa VISUAL BASIC le aparecer un lienzo en blanco.

DAVID SALOMON ALIAGA

Pgina 5

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Para hacer un nuevo proyecto van a archivos y le dan nuevo proyecto.

Una vez abierto el nuevo proyecto le aparecer un cuadro donde escogers el


tipo de proyecto.
Es necesario mencionar que visual Basic puede desarrollar aplicaciones para
internet, pginas Web y aplicaciones.
DAVID SALOMON ALIAGA

Pgina 6

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Escogemos la opcin aplicacin Windows form.

Solamente este tipo de proyecto se ver en todo el transcurso del curso.


Una vez seleccionado aparecer un lienzo en blanco.

En la parte izquierda se encuentran las herramientas para programar para


seleccionar alguna herramienta solo se tiene que arrastrar la herramienta al
lienzo.
En la parte derecha se encuentra las propiedades de cada herramienta.
Propiedades de los objetos.
DAVID SALOMON ALIAGA

Pgina 7

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Las propiedades de los objetos o de las herramientas me permiten modificar el


objeto, como cambiar su nombre, cambiar su etiqueta, cambiar su color,
cambiar su tamao y otros.

Como se ve en la figura seleccionando el texto puedo cambiar la etiqueta del


formulario.
Arriba se encuentra el explorador de soluciones que me permite manejar los
formularios que yo desee programar.
Nota si el cuadro de herramientas, cuadro de propiedades no aparecen tienes
que ir a VER dar clic.

Como se ve ah se encuentran todos los cuadros si quieres que aparezca


alguno solo se tiene que dar clic.

DAVID SALOMON ALIAGA

Pgina 8

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

OBJETOS BASICOS DE PROGRAMACION.


OBJETO BUTTON (Botn).
Este permite iniciar un proceso al momento de hacerle click sobre el mismo.
Para elegirlo solo se debe arrastrar hacia el lienzo.

Para programarlo se debe hacer click sobre l, y aparecer el formulario de


programacin.

DAVID SALOMON ALIAGA

Pgina 9

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
Se debe programar un cdigo dentro del proceso button1_Click.
OBJETO CAJA DE TEXTO O TEXTBOX.

Este permite ingresar datos o mostrar datos.

OBJETO ETIQUETA o LABEL.

Permite mostrar datos o etiquetar objetos.


DAVID SALOMON ALIAGA

Pgina 10

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

OBJETO RADIOBUTTON.

Funciona como Seleccin Lgica nica.


De varias opciones permite solo seleccionar una haciendo click sobre l.

Como ven en la figura de los tres radios button solo se puede elegir uno, este
funciona como condicin lgica, es decir si es seleccionado realizara algn

DAVID SALOMON ALIAGA

Pgina 11

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

procedimiento que se programa, funciona con la propiedad Checked, que


significa tiqueado
El RadioButton puede estar en su propiedad Checked Falso o Verdadero, si se lo
selecciona esta propiedad de cambia a verdadero.
OBJETO CHECKBOX.

Este funciona de manera parecida al RadioButton, pero tiene la opcin de


seleccionado Mltiple, se lo utiliza cuando se desea que algn procedimiento
tenga varias condiciones.

DAVID SALOMON ALIAGA

Pgina 12

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

OBJETO DATAGRIDVIEW.

Este Permite mostrar una tabla de resultados o ingresar una tabla de


resultados.
Trabaja con posiciones columnas y filas.

DAVID SALOMON ALIAGA

Pgina 13

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

OBJETO PICTUREBOX.

Permite Introducir una imagen en el lienzo.


Para poder introducir una imagen se tiene que ir a propiedades y elegir
BackGroundImage.

DAVID SALOMON ALIAGA

Pgina 14

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Aparecer un cuadro en donde se selecciona la imagen que se desee cargar


desde la computadora hacia el programa.
OBJETO INPUTBOX.
Este objeto no se encuentra en la barra de Herramientas, este solo se puede
mostrar mientras se est ejecutando el programa.
Se lo utiliza cuando se necesite pedir algn dato en el transcurso de ejecucin
del programa.
Su cdigo es:
InputBox (

, , ).

Donde s quiero poner un comentario se lo hace en el primer espacio de


comillas.
InputBox (Comentario, , ).
Si quiero agregar un Titulo, se lo hace en el segundo espacio de comillas.
InputBox (Comentario, Titulo, ).
Y el tercer espacio de comillas sirve para poner un valor por defecto, como
ejemplo pondr 1
InputBox (Comentario, Titulo,1).
Ejemplo Programaremos el InputBox en un botn.
Primero agregamos el botn al formulario y le damos click sobre l.

DAVID SALOMON ALIAGA

Pgina 15

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dentro del proceso del botn colocamos el cdigo.

Le damos F5 para hacer correr el programa.

DAVID SALOMON ALIAGA

Pgina 16

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Haciendo click sobre el botn se ejecutara el cdigo de InputBox.

El InputBox solo sirve para introducir datos y su utilizacin solamente es


necesaria cuando el programa necesite recolectar datos mientras se est
ejecutando.
La diferencia con el TextBox no es mucha si los datos se cargan al inicio, pero si
se est ejecutando el programa y se necesite seguir introduciendo datos
necesariamente se lo debe hacer con un InputBox.

DAVID SALOMON ALIAGA

Pgina 17

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

OBJETO MSGBOX
El msgbox es un objeto que no se encuentra en la barra de herramientas, este
funciona para mostrar un mensaje mientras se ejecute algn cdigo, o tambin
para mostrar resultados.
Su cdigo es:
MsgBox (Mensaje)
Haciendo el mismo procedimiento anterior colocamos un botn al lienzo y le
damos click sobre el botn y programamos el MsgBox.

Le damos F5 para hacer correr el programa.


Le damos Click sobre el Botn para que se ejecute el cdigo.

DAVID SALOMON ALIAGA

Pgina 18

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Como muestra la figura aparece el mensaje programado


DEFINICION DE VARIABLES Y TIPOS DE VARIABLES.
Al momento de iniciar la programacin se tiene que definir que es una variable
y como funcionara en el cdigo.
Variable.- Se define como un objeto representado por alguna letra del alfabeto
o una palabra, que puede cambiar su valor al ejecutarse algn cdigo.
Un ejemplo seria la variable X, Y.
Donde al momento de graficar una funcin x puede asumir valores para
generar un resultado Y.
Otra variable seria al momento de calcular la presin hidrosttica de un pozo.
P=0.052*H*D
Donde P representa a la presin calculada.
H es la altura del Fluido
D es la densidad de fluido
En este caso las variables serian P, H, D donde pueden tomar diferentes
valores para determinar una presin.
Las variables no solo pueden almacenar nmeros, tambin pueden almacenar
valores lgicos, y cadenas de palabras.
DAVID SALOMON ALIAGA

Pgina 19

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejemplo
La variable (Nombre) puede almacenar cualquier tipo de nombre.
La variable (Sw) puede almacenar algn valor lgico, es decir puede ser
Verdadero o Falso.
Variables matriciales.Las variables matriciales pueden almacenar un tipo de matriz de cualquier
dimensin.
Ejemplo
M (9)
Este presenta una matriz unidimensional donde la longitud es de 10, teniendo
posiciones que van desde 0 hasta 9.

9
Donde M es el nombre de la matriz.
TIPOS DE VARIABLES EN VISUAL BASIC.
En visual Basic los tipos de variables que existen para nmeros son:
INTEGER

que representa a cualquier nmero entero.

SINGLE

que representa a cualquier nmero real.

DOUBLE
que presenta a cualquier nmero real, teniendo en cuenta la
doble precisin, es decir que puede almacenar cantidades mayores al Tipo
SINGLE.
Byte

que puede almacenar un valor de 0 a 128.

Tipos de variables para cadenas o letras.


Char

puede almacenar algn carcter.

String

puede almacenar alguna cadena de letras.

DAVID SALOMON ALIAGA

Pgina 20

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejemplo.
Si los valores que voy a trabajar con decimales, necesariamente tengo que
trabajar con el tipo Single.
Para calcular presiones, volmenes, Etc.
Ejemplo
P=0.052*H*D
Donde P, H, D son tipo Single.
En visual Basic Sera
Dim P, H, and D as single.
Ejemplo Para cadenas.
Nombre
Que puede ser mara, Juan , Gabriel , Etc.
Donde Nombre es de tipo String.
En visual Basic.
Dim Nombre as String.
Variables Locales Y Globales.
Local significa que la variable que est disponible solamente para algn
procedimiento, y despus al finalizar el procedimiento este elimina el valor
almacenado.
Las variables se consideran tipo locales cuando se programan dentro de un
procedimiento.
Ejemplo.
Sub Presin ()
Dim P, H,D as single
P=0.052*H*D
End Sub

DAVID SALOMON ALIAGA

Pgina 21

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Como se puede ver la variable ha sido declarada dentro del procedimiento y


este es de tipo local.
Se hace necesario declarar variables locales cuando se quiera realizar
simulaciones, es decir varios clculos en diferentes tiempos, de esta manera el
resultado no se afecta por la acumulacin de datos.
Global significa que la variable est disponible para varios procedimientos, y
despus de finalizar algn procedimiento esta variable sigue manteniendo su
valor.
Las variables se consideran tipo Globales cuando se programan afuera de un
procedimiento.
Ejemplo
Dim P,H,D as single
Dim Gf as single
Sub Presion ()
P=0.052*H*D
End Sub
Sub Gradiente()
Gf=0.052*D
End Sub
Como se puede ver en el ejemplo la variable D se la utiliza en los dos
procedimientos.
Las variables globales pueden ser tambin Pblicas o Privadas.
Una variable pblica significa que esta est disponible para cualquier
formulario del programa.
Codificacin en visual basic.
Public P,H,D as single.
Una variable privada significa que esta es exclusiva para un formulario y su
valor no esta disponible para otros.
Codificacion en visual Basic.
DAVID SALOMON ALIAGA

Pgina 22

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Private P,H,D as single.

EJEMPLO PRCTICO
Ejercicio #1
Desarrollar un programa en Visual Basic que determine la presin Hidrosttica
de un pozo, los datos sern ingresados desde formulario utilice el objeto
TextBox y muestre el Resultado con etiquetas.
Primeramente se determina el modelo matemtico para resolver el problema:
P=0.052*Den*Prof
Donde:
Den= Densidad del lodo
Prof= Profundidad del Pozo.
Creamos un nuevo formulario para desarrollar el programa.

Al Formulario le agregamos dos textbox y etiquetamos.


Le agregamos un botn y una etiqueta para resultado.

DAVID SALOMON ALIAGA

Pgina 23

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Para cada objeto se cambia la etiqueta, se hace click sobre el objeto para
seleccionarlo luego se va a la barra de propiedades, busque la propiedad text
y coloque la equeta calcular Presion para el objeto Botn.
Cada objeto debe tener un nombre propio por lo cual se da click en el objeto
textbox, luego se va a la barra de propiedades, se busca la propiedad Name
luego se coloca el nombre propio que uno desee.
Para el botn:
Btn_Calcular
Para textbox donde se ingresa la profundidad
Txt_Prof
Para el Textbox donde se ingresa la densidad
Txt_Den
Para el Label donde se muestra el resultado de la presin calculada
Lbl_Presion
Procedemos a introducir el cdigo haciendo doble Click en el botn.

DAVID SALOMON ALIAGA

Pgina 24

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Presion, Densidad, Profundidad As Single
Profundidad = Val(Txt_Prof.Text)
Densidad = Val(Txt_Den.Text)
Presion = 0.052 * Profundidad * Densidad
Lbl_Presion.Text = (Presion)
End Sub
End Class

Le damos F5 para hacer correr.


Ejercicio Prctico # 2
Desarrollar un programa en Visual Basic que determine la presin Hidrosttica
de un pozo, los datos sern ingresados desde formulario utilice el objeto
InputBox y muestre el Resultado con MsgBox.
Primeramente se determina el modelo matemtico para resolver el problema:
P=0.052*Den*Prof
Donde:
Den= Densidad del lodo
Prof= Profundidad del Pozo.
Con los objetos Inputbox y Msgbox, el programa debe realizar estos pas.
Primeramente a un formulario en Blanco agregamos un botn y cambiamos su
nombre:
Para el botn:
Btn_Calcular

DAVID SALOMON ALIAGA

Pgina 25

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Haciendo Doble click sobre el botn introducimos el cdigo.


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Presion, Densidad, Profundidad As Single
Profundidad = Val(InputBox("Introduzca la Profundidad", "Calculo Presion", ""))
Densidad = Val(InputBox("Introduzca la densidad", "Calculo Presion", ""))
Presion = 0.052 * Profundidad * Densidad
MsgBox(CStr(Presion))
End Sub
End Class

Le damos F5 para hacer correr.


NOTA.La conversin Cstr que funciona para convertir una variable numrica a
cadena es opcional solamente cuando se va a mostrar un nmero, pero si el
resultado va acompaado de un texto seguido es necesario utilizar la
conversin:
Ejemplo:
Msgbox(cstr(Presion)) o tambin
MsgBox(Presion)
Pero si va con un mensaje
DAVID SALOMON ALIAGA

MsgBox(Cstr(Presion) + Psi)
Pgina 26

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejercicio Prctico # 3
Se desea calcular la velocidad de flujo que pasa por una tubera, teniendo
como datos el caudal que es constante y el dimetro de la tubera.
Realice el programa utilizando TextBox y Etiquetas.
Primeramente:
Modelo matemtico:
Q=V*A
V=Q/A
Donde:
A=3.1416*D^2/4
V=Q/(3.1416*D^2/4)
Se necesita como datos de entrada el caudal y el dimetro:
Desarrollamos el Interface

Cambiamos los nombres de cada objeto


Txt_Q
Btn_Calcular
DAVID SALOMON ALIAGA

Txt_D

Pgina 27

Lbl_V

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Le Damos Doble Click en el Botn para introducir cdigo


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Q, D, V As Single
Q = Val(Txt_Q.Text)
D = Val(Txt_D.Text)
V = Q / (Math.PI * D^2 / 4)
Lbl_V.Text = (V)
End Sub
End Class

Ejemplo # 4
Realizar un programa en Vb para calcular el peso molecular de un gas, donde
las fracciones de los componentes se ingresaran por un InputBox y se mostrara
el peso molecular aparente en una etiqueta, las fracciones y los pesos
moleculares se ingresaran de hasta 7 carbonos.
Modelo matemtico:

Pma= PmFracc
Como se ve se debe introducir los componentes de peso moleculares y
fracciones, se asume que la cromatografa ya est normalizada.
En un formulario en blanco agregamos un botn y una etiqueta para mostrar el
resultado:

DAVID SALOMON ALIAGA

Pgina 28

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Btn_Calcular

VISUAL

Lbl_Pma

Le damos doble click en el botn para programar


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim fracc, Pm, Pma As Single
Pma = 0
For i = 1 To 7
fracc = Val(InputBox("introduzca fraccion C" + CStr(i), "Fracciones del Gas", ""))
Pm = Val(InputBox("introduzca Pm C" + CStr(i), "Peso Molecular del Gas", ""))
Pma = Pma + fracc * Pm
Next
Lbl_Pma.Text = (Pma)
End Sub
End Class

DAVID SALOMON ALIAGA

Pgina 29

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

OBJETO

VISUAL

DATAGRIDVIEW

DataGridView es un objeto que permite introducir datos y mostrar datos en


pares ordenados, este permite realizar tablas de resultados, funciona con datos
numricos y o cadenas.
Funciona con filas y columnas posiciones i,j donde este debe estar previamente
dimensionado antes de comenzar a usar las celdas.
Ejemplo de uso datagridview.
Abrimos un nuevo proyecto, con un lienzo en blanco agregamos un objeto
datagridview.

DAVID SALOMON ALIAGA

Pgina 30

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Seleccionamos una aplicacin Windows form

Con un lienzo en blanco Agregamos el objeto.

DAVID SALOMON ALIAGA

Pgina 31

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Agregamos un botn y le damos click sobre l.


Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
DataGridView1.ColumnCount = 10
DataGridView1.RowCount = 10
End Sub
End Class

La instruccin columncount sirve para dimensionar las columnas de la grilla.


La instruccin rowcount sirve para dimensionar las filas de la grilla.
Para ver el ejecutable corremos el programa F5.

DAVID SALOMON ALIAGA

Pgina 32

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Para colocar algn valor en la grilla se debe saber en qu posicin se desea


colocar el mensaje, para ello este objeto trabaja con la instruccin tem.
Si se quiere colocar un titulo en la primera fila y columna se procede con la
siguiente instruccin.
Es importante mencionar que la grilla inicia con la posicin 0,0.
0,0
0,1
0,2
0,3

1,0
1,1
1,2
1,3

2,0
2,1
2,2
2,3

3,0
3,1
3,2
3,3

Dentro del cdigo del botn programamos los ttulos.


Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
DataGridView1.ColumnCount = 10
DataGridView1.RowCount = 10
DataGridView1.Item(0, 0).Value = "TITULO 1"
DataGridView1.Item(1, 0).Value = "TITULO 2"
DataGridView1.Item(2, 0).Value = "TITULO 3"
DataGridView1.Item(3, 0).Value = "TITULO 4"
DataGridView1.Item(4, 0).Value = "TITULO 5"
End Sub
End Class

Hacemos correr el programa F5.


DAVID SALOMON ALIAGA

Pgina 33

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejemplo # 5
Realizar un en Visual Basic que determine la gravedad especifica de un gas
que tiene una composicin de hasta 7 carbonos, donde los componentes de
cada carbn se introducirn desde un objeto datagridview, y los pesos
moleculares sern introducidos tambin desde el datagridview.
Solucin del Problema:

Pma= FraccPm
Geg=Pma /28.97
Primeramente como el programa va a trabajar con el objeto Datagridview, este
debe estar dimensionado antes que pueda usarse para introducir los datos, es
decir que tiene que tener 7 filas y 2 columnas para los datos.
Por esta manera vamos a dimensionar la grilla cuando se cargue el programa,
para ello se realiza el siguiente procedimiento.

Con un formulario en Blanco Agregamos una Grilla, labels, y un botn.

DAVID SALOMON ALIAGA

Pgina 34

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dg

Btn_Calcular

VISUAL

Lbl_Geg

Para que la grilla se dimensione al cargar el formulario hacemos doble click


sobre el formulario.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dg.ColumnCount = 3
Dg.RowCount = 8
Dg.Item(0, 0).Value = "Componentes"
Dg.Item(1, 0).Value = "Fracciones"
Dg.Item(2, 0).Value = "Peso Molecular"
Dg.Item(0, 1).Value = "C1"
Dg.Item(0, 2).Value = "C2"
Dg.Item(0, 3).Value = "C3"
Dg.Item(0, 4).Value = "C4"
Dg.Item(0, 5).Value = "C5"
Dg.Item(0, 6).Value = "C6"
Dg.Item(0, 7).Value = "C7"
End Sub
End Class

Hacemos click sobre el botn para programar el procedimiento de clculo.

Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btn_Calcular.Click
Dim Fracc, Pm, Pma, Geg As Single
Pma = 0

DAVID SALOMON ALIAGA

Pgina 35

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

For i = 1 To 7
Fracc = Val(Dg.Item(1, i).Value)
Pm = Val(Dg.Item(2, i).Value)
Pma = Pma + Fracc * Pm
Next
Geg = Pma / 28.97
Lbl_Geg.text = Geg
End Sub

Ejemplo # 6
Determinar el factor volumtrico de gas en funcin a la profundidad, realizar el
clculo teniendo como datos de entrada la presin, temperatura y el factor de
desviacin del gas, mostrar los resultados en una grilla donde en funcin de
una declinacin de presin de 100 psi muestre el factor volumtrico del gas.
Calculo:

Bg=

Vs
Vr

PV =nRTZ
Bg=

TsPr
TrPsZr

Con un Formulario en Blanco Realizamos la interfaz.

DAVID SALOMON ALIAGA

Pgina 36

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dg

Txt_Ts

Txt_Ps

Txt_Pr

Txt_Tr

Txt_Z

VISUAL

Btn_Calcular

Para agregar ttulos desde formulario se sigue el siguiente paso, esto es si no


se quiere colocar ttulos por cdigo.
Hacemos click en la esquina del objeto DataGridView

Una vez abierto la opcin, seleccionamos agregar columna.

DAVID SALOMON ALIAGA

Pgina 37

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

En el cuadro de texto Colocamos el titulo que queramos, en este caso


colocamos Presiones.
Le damos agregar y luego colocamos el siguiente titulo que ser Bg, una vez
colocados los ttulos le damos cancelar.
Y el formulario quedara con ttulos agregados desde formulario.

DAVID SALOMON ALIAGA

Pgina 38

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Programamos dentro del botn.


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Pr, Ps, Tr, Ts, Z, Bg, Presion As Single
Dim n As Integer
Pr = Val(Txt_Pr.Text)
Tr = Val(Txt_Tr.Text)
Ps = Val(Txt_Ps.Text)
Ts = Val(Txt_Ts.Text)
Z = Val(Txt_Z.Text)
n = Pr / 100 + 1
Dg.RowCount = n
Dg.ColumnCount = 2
For i = 0 To n - 1
Presion = Pr - 100 * i
Bg = (Ts * Pr) / (Tr * Ps * Z)
Dg.Item(0, i).Value = Presion
Dg.Item(1, i).Value = Bg
Next
End Sub
End Class

Ejercicio # 7
Realizar Un Programa que convierta un rato de Azimuth en Rumbo, utilizando
condicionales If Then Else.
360
R=360A

0
R=A

270

90

R=A-180

R=180- A
180

DAVID SALOMON ALIAGA

Pgina 39

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Con Un formulario en Blanco Agregamos un Botn, una caja de texto y


etiquetas.

Btn_Calcular

Txt_A

Lbl_Rumbo

Le damos Doble click sobre el botn para programar.


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim A, R As Single
A = Val(Txt_A.Text)
If A <= 90 Then
R=A
Lbl_Rumbo.Text = "N" + Cstr(R) + "E"
ElseIf A <= 180 Then
R = 180 - A
Lbl_Rumbo.Text = "S" + Cstr(R) + "E"
ElseIf A <= 270 Then
R = A - 180
Lbl_Rumbo.Text = "S" + Cstr(R) + "W"
Else
R = 360 - A
Lbl_Rumbo.Text = "N" + Cstr(R) + "W"
End If
End Sub
End Class

DAVID SALOMON ALIAGA

Pgina 40

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejercicio # 8
Realizar un programa para convertir un dato de Azimuth a dato de rumbo
utilizando la funcin select case.
Con Un formulario en Blanco Agregamos un Botn, una caja de texto y
etiquetas.

Btn_Calcular

Txt_A

Lbl_Rumbo

Le damos Doble click sobre el botn para programar


Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim A, R As Single
A = Val(Txt_A.Text)
Select Case A
Case Is <= 90
R=A
Lbl_Rumbo.Text = "N" + Cstr(R) + "E"
Case Is <= 180
R = 180 - A
Lbl_Rumbo.Text = "S" + Cstr(R) + "E"
Case Is <= 270

DAVID SALOMON ALIAGA

Pgina 41

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

R = A - 180
Lbl_Rumbo.Text = "S" + Cstr(R) + "W"
Case Is > 270
R = 360 - A
Lbl_Rumbo.Text = "N" + Cstr(R) + "W"
End Select
End Sub
End Class

Ejercicio # 9
Realizar un programa en Visual Basic para determinar la presin esttica de
fondo, en funcin de la profundidad de intervalos iguales.
M

P=Pwhe ZRT

Prof

Don de:
La presin de cabeza es dato.
Se tiene la presin mxima y mnima en superficie, la gradiente de
temperatura y la profundidad del pozo.
El factor de compresibilidad es dato y la Gravedad especfica del gas es dato.
Interfaz:

DAVID SALOMON ALIAGA

Pgina 42

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
Dg

Txt_PWh

Txt_Max

Txt_min

Txt_Gt

VISUAL

Txt_Prof Txt_Geg

Txt_Z

Hacemos Doble Click En el Botn.

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Gt, Tmax, Tmin, Prof, Geg, Z, Pwh, Pws, M, T As Single
Dim n As Integer
Gt = Val(Txt_Gt.Text)
Tmax = Val(Txt_Max.Text)
Tmin = Val(Txt_min.Text)
Prof = Val(Txt_Prof.Text)
Geg = Val(Txt_Geg.Text)
Z = Val(Txt_Z.Text)
Pwh = Val(Txt_Pwh.Text)
M = Geg * 28.97
T = ((Tmax + Tmin) / 2 + Gt * Prof) / 2
n = Prof / 100 + 1
Dg.RowCount = n
Dg.ColumnCount = 2
For i = 0 To n - 1
Pws = Pwh * Math.Exp(M / (Z * 10.49 * T) * 100 * i)
Dg.Item(0, i).Value = 100 * i
Dg.Item(1, i).Value = Pws
Next
End Sub
End Class

Ejercicio # 10
Desarrollar un programa en Vb que determine la tonelada milla de las
diferentes operaciones que realiza el cable de perforacin.
Teniendo en cuenta que:
Tonelada Milla de una vuelta completa es Tm= 2*Ws*Prof
Tonelada Milla de una Bajada De caera es Tm= WS*Prof
Tonelada Milla De una Perforacin es

Tm= 2*(2*Ws*Prof2-2*Ws*Prof1)

Donde Ws es el peso de la sarta.


Y Prof es la profundidad a la cual se va a realizar la maniobra.

DAVID SALOMON ALIAGA

Pgina 43

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Btn_Calcular

Txt_Ws

Txt_Prof1

Txt_ Prof2

Txt_Ope

Hacemos Doble Click en el botn.


Public Class Form1

Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btn_Calcular.Click
Dim Prof1, Prof2, Tm, Ws As Single
Dim Ope As String
Prof1 = Val(Txt_Prof1.Text)
Prof2 = Val(Txt_Prof2.Text)
Ws = Val(Txt_Ws.Text)
Ope = Txt_Ope.Text
Select Case Ope
Case "Perforacion"
Tm = 2 * (2 * Ws * Prof2 - 2 * Ws * Prof1)
Case "Bajada Caeria"
Tm = Ws * Prof1
Case "Vuelta Completa"
Tm = 2 * Ws * Prof1
End Select

DAVID SALOMON ALIAGA

Pgina 44

VISUAL

Lbl_Tm

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Lbl_Tm.Text = (Tm)
End Sub
End Class

Ejemplo de cdigo alterno utilizando la opcin If Then Else.


Public Class Form1

Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btn_Calcular.Click
Dim Prof1, Prof2, Tm, Ws As Single
Dim Ope As String
Prof1 = Val(Txt_Prof1.Text)
Prof2 = Val(Txt_Prof2.Text)
Ws = Val(Txt_Ws.Text)
Ope = Txt_Ope.Text
If Ope = "Perforacion" Then
Tm = 2 * (2 * Ws * Prof2 - 2 * Ws * Prof1)
ElseIf Ope = "Bajada Caeria" Then
Tm = Ws * Prof1
ElseIf Ope = "Vuelta Completa" Then
Tm = 2 * Ws * Prof1
End If
Lbl_Tm.Text = (Tm)
End Sub
End Class

Ejercicio # 11
Desarrollar un programa en Vb que determine la tonelada milla de las
diferentes operaciones que realiza el cable de perforacin.
Teniendo en cuenta que:
Tonelada Milla de una vuelta completa es Tm= 2*Ws*Prof
Tonelada Milla de una Bajada De caera es Tm= WS*Prof
Tonelada Milla De una Perforacin es

Tm= 2*(2*Ws*Prof2-2*Ws*Prof1)

Donde Ws es el peso de la sarta.


Y Prof es la profundidad a la cual se va a realizar la maniobra.
Utilizando el Objeto RadioButton.
El objeto radio botn utiliza la propiedad Checked, para el ejercicio seria el
mismo procedimiento:
DAVID SALOMON ALIAGA

Pgina 45

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Txt_Ws

Txt_Prof1

Txt_Prof2

Rb_Perforacion

Rb_BajadaCaeria

Rb_VueltaCompleta
Btn_Calcular

Lbl_Tm

Cdigo
Public Class Form1

Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btn_Calcular.Click
Dim Prof1, Prof2, Tm, Ws As Single
Prof1 = Val(Txt_Prof1.Text)
Prof2 = Val(Txt_Prof2.Text)
Ws = Val(Txt_Ws.Text)
If Rb_Perforacion.Checked Then
Tm = 2 * (2 * Ws * Prof2 - 2 * Ws * Prof1)

DAVID SALOMON ALIAGA

Pgina 46

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

ElseIf Rb_BajadaCaeria.Checked Then


Tm = Ws * Prof1
ElseIf Rb_VueltaCompleta.Checked Then
Tm = 2 * Ws * Prof1
End If
Lbl_Tm.Text = (Tm)
End Sub
End Class

Ejercicio # 12
Desarrollar un programa en vb que determine la presin que se registra en
superficie cuando ingresa una burbuja de gas al pozo cuando este est
cerrado, teniendo en cuenta que la altura del gas se considera despreciable y
la burbuja no se descomprime conserva su presin en todo el transcurso de la
ascendencia.
Modelo matemtico.

DAVID SALOMON ALIAGA

Pgina 47

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
Para el Primer caso la presin en superficie seria:
Psup=PBurbuja-Phidrostatica
Para el segundo Caso:
Psup=PBurbuja-Phidrostatica
Para el Tercer Caso:
Psup= PBurbuja
Formula Estndar.

Psup=Pburbuja0.052densidad LodoH Lodo

Dg

Txt_Dl

Txt_Prof

Txt_Pburbuja

Btn_Calcular

Cdigo:
Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Psup, Prof, Dl, PBurbuja As Single
Dim n As Integer
Prof = Val(Txt_Prof.Text)
PBurbuja = Val(Txt_PBurbuja.Text)
Dl = Val(Txt_Dl.Text)

DAVID SALOMON ALIAGA

Pgina 48

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

n = Prof / 100 + 1
Dg.RowCount = n
Dg.ColumnCount = 2
For i = 0 To n - 1
Psup = PBurbuja - 0.052 * Dl * (Prof - 100 * i)
Dg.Item(0, i).Value = (Prof - 100 * i)
Dg.Item(1, i).Value = Psup
Next
End Sub
End Class

Ejercicio # 13
Desarrollar un programa en vb que determine la presin que se registra en
fondo cuando ingresa una burbuja de gas al pozo cuando este est cerrado,
teniendo en cuenta que la altura del gas se considera despreciable y la
burbuja no se descomprime conserva su presin en todo el transcurso de la
ascendencia.
Modelo matemtico:

Para el Primer caso la presin en superficie seria:


DAVID SALOMON ALIAGA

Pgina 49

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

PFondo=PBurbuja
Para el segundo Caso:
PFondo=PBurbuja+Phidrostatica
Para el Tercer Caso:
PFondo= PBurbuja + Phidrostatica
Formula estndar

PFondo=Pburbuja+0.052densidad LodoH Lodo

Dg

Txt_Dl

Txt_Prof

Txt_PBurbuja

Btn_Calcular

Cdigo:
Public Class Form1
Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim PFondo, Prof, Dl, PBurbuja As Single
Dim n As Integer
Prof = Val(Txt_Prof.Text)
PBurbuja = Val(Txt_PBurbuja.Text)
Dl = Val(Txt_Dl.Text)

DAVID SALOMON ALIAGA

Pgina 50

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

n = Prof / 100 + 1
Dg.RowCount = n
Dg.ColumnCount = 2
For i = 0 To n - 1
PFondo = PBurbuja + 0.052 * Dl * (100 * i)
Dg.Item(0, i).Value = (Prof - 100 * i)
Dg.Item(1, i).Value = PFondo
Next
End Sub
End Class

Ejercicio # 14
Desarrollar un programa en Vb que determine la condicin de un trepano, es
decir que en funcin a su desgaste lo clasifique en Nuevo, usado, o Inutilizable,
tambin que determine cuantos trpanos son nuevos, usados y inutilizable.
Tomar en cuenta que un trepano se Considera Nuevo cuando su desgaste en
menor al 5%,
Se considera usado cuando su desgaste est entre mayor al 5% y menor al 30
%
Si tiene un desgaste mayor al 30 % se considera inutilizable.

Dg

Txt_Cantidad

DAVID SALOMON ALIAGA

Lbl_Nuevo

Pgina 51

Lbl_Usado

Lbl_Inutilizable

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Desgaste, N, U, INU As Single
Dim Cantidad As Integer
Dim Trepano As String
Cantidad = Val(Txt_Cantidad.Text)
N=0
U=0
INU = 0
Dg.RowCount = Cantidad
Dg.ColumnCount = 3
For i = 0 To Cantidad - 1
Trepano = InputBox("Tipo de Trepano", "Analizar Trepano", "")
Desgaste = Val(InputBox("Introduzca el desgaste del Trepano", "Analizar Trepano",
""))
If Desgaste < 5 Then
N=N+1
Dg.Item(2, i).Value = "Nuevo"
ElseIf Desgaste <= 30 Then
U=U+1
Dg.Item(2, i).Value = "Usado"
ElseIf Desgaste > 30 Then
INU = INU + 1
Dg.Item(2, i).Value = "Inutilizable"
End If
Dg.Item(0, i).Value = Trepano
Dg.Item(1, i).Value = Desgaste
Next
Lbl_Inutilizable.Text = (INU)
Lbl_Nuevo.Text = (N)
Lbl_Usado.Text = (U)
End Sub
End Class

DAVID SALOMON ALIAGA

Pgina 52

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejercicio # 15
Desarrollar un Programa en Vb que contabilice las toneladas millas de cada
operacin, como tambin que compare con la tonelada milla del cable que
puede resistir y que determine cuanto de vida le resta al cable al realizar
cualquier operacin.

Dg

Txt_n

Txt_Rcable

Btn_Calcular

DAVID SALOMON ALIAGA

Pgina 53

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Tm, Tma, Rcbale, TmRestante As Single
Dim n As Integer
n = Val(Txt_n.Text)
Rcbale = Val(Txt_Rcable.Text)
Dg.ColumnCount = 3
Dg.RowCount = n
Tma = 0
For i = 0 To n - 1
Tm = Val(InputBox("Introduxca la Tonelada Milla de la Operacion", "Analisis Tonelada
Milla", ""))
Tma = Tma + Tm
TmRestante = Rcbale - Tma
If TmRestante < 10 Then
MsgBox("El cable solo resistira un viaje de 10 tonelada millas es necesario
cambiar el cable porque la llego al limite de su resistencia")
End If
Dg.Item(0, i).Value = Tm
Dg.Item(1, i).Value = Tma
Dg.Item(2, i).Value = TmRestante
Next
End Sub
End Class

DAVID SALOMON ALIAGA

Pgina 54

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Ejercicio # 16
Se desea analizar las presiones que generaran varios lodos por lo que se
considera una densidad mxima y una densidad mnima de lodo, que tendr
una variacin dentro del rango, se desea analizar las presiones que generaran
los lodos a una profundidad.
Para ello el anlisis de realizara en un datagridview

Dg

Txt_Profundidad

Txt_DlMax

Txt_DlMin

Btn_Calcular

DAVID SALOMON ALIAGA

Pgina 55

Txt_VR

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim Dlmax, Dlmin, Vr, profundidad As Single
Dim n, m, j As Integer
Dim Presion As Single
Dlmax = Val(Txt_DlMax.Text)
Dlmin = Val(Txt_DlMin.Text)
profundidad = Val(Txt_Profundidad.Text)
Vr = Val(Txt_VR.Text)
n = profundidad / 100 + 1
m = (Dlmax - Dlmin) / Vr + 1
Dg.ColumnCount = m + 1
Dg.RowCount = n + 1
Dg.Item(0, 0).Value = "Profundidad"
For i = 1 To n
Dg.Item(0, i).Value = profundidad - 100 * (i - 1)
Next
For j = 1 To m
Dg.Item(j, 0).Value = "Dendidad" + CStr(Dlmin)
For i = 1 To n
Presion = 0.052 * Dlmin * (profundidad - 100 * (i - 1))
Dg.Item(j, i).Value = Presion
Next
Dlmin = Dlmin + Vr
Next
End Sub
End Class

Prueba Para Verificar Cdigo. F5

DAVID SALOMON ALIAGA

Pgina 56

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Colocamos los datos.


Y hacemos correr el programa.

Se puede verificar el cdigo al hacer correr la tabla.


Ejercicio # 17

DAVID SALOMON ALIAGA

Pgina 57

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Desarrollar un programa en Vb que realice el control de trayectoria de un pozo


teniendo en cuenta que se tendr la profundidad medida, el Azimuth y la
inclinacin de un punto, realizar el programa con las formulas necesarias.
Modelo de clculo:
Se puede realizar por mtodo Tangencial.
Donde
TVD=( md 2md 1 )cos ( Incl 2)

Desplaz= ( md 2md 1 )sin( Incl 2)

N = Desplazcos ( AZ 2)

E= Desplazsin( AZ 2)

Para realizar este programa se lo puede realizar por varios mtodos, podemos
introducir los datos desde un inputbox o podemos introducir los datos desde la
grilla, para ello realizaremos los dos ejemplos.

DAVID SALOMON ALIAGA

Pgina 58

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dg

VISUAL

Txt_n

Btn_Calcular
Para este programa utilizaremos objeto input box para introducir los datos.

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim n As Integer
Dim Md(), Az(), Incl() As Single
Dim Tvd(), Desplaz(), Norte(), Este() As Single
n = Val(Txt_n.Text)
ReDim Md(n - 1), Az(n - 1), Incl(n - 1), Tvd(n - 1), Desplaz(n - 1), Norte(n - 1), Este(n - 1)
Dg.ColumnCount = 7
Dg.RowCount = n
For i = 0 To n - 1
Md(i) = Val(InputBox("Introduzca Md Survey" + CStr(i), "Calculo Direccional", ""))
Incl(i) = Val(InputBox("Introduzca Inclinacion Survey" + CStr(i), "Calculo
Direccional", ""))
Az(i) = Val(InputBox("Introduzaca Azimuth" + CStr(i), "Calculo Direccional", ""))
Dg.Item(0, i).Value = Md(i)
Dg.Item(1, i).Value = Incl(i)
Dg.Item(2, i).Value = Az(i)
Next
For i = 1 To n - 1
Tvd(i) = Tvd(i - 1) + (Md(i) - Md(i - 1)) * Math.Cos(Incl(i))
Desplaz(i) = Desplaz(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i))
Norte(i) = Norte(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i)) * Math.Cos(Az(i))
Este(i) = Este(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i)) * Math.Sin(Az(i))

DAVID SALOMON ALIAGA

Pgina 59

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
Dg.Item(3,
Dg.Item(4,
Dg.Item(5,
Dg.Item(6,
Next
End Sub
End Class

i).Value
i).Value
i).Value
i).Value

=
=
=
=

VISUAL

Tvd(i)
Desplaz(i)
Norte(i)
Este(i)

Modelo si se quiere Obtener datos desde la grilla.

Dg

Txt_n

Btn_Dimensionar

Btn_Calcular

En este caso se adiciono el botn Dimensionar cuya funcin principal ser


dimensionar la grilla para que se puede introducir los datos, una vez
DAVID SALOMON ALIAGA

Pgina 60

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

introducidos los datos se proceder a realizar el clculo, en los dos programas


se realizaron con vectores, ya que los vectores proporcionan un
almacenamiento ms amplio al momento de realizar clculos iterativos.

Public Class Form1


Dim n As Integer
Dim Md(), Az(), Incl() As Single
Dim Tvd(), Desplaz(), Norte(), Este() As Single
Private Sub Btn_Dimensionar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Dimensionar.Click
n = Val(Txt_n.Text)
ReDim Md(n - 1), Az(n - 1), Incl(n - 1), Tvd(n - 1), Desplaz(n - 1), Norte(n - 1), Este(n - 1)
Dg.ColumnCount = 7
Dg.RowCount = n
End Sub

Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btn_Calcular.Click
For i = 0 To n - 1
Md(i) = Val(Dg.Item(0, i).Value)
Incl(i) = Val(Dg.Item(1, i).Value)*math.PI/180
Az(i) = Val(Dg.Item(2, i).Value)*Math.PI/180
Next
For i = 1 To n - 1
Tvd(i) = Tvd(i - 1) + (Md(i) - Md(i - 1)) * Math.Cos(Incl(i))
Desplaz(i) = Desplaz(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i))

DAVID SALOMON ALIAGA

Pgina 61

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Norte(i) = Norte(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i)) * Math.Cos(Az(i))


Este(i) = Este(i - 1) + (Md(i) - Md(i - 1)) * Math.Sin(Incl(i)) * Math.Sin(Az(i))
Dg.Item(3, i).Value = Tvd(i)
Dg.Item(4, i).Value = Desplaz(i)
Dg.Item(5, i).Value = Norte(i)
Dg.Item(6, i).Value = Este(i)
Next
End Sub
End Class

Funcionamiento del Cdigo hacemos Correr el Programa con F5.

En cantidad de datos introducimos 5 y hacemos Click en dimensionar.

DAVID SALOMON ALIAGA

Pgina 62

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Como se ve en la figura al hacer click en el botn dimensionar se crean 5 filas


en la grilla, procedemos a introducir datos Md, Inclinacin y Azimuth.

Una Vez Introducidos los datos damos Click En Realizar Clculos.

DAVID SALOMON ALIAGA

Pgina 63

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Y vemos que se realizan los clculos, en este caso se utilizaron dos botones, ya
que es necesario siempre dimensionar la grilla antes de poder introducir los
datos.

Matrices
Los matrices son arreglos de cosas, estas cosas pueden ser nmeros, objetos,
cadenas, procedimientos, etc.
Una matriz se caracteriza por la dimensin y por la longitud, es decir la
dimensin llegara a ser si es de una, dos o tres dimensiones, y la longitud es
cuanto en cantidad posee el vector.
A la matriz sea cual sea, se lo puede manipular a cada objeto que posea por la
posicin de su objeto.
Ejemplo:

10

Hola

DAVID SALOMON ALIAGA

120

+-*
Pgina 64

0.0002

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

1
5

VISUAL

6
Si vemos el ejemplo es una matriz mono-dimensional, de una sola

dimensin, tiene una longitud de de 6 y puede almacenar nmeros enteros,


nmeros reales, signos y cadenas.
Si vemos en la posicin 1 el vector almacena un nmero, en la posicin 2
almacena una palabra, como tambin no puede almacenar nada como se ve en
la posicin 6.
Ejemplos de matrices.

Matriz Bidimensional 4 x 4
Matrices en Visual Basic.
Todas las matrices programadas en visual Basic, se deben dimensionar y
declarar que tipos de datos puede almacenar la matriz, es importante
mencionar una matriz en visual solamente puede contener un tipo de datos.
Las matrices se pueden dividir en matrices dinmicas, y matrices estticas.
Una matriz esttica se declara su longitud al inicio.
Ejemplo
Dim M(9) as single

DAVID SALOMON ALIAGA

Pgina 65

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

Como seala el ejemplo la matriz llamada M tiene una Mono-Dimensin y una


longitud de 0-9 y almacena valores reales
Una matriz dinmica se declara su longitud despus de haber recogido algn
dato.
Ejemplo
Dim M() as single
Redim M(9)
Como se ve en el ejemplo, al inicio solamente se declara la dimensin, y el
tipo de datos que va a almacenar la matriz y luego se dimensiona su
dimensin, se utiliza matrices dinmicas cuando no se tiene la certeza absoluta
de que longitud va a tener la matriz, es decir de cuantos datos va a almacenar.

Ejemplo # 18
Realizar un programa en Visual Estudio para poder simular, como se mover el
punto neutro (Respecto a la parte inferior del arreglo del fondo) en la zona de
los PM de una sarta de perforacin, si se hace variar el WOB desde un valor 0
hasta un valor final, establecido por el usuario. Las especificaciones adicionales
son:
a) Los Intervalos de incrementos son iguales.
b) Si se conoce la longitud total del arreglo de fondo, el programa debe
advertir el momento en que el punto neutro en la zona de transicin PM
Tubera.
DAVID SALOMON ALIAGA

Pgina 66

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
c) Utilizar un DataGridView para Visualizar los datos.
Se debe realizar un anlisis de fuerzas en el fondo.

F=0
n
Donde:

F 1+ F 2+Wdc E=Wob

Entonces:

Hpn=

wobF 1F 2+ E
Wlb Dc

DAVID SALOMON ALIAGA

Pgina 67

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dg Txt_Dl Txt_IdDp

Txt_OdDp

Txt_LnDp

Txt_OdDc

VISUAL

Txt_IdDc

Txt_LnDc Txt_Prof

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim IdDp, OdDp, IdDc, OdDc, LnDp, LnDc, Dl, wob, Prof, F1, F2, Empuje, LbDc, Pn, Hpn,
LnPn As Single
Dim n As Integer
IdDp = Val(Txt_IdDp.Text)
OdDp = Val(Txt_OdDp.Text)
IdDc = Val(Txt_IdDc.Text)
OdDc = Val(Txt_OdDc.Text)
LnDp = Val(Txt_LnDp.Text)
LnDc = Val(Txt_LnDc.Text)
Dl = Val(Txt_Dl.Text)
Prof = Val(Txt_Prof.Text)
wob = Val(Txt_Wob.Text)
F1 = 0.052 * Dl * LnDp * Math.PI / 4 * (OdDc ^ 2 - OdDp ^ 2)
F2 = 0.052 * Dl * LnDp * Math.PI / 4 * (IdDp ^ 2 - IdDc ^ 2)
LbDc = Math.PI / 4 * (OdDc ^ 2 - IdDc ^ 2) / 0.2945
Empuje = 0.052 * Dl * Prof * Math.PI / 4 * (OdDc ^ 2 - IdDc ^ 2)

DAVID SALOMON ALIAGA

Pgina 68

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

VISUAL

n = wob / 5 + 1
Dg.RowCount = n
Dg.ColumnCount = 3
wob = 0
For i = 0 To n - 1
Hpn = (wob - F1 - F2 + Empuje) / LbDc
Pn = Hpn / LnDc
If Pn >= 1 Then
MsgBox("El punto neutro esta en zona de Transicion")
End If
LnPn = LnDp + (1 - Pn) * LnDc
Dg.Item(0, i).Value = wob
Dg.Item(1, i).Value = Pn
Dg.Item(2, i).Value = LnPn
Next
End Sub
End Class

Ejemplo # 19
Un pozo cerrado por causa de un amago de descontrol, registra una presin en
superficie, a la cual se va incrementando con el tiempo. Suponiendo que se
conoce la presin de burbuja de gas (Constante) que entro en el pozo y la
densidad de lodo en el pozo, la burbuja es puntual y asciende por el EA sin
expandirse. Realizar un programa en Visual Estudio para predecir la densidad
equivalente en fondo, a medida que la burbuja asciende por el EA, a intervalos
de iguales alturas. La profundidad del pozo es conocida.

DAVID SALOMON ALIAGA

Pgina 69

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010

Dg

Txt_Dl

Txt_Prof

Txt_Pburbuja

Public Class Form1


Private Sub Btn_Calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Calcular.Click
Dim PFondo, Prof, Dl, PBurbuja, DensidadEquivalente As Single
Dim n As Integer
Prof = Val(Txt_Prof.Text)
PBurbuja = Val(Txt_PBurbuja.Text)
Dl = Val(Txt_Dl.Text)
n = Prof / 100 + 1
Dg.RowCount = n
Dg.ColumnCount = 2
For i = 0 To n - 1
PFondo = PBurbuja + 0.052 * Dl * (100 * i)

DAVID SALOMON ALIAGA

Pgina 70

VISUAL

CURSO DE PROGRAMACION APLICADO A INGENIERIA PETROLERA


BASIC 2010
DensidadEquivalente = PFondo / (0.052 * Prof)
Dg.Item(0, i).Value = (Prof - 100 * i)
Dg.Item(1, i).Value = DensidadEquivalente
Next
End Sub
End Class

DAVID SALOMON ALIAGA

Pgina 71

VISUAL

Potrebbero piacerti anche