Anda di halaman 1dari 19

1. Declaracin de variables en Visual Basic .

NET
Para empezar con las declaraciones de variables antes debemos de conocerlas, entonces a la pregunta Qu es una variable?, en trminos generales podemos decir que es un espacio en memoria de la computadora que tiene un nombre y un tipo, bien, ahora Para qu sirven las variables?, sirven para el almacenamiento de datos, estos pueden ser de tipo: entero, decimal, fechas, cadenas y booleano conocidos como tipo de datos primitivos, ya de ellos se derivan ms. Al declarar una variable debemos de tener en cuenta lo siguiente: el nombre de las variables no deben utilizar ms de 255 caracteres, ni pueden ser palabras reservadas del lenguaje de programacin (Visual Basic .Net), podemos utilizar abreviaturas del tipo de dato ya que nos servir para el mejor control de nuestras variables. Dentro del mbito de las variables se encuentran las Constantes, una constante es un Valor que no cambiar en el transcurso de la ejecucin del programa. A continuacin los ejemplos respectivos. Declaracin de variables: Dim NombreDeVariable [as tipo]

Dim nCantidad As Integer Dim sNombre As String Dim bDescontar As Booleano

Declaracin de constante:

Const dTipoCambio As Double=3.2 Const nPersonas As Integer=5 Const sNombreWeb As String=solocodigofuente

Las palabras de color azul indican que es una palabra reservada, quiere decir que son propias del Lenguaje de programacin, la palabra Dim indica la que se crear alguna variable. mbito de las Variables: El mbito de las variables determina su nivel de acceso, quiere decir que una variable declarada dentro de un bloque de cdigo, slo podr ser utilizado dentro de ella, ms no en otro bloque de cdigo. Ejemplo: bloque_de_codgio_1() Dim nCantidad As Integer fin_de_bloque1

bloque_de_codigo_2() Dim sNombre As String fin_de_bloque2 Dentro del bloque1 tenemos la variable nCantidad de tipo numrico, esta variable no podr ser utilizado dentro del bloque2 ya que su mbito es de tipo local, pudiendo ser declarado fuera del bloque de cdigo y as ser una variable publica, de la misma manera con la variable sNombre del bloque2.

2. Estructura de control IF THEN en VB.NET


Las estructuras de control lgicas nos permiten encontrar una solucin en casi todo tipo de problemas, se utilizan cuando en el desarrollo de un problema debemos tomar una decisin para establecer qu camino seguir en su solucin Para este tutorial, se utilizaran las variables A,B,C de tipo Integer. ESTRUCTURA "IF THEN"

La estructura de control SI ENTONCES permite que el flujo del programa siga un camino especifico si se cumple una CONDICION o CONJUNTO DE CONDICIONES, si la condicin no se cumple, no realiza este paso El seudocdigo es:
01 SI [condicin] ENTONCES 02 HACER OPERACION 03 FIN DE SI

Y su implementacin en VB.NET
01 If A > B Then 02 Console.WriteLine("A es mayor") 03 End If

ESTRUCTURA "IF THEN ELSE"

La estructura selectiva SI ENTONCES/SINO permite que el flujo del programa se bifurque por dos caminos distintos dependiendo si la CONDICION se cumple o no, si la condicin resulta verdadera, desarrollara ciertas operaciones y sino, desarrollara otras operaciones, cuando se termine las operaciones, el ciclo del programa vuelve a la secuencia normal. El seudocdigo es:
01 SI [Condicion] ENTONCES 02 HACER OPERACION 1 03 SINO 04 HACER OPERACION 2 05 FIN DE SI

Y el cdigo en Visual Basic.net


01 If A > B Then 02 Console.WriteLine("A es mayor") 03 Else 04 Console.WriteLine("B es mayor") 05 End If

LA ESTRUCTURA "IF THEN" ANIDADO

La mayora de los programas no cuentan con una sola estructura de seleccin, sino que estn compuestas de varias estructuras una despus de la otra, estas son las estructuras de seleccin anidadas. Seudocdigo:
01 02 03 04 05 06 07 SI [condicin 1] ENTONCES HACER OPERACION 1 SINO SI [condicin 2] ENTONCES HACER OPERACION 2 SINO HACER OPERACION 3 FIN DE SI

En VB.net
01 02 03 04 05 06 07 If A > B Then Console.WriteLine("A es mayor que B") ElseIf A > C Then Console.WriteLine("A es menor que B pero mayor que C") Else Console.WriteLine("A es menor que B y C") End If

3. Condicional multiple "SELECT CASE"


La estructura condicional mltiple SELECT CASE (si mltiple), nos permite que el flujo del programa se bifurque en varias ramas y no solo en dos como en las estructuras If/Then. As, si se tiene un valor 1, se ejecuta la accion1, si se tiene un valor 2, se ejecuta la accin 2, si toma un valor N, se ejecuta una accin N. y despus se contina con el resto del programa.

Seudocdigo

01 SI [CONDICION] TOMA 02 Valor 1: Hacer accin 03 Valor 2: Hacer accin 04 Valor 3: Hacer accin 05 ... 06 Valor N: Hacer accin 07 FIN

1 2 2 N

La estructura selectiva es muy flexible, lo que permite aplicarla de diferentes formas 1. Esta aplicacin pide un nmero por consola y si este se encuentra entre 1,2,3 4, escribe en pantalla su valor en formato String, si el nmero no se encuentra dentro de ese rango, escribe "fuera de rango"

01 Module Module1 02 03 Sub Main() 04 Dim numero As Integer 05 numero = Val(Console.ReadLine) 06 Select Case numero 07 Case 1 08 Console.WriteLine("UNO") 09 Case 2 10 Console.WriteLine("DOS") 11 Case 3 12 Console.WriteLine("TRES") 13 Case 4 14 Console.WriteLine("CUATRO") 15 Case Else 16 Console.WriteLine("FUERA DE RANGO") 17 End Select 18 Console.ReadLine() 19 End Sub 20 21 End Module

2. Este programa pide un numero por consola, despus evalua el numero introducido, si el numero es "0", escribe "el numero es cero", si el numero esta entre el rango de 1 a 10, escribe "el numero se encuentra entre 1 y 10", si el numero es mayor a 10 pero menor a 20, escribe "el numero es mayor a 10 pero menor a 20", si el numero tiene uno de los valores 20, 30, 40, escribe "el numero es 20, 30 40", si el numero no entra en ninguno de esos rangos, el programa escribe "no se que numero es..."
01 Module Module1 02 03 Sub Main() 04 Dim numero As Integer 05 numero = Val(Console.ReadLine) 06 Select Case numero 07 Case 0 08 Console.WriteLine("el numero 09 Case 1 To 10 10 Console.WriteLine("el numero 10") 11 Case Is > 10, Is < 20 12 Console.WriteLine("el numero a 20") 13 Case 20, 30, 40 14 Console.WriteLine("el numero 15 Case Else 16 Console.WriteLine("no se que 17 End Select 18 Console.ReadLine() 19 End Sub 20 21 End Module

es Cero") se encuentra entre 1 y es mayor a 10 pero menor es 20, 30 40") numero es...")

En este ejemplo hacemos uso de SELECT CASE y para evaluar correctamente el numero ingresado hacemos uso de Case 1 to 10, esto quiere decir que ejecutara la accin si el numero est en el rango de 1 a 10 , es equivalente a escribir 1,2,3,4,5,6,7,8,9,10. Tambin se hace uso de "Case Is > 10, Is <20" , esto quiere decir que ejecutara la accin SI el numero es mayor a 10 Y menor a 20.

4. Estructura Do While Loop


La estructura Do While Loop nos permiten realizar bucles que se repiten mientras una condicin dada sea cierta, osea, cuando la condicin no se cumpla, se sale del bucle y se continua con el programa. El seudocdigo es

01 MIENTRAS <Condicion> HACER 02 Accion 1 03 Accion 2 04 ...

05 Accion n 06 FIN MIENTRAS

El diagrama de flujo

Ejemplo: Escribir numeros mientras el contador sea menor o igual a 10


Module 02 03 04 05 06 07 08 09 10 11 12 13 End Module1 Sub Main() Dim contador As Integer contador = 1 Do While contador <= 10 Console.WriteLine("Contador: " & contador) contador = contador + 1 Loop Console.Read() End Sub Module

A veces tambin es necesario que la "accin" se realice una vez antes de ejecutar la condicin del bucle While, para esto se utiliza la forma Do Loop While El seudocdigo en espaol
01 REPETIR 02 Accion 1 03 Accion 2 04 ... 05 Accion 3 06 MIENTRAS QUE <condicin>

Y el diagrama de flujo

Ej.: El mismo ejemplo anterior pero esta vez la condicin esta al final
01 Module Module1 02 03 Sub Main() 04 Dim contador As Integer 05 contador = 1 06 Do 07 Console.WriteLine("Contador: " & contador) 08 contador = contador + 1 09 Loop While contador <= 10 10 Console.Read() 11 End Sub 12 13 End Module

Estos bucles se ejecutan cuando la condicin dada es verdadera (TRUE), pero si queremos que el ciclo se ejecuta mientras la condicin sea falsa (FALSE), debemos cambiar el WHILE por el UNTIL, quedando para el primer caso de la siguiente forma:
01 Module Module1 02 03 Sub Main() 04 Dim contador As Integer 05 contador = 1 06 Do Until contador > 10 07 Console.WriteLine("Contador: " & contador) 08 contador = contador + 1 09 Loop 10 Console.Read()

11 End Sub 12 13 End Module

Y para la segunda forma con la condicin al final:


01 Module Module1 02 03 Sub Main() 04 Dim contador As Integer 05 contador = 1 06 Do 07 Console.WriteLine("Contador: " & contador) 08 contador = contador + 1 09 Loop Until contador > 10 10 Console.ReadLine() 11 End Sub 12 13 End Module

5. Estructura DESDE (For / Next)


La estructura repetitiva DESDE (For/Next) es un ciclo de repeticin controlado por "contador" debido a que esta estructura se la emplea cuando se conoce de antemano la cantidad de iteraciones que realizar el bucle. El contador que se utiliza se denomina contador automtico, ya que acta como contador incrementando o decrementando su valor a una razn constante, a partir de un valor inicial hasta un valor final fijados con anterioridad o conocidos. Representacin de la estructura DESDE

Codificacin

1) Supongamos que deseamos imprimir numeros del 1 al 10, ambos incluidos, el cdigo necesario es:

01 Dim i As Integer 02 For i = 1 To 10 03 Console.WriteLine("Linea " & i) 04 Next

En este caso no se especific ningn tipo de incremento, por lo que se asume que el contador (i) ser incrementado en una unidad a cada iteracin. 2) Si deseamos imprimir solo los numeros pares de 1 a 10, el cdigo es:

01 Dim i As Integer 02 For i = 0 To 10 Step 2 03 Console.WriteLine("numero " & i) 04 Next

Para especificar que el contador se incremente de a 2 o N unidades, se utiliza la palabra reservada STEP, el valor que toma step, puede ser positivo, negativo e incluso cero, en este ltimo caso, el ciclo se convierte en un ciclo sin fin.

3) El ciclo DESDE, puede terminar antes de que el contador llegue a su FIN, para eso se utiliza la palabra reservada Exit For, esta sentencia provoca la salida inmediata del bucle, por ej. En el siguiente cdigo el contador tiene un valor inicial de 1 hasta 10 e imprimir los numeros en cada iteracin, pero se ha aadido la condicin de que cuando llegue a 5, el ciclo se rompa y salga inmediatamente del bucle.
01 02 03 04 05 Dim i As Integer For i = 1 To 10 If i = 5 Then Exit For Console.WriteLine("numero " & i) Next

4) El ciclo DESDE tambin es utilizado para recorrer cadenas de caracteres, para ello la sintaxis es

01 PARA CADA [elemento de cadena] EN [cadena] 02 realizar accin 03 FIN

Si se quiere imprimir cada carcter de la variable "CADENA" la codificacin es:

01 02 03 04 05

Dim cadena As String cadena = "Hola Mundo" For Each cadena In cadena Console.WriteLine(cadena) Next

Se va tomando los valores de cadena(0) hasta cadena(n) y se imprimen los valores y el resultado:

6. Bucles condicionales
Los bucles condicionales o controlados por condicin se utilizan cuando no se conoce a priori, el nmero exacto de iteraciones a realizar. Existen diferentes tcnicas para realizar el control de un bucle:

1. Solicitar al usuario la continuacin de un bucle. Este mtodo consiste simplemente en pedir al usuario ms entradas por teclado

Ejemplo: va sumando enteros mientras la respuesta del usuario sea "S" o "s"
01 02 03 04 05 06 07 08 09 10 Sub Main() Dim respuesta As String Dim suma As Integer suma = 0 Do Console.WriteLine("Introduzca un numero cualquiera") Console.Write("Numero: ") suma = suma + Val(Console.ReadLine) Console.WriteLine("para continuar presione s/S") respuesta = Trim(Console.ReadLine())

11 12 13 14

Loop While (respuesta = "S") Or (respuesta = "s") Console.WriteLine("Suma total : " & suma) Console.ReadLine() End Sub

2.- Valor Centinela. Un centinela es un valor especial utilizado para sealar el final de una lista de datos, el valor elegido debe ser totalmente distinto de los posibles valores de la lista para que se pueda utilizar para sealar el final de la lista.

Ejemplo: si el bucle lee una lista de numeros positivos, un nmero negativo se puede utilizar como valor centinela.

01 Sub Main() 02 Dim suma As Integer 03 Dim numero As Integer 04 suma = 0 05 Console.Write("Numero: ") 06 numero = Val(Console.ReadLine) 07 Do While (numero >= 0) 08 suma = suma + numero 09 Console.Write("Numero: ") 10 numero = Val(Console.ReadLine) 11 Loop 12 Console.WriteLine("Suma total : " & suma) 13 Console.ReadLine() 14 End Sub

3. Uso de banderas o interruptores. Una bandera o interruptor (Flag) es una variable lgica que se utiliza para conservar el estado verdadero o falso de una condicin. Se denomina bandera o interruptor por asociarse a un interruptor (encendido/apagado) o a una bandera (Arriba/abajo), el valor del interruptor debe inicializarse antes de comenzar el bucle para preparar la siguiente iteracin.

Ejemplo: leer enteros hasta que se introduce un nmero positivo

01 02 03 04 05 06 07 08 09 10 11 12 13 14

Sub Main() Dim bandera As Boolean bandera = False Do While Not bandera Console.WriteLine("Escriba un numero mayor a cero") Console.Write("Numero: ") bandera = Val(Console.ReadLine) > 0 If Not bandera Then Console.WriteLine("El numero es negativo") End If Loop Console.WriteLine("Termino el ciclo") Console.ReadLine() End Sub

7. Arreglos en VB.NET
Un array es un conjunto finito y ordenado de elementos homogneos. Ordenado porque los elementos n-esimo de un array puede ser identificado, y homogneo porque todos los elementos del array son del mismo tipo de datos. El arreglo ms simple es el unidimensional (matriz de una dimensin). A diferencia de Visual Basic clsico que nos permita especificar los lmites de un arreglo, en .NET un arreglo siempre empieza en 0 (cero), por tanto el arreglo tendr un elemento ms del valor indicado como ndice superior. En el ejemplo siguiente, se tiene un vector X de 5 elementos de tipo real. Se nota que empieza en cero, por tanto su ndice superior es 4 y no 5

DECLARACION DE UN ARREGLO EN VB.NET


01 DIMENSION Arreglo(indice_superior) TIPO_DE_DATOS

Donde DIMENSION puede ser DIM, PUBLIC, PRIVATE, y TIPO DE DATOS, es el tipo de datos que tendr el arreglo, por ejemplo
01 02 03 04 05 06 'declara un arreglo con 12 elementos de tipo string Dim meses(11) As String 'declara un arreglo con 7 elementos de tipo entero Private dia_semana(6) As Byte 'declara un arreglo con 24 elementos de tipo real Public hora(23) As Double

Ejemplo: Se desea construir una aplicacin que lea una lista de calificaciones de una clase y calcule su media e imprima la lista de calificaciones mayores a la media.
01 Module Module1 02 'constante que sirve para poner un limite al array 03 Const limite = 15 04 'se crea un array de tipo real 05 Dim lista_notas(limite) As Single 06 07 Sub Main() 08 'declaraciones de variables 09 Dim numero As Integer 10 Dim suma As Single 11 Dim media As Single 12 13 Console.Write("Introduzca numero de calificaciones: ")

14 numero = Val(Console.ReadLine) 15 If numero > limite Then 16 Console.WriteLine("No se procesan mas de " & limite & " calificaciones") 17 Else 18 suma = 0 19 Console.WriteLine("Introduzca calificaciones") 20 'a medida que el usuario introduce las calificaciones 21 'estas se colocan en el array 22 For i = 0 To numero - 1 23 Console.Write(" Nota[" & (i + 1) & "]= ") 24 lista_notas(i) = Val(Console.ReadLine) 25 suma = suma + lista_notas(i) 26 Console.WriteLine() 27 Next 28 'se obtiene la media 29 media = suma / numero 30 Console.WriteLine("La media es: " & media) 31 Console.WriteLine("------------------------------------------------") 32 Console.WriteLine("Lista de Calificaciones mayores a la media es") 33 ' se recore el array buscando calificaiones mayores a la media 34 For i = 0 To numero - 1 35 If lista_notas(i) > media Then 36 Console.WriteLine(" " & lista_notas(i)) 37 End If 38 Next 39 Console.WriteLine("------------------------------------------------") 40 End If 41 Console.WriteLine("presione una tecla para terminar...") 42 Console.ReadLine() 43 End Sub 44 45 End Module

Resultado:

8. Arreglos con N-dimensiones "Matrices"


Un arreglo de dos o ms dimensiones es denominado tambin MATRIZ o TABLA. En la prctica no es comn trabajar con matrices de ms de 3 dimensiones, aunque es posible crearlos. Una matriz bidimensional, est compuesto por FILAS y COLUMNAS, as por ejemplo, en la imagen de abajo tenemos una matriz de 5 columnas por 5 filas, donde para ubicar un elemento de esa matriz, se debe especificar ambas dimensiones matriz(fila, columna).

DECLARACION DE UNA MATRIZ EN .NET Una matriz se declara al igual que un arreglo unidimensional, pero especificando todas las dimensiones que se deseen, as por ejemplo, para declarar una matriz HORARIO de tipo STRING, que tendr 7 columnas (das de la semana) y 24 filas (horas) se tiene:
01 Dim HORARIO(23, 6) As String

Tambin puede declarase una matriz sin rango inicial, esto se utiliza cuando no sabemos de antemano cuantas dimensiones podr tener una matriz, por ejemplo:
01 Dim matriz(,) As Byte

Se declara una matriz de tipo byte, esta est vaca y hasta que no se especifique el rango de las dimensiones, al tratar de utilizar un elemento de esa matriz, este causa una excepcion. Para declarar las dimensiones una vez creada la matriz, se utiliza la instruccin REDIM:
01 ReDim matriz(fila, columna)

Ejemplo: Escribir un programa que permita multiplicar dos matrices ledas por teclado y visualizar la matriz resultante.

Solucin: Si las matrices A,B y la matriz resultante es C, se pueden multiplicar si el numero de columnas de la matriz A es igual al nmero de filas de la matriz B; entonces la matriz C tiene el numero de filas de la matriz A y el numero de columnas de la matriz B. Los elementos de la matriz C se obtienen a partir de la siguiente ecuacin:

Dnde:

Cdigo fuente:
01 Module Module1 02 Const maximo As Byte = 19 03 04 'se crea una estructura tipo matriz con sus propios procedimientos 05 Structure matriz 06 07 Public m(,) As Single 08 09 Public Sub New(ByVal f As Single, ByVal c As Single) 10 ReDim m(f, c) 11 End Sub 12 13 Public Sub introducir(ByVal t As String, ByVal nf As Byte, ByVal nc As Byte) 14 Dim i, j As Byte 15 Console.WriteLine(t) 16 Console.WriteLine("------------------------------------") 17 For i = 0 To nf 18 For j = 0 To nc 19 Console.Write("Matriz[" & i & "," & j & "]= ") 20 m(i, j) = Val(Console.ReadLine) 21 Next 22 Next 23 Console.WriteLine("------------------------------------") 24 End Sub 25 26 Public Sub imprimir(ByVal t As String, ByVal nf As Byte, ByVal nc As Byte) 27 Dim i, j As Byte 28 Console.WriteLine(t) 29 For i = 0 To nf 30 For j = 0 To nc 31 Console.Write(m(i, j) & " ") 32 Next 33 Console.WriteLine() 34 Next 35 Console.WriteLine() 36 End Sub 37 38 End Structure 39 40 Dim A As matriz = New matriz(maximo, maximo) 41 Dim B As matriz = New matriz(maximo, maximo) 42 Dim C As matriz = New matriz(maximo, maximo) 43 44 Sub Main() 45 Dim num As Byte 46 Console.Write("Filas y columnas [i,j] = ") 47 num = Val(Console.ReadLine) - 1 48 49 If num > maximo Then 50 Console.WriteLine("el limite es un maximo de " & maximo & " filas y columnas")

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 End

Else A.introducir("Matriz A", num, num) B.introducir("Matriz B", num, num) multiplicar(num) Console.Clear() A.imprimir("Matriz A", num, num) B.imprimir("Matriz B", num, num) C.imprimir("Matriz A * B", num, num) End If Console.WriteLine("presione una tecla para terminar...") Console.ReadLine() End Sub 'procedimiento publico que calcula el producto de dos matrices Public Sub multiplicar(ByVal num As Byte) Dim i, j, k As Byte For i = 0 To num For j = 0 To num For k = 0 To num C.m(i, j) = C.m(i, j) + A.m(i, k) * B.m(k, j) Next Next Next End Sub Module

En la solucin de este problema, se hace uso de una STRUCTURE (visto en un post anterior) donde se declara la matriz y sus mtodos. Tambin se especifica como una constante el valor maximo que podr tener una matriz (columnas y filas). Resultado:

Anda mungkin juga menyukai