Dim t, i As Integer
Labeltabla.Caption = ""
t = Val(Text1.Text)
For i = 1 To 10
    Labeltabla = Labeltabla & t & " * " & i & " = " & t * i & vbCrLf
Next i
lunes, 9 de septiembre de 2013
EJERCICIOS de VISUAL BASIC
Ejercicio 1 (utilizando for – next)
Hacer un programa que solicite al usuario la cantidad de números
a ingresar, luego que permita ingresar en un Listbox los números que
correspondan. Por ultimo al finalizar el ingreso de números se deberá mostrar
el máximo y el mínimo
Por ejemplo, el programa solicita el ingreso de un numero,
ingresamos el 4. Esto indica que deberemos ingresar luego 4 números, supongamos
que ingresamos: 8, 3, 25 y 12.
Entonces al final deberemos ver como máximo al 25 y como mínimo
al 3
Ejercicios 2
Ingresar 10 números en un list, luego determinar cuantos
fueron mayores a 30 y cuantos menores a 10.
Ejercicio 3
Modificar el ejercicio anterior para que además se muestre
la sumatoria de los números ingresados y el promedio
Ejercicio 4
Ingresar números hasta que se ingrese el nro cero. Luego
informar cuantos números se ingresaron y cuantos fueron pares y cuantos impares.
( utilizar la sentencia DO WHILE- Loop)
 Tener en cuenta aquí que
para saber si un numero es par podría aplicar el MOD, que determina el valor
del resto en un cociente
Por ejemplo : res = A mod 2 ( si A es un numero ingresado y
queremos saber cual es el resto de A al dividir por 2, en este caso si el
numero es par el resto es cero y sino será distinto de cero, quizás con esta
ayuda puedan resolver como sacar cuando un numero es par o impar)
Instrucción Do...Loop (Visual Basic)
Repite un bloque de instrucciones mientras una condición Boolean sea True o hasta que la condición se convierta en True.
Do { While | Until } condition
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop
-or-
Do
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop { While | Until } condition
Término 
 | 
Definición 
 | 
Do 
 | |
While 
 | |
Until 
 | |
condition 
 | |
statements 
 | |
Continue Do 
 | |
Exit Do 
 | |
Loop 
 | 
Puede usar While o Until para especificar condition, pero no ambas.
Exit Do
Puede incluir cualquier número de instrucciones Exit Do en cualquier lugar de Do…Loop.
Cuando se utiliza dentro de bucles Do anidados, Exit Do transfiere el control fuera del bucle más profundo y al siguiente nivel de anidamiento.
domingo, 1 de septiembre de 2013
Ejercicio de SELECT CASE
Transformar en código de Visual Basic el siguiente enunciado: crear un programa que pida al usuario un número de día y un número de mes, evalúe si la entrada es correcta y en caso de que así sea calcule el día del año que es, considerando un año no bisiesto.
SOLUCIÓN
Rem [Cálculo del día del año] 
Option Explicit 
Dim Ndía%, Nmes%, DDA As Integer 
Private Sub Form_Load() 
Show 
Form1.Caption = "Cálculo día del año" 
Label1(0).Caption = "Introduzca aquí el número del día" 
Label1(1).Caption = "Introduzca aquí el número del mes" 
Command1.Caption = "Determinar día del año" 
End Sub 
Private Sub Command1_Click() 
Ndía = Val(Text1(0)) 
Nmes = Val(Text1(1)) 
LabelResultado.FontSize = 10 
LabelResultado.FontBold = True 
If Ndía >= 1 And Ndía <= 31 And Nmes >= 1 And Nmes <= 12 Then 
    Select Case Nmes 
        Case 1 
            DDA = Ndía '[DDA es día del año] 
        Case 2 
            DDA = Ndía + 31 
        Case 3 
            DDA = Ndía + 59 
        Case 4 
            DDA = Ndía + 90 
        Case 5 
            DDA = Ndía + 120 
        Case 6 
            DDA = Ndía + 151 
        Case 7 
            DDA = Ndía + 181 
        Case 8 
            DDA = Ndía + 212 
        Case 9 
            DDA = Ndía + 243 
        Case 10 
            DDA = Ndía + 273 
        Case 11 
            DDA = Ndía + 304 
        Case 12 
            DDA = Ndía + 334 
    End Select 
    LabelResultado = "El " & Ndía & " del "& Nmes & " es el día" & DDA & " del año" 
Else 
    LabelResultado = "Datos proporcionados no válidos" 
End If 
End Sub 
 | 
Aspecto gráfico:
ESTRUCTURAS DE REPETICIÓN (BUCLES) CON VISUAL BASIC
Vamos a ver cómo materializar con Visual Basic estructuras de repetición que permitirán que en nuestros programas se realice un proceso n veces. En concreto veremos las instrucciones Desde … Siguiente (For … Next) con su cláusula Paso (Step), la instrucción Mientras … Hacer (Do While … Loop) y la instrucción Hacer … Repetir Mientras (Do … Loop While).
Muchas veces podremos optar indistintamente por usar una instrucción u otra. En otros casos, es recomendable decantarse por una de ellas por hacer el programa más legible o sencillo que usando otras opciones.
INSTRUCCIÓN DESDE ... SIGUIENTE (FOR ... NEXT) Y CLÁUSULA PASO (STEP)
La sintaxis a emplear con Visual Basic es la siguiente:
| For VAR = Vi  To Vf Instrucción 1 Instrucción 2 
· 
· 
· 
      Instrucción n 
Next VAR | 
El incremento que sufre el contador es, por defecto, unitario. Es decir, el primer valor que toma VAR en el bucle será Vi, el segundoVi + 1, el tercero (Vi + 1) + 1, etc. La modificación de dicho valor de incremento la realizaremos a través de la cláusula Step después del valor Vf. Step 2 implicará que en cada repetición del bucle el contador se incremente en dos unidades, Step 5 implicará que en cada repetición del bucle el contador se incremente en cinco unidades. Un paso negativo del tipo Step -1 supone que el contador decrece en vez de incrementarse. Si el paso es negativo, Vi necesariamente habrá de ser mayor que Vf, ya que en caso contrario no se producirá la entrada en el bucle.
Con este código se nos muestra en pantalla 3 veces hola, gracias a que se ha invertido el sentido del bucle:
Option Explicit 
Dim VAR As Integer 
Dim Vi As Integer 
Dim Vf As Integer 
Private Sub Form_Load() 
Show 
Vi = 1 
Vf = 3 
For VAR = Vf To Vi Step –1 
    '[También supondría tres repeticiones For VAR = Vi to Vf] 
    Print "hola" 
Next VAR 
End Sub 
 | 
Con Visual Basic resulta admisible usar Next sin indicar la variable que está sirviendo de guía del bucle, pues todo bucle ha de tener un cierre. Sin embargo, no lo creemos recomendable pues puede dificultar la lectura y depuración de los programas.
La instrucción For ... Next es anidable dentro de sí misma o dentro de otros tipos de bucles o estructuras, debiendo seguir las pautas que ya hemos comentado.
SELECT CASE
INSTRUCCIÓN SEGÚN (CASO) HACER (SELECT CASE)
La sintaxis a emplear con Visual Basic para la instrucción Select Case es la siguiente:
| Select Case [expresión] 
Case [valor expresión 1] 
Instrucción 1 
Instrucción 2 
Case [valor expresión 2] 
Instrucción 3 
Instrucción 4 
. 
. 
. 
Case [valor expresión n] 
Instrucción k 
Case Else 
Instrucción m 
End Select | 
La expresión a evaluar puede ser un valor numérico o una cadena de texto. Sólo se puede evaluar una expresión y no múltiples expresiones. La evaluación de expresiones puede ser:
a)   De coincidencia: por ejemplo, Case 12 indicaría que si la expresión evaluada vale 12 se ejecutarán las instrucciones anexas.
b)   De intervalo: usando la palabra clave To. Por ejemplo, Case 12 To 14 indicaría que si la expresión evaluada tiene un valor comprendido entre 12 y 14 (incluidos los extremos de los intervalos), se ejecutarán las instrucciones anexas.
c)   De comparación: usando la palabra clave Is. Por ejemplo, Case Is <= 14 indicaría que si la expresión evaluada tiene un valor menor o igual a 14 se ejecutarán las instrucciones anexas.
Cuando varios casos son válidos, sólo se ejecutan las instrucciones asociadas al primer caso verificado, siguiendo el flujo del programa por la siguiente instrucción después de End Select. Esto debemos tenerlo muy en cuenta, ya que si pretendemos que cuando se cumplan dos condiciones se ejecuten sendos bloques de instrucciones, convendrá hacerlo a través de la instrucción If en vez de a través de Select Case.
Las instrucciones Select Case se pueden anidar. Cada instrucción Select Case debe tener su correspondiente terminación End Select.
La instrucción Select Case presenta similitudes marcadas con la instrucción If - Then. Por ello, en general podremos conseguir resultados similares con ambas instrucciones y elegir usar una u otra dependerá de nuestro gusto y de cuál se adapte mejor a nuestros intereses, que en general serán ahorrar código y conseguir claridad para cumplir el objetivo. Otras veces será interesante anidar ambas instrucciones.
Prueba el siguiente código:
Option Explicit 
Dim A As Integer 
Private Sub Form_Load() 
Show 
A = 12 
Select Case A 
    Case 12 
        Print "A vale 12" 
    Case Is < 14 
        Print "A es menor que 14" 
    Case 160 To 200 
        Print "A está comprendida entre 160 y 200" 
    Case Else 
        Print "No se ha verificado ninguna de las condiciones previstas" 
End Select 
End Sub 
 | 
El resultado es que se muestra en pantalla "A vale 12". Sin embargo, a pesar de que la hipótesis  A < 14 se cumple, no llega a evaluarse y por tanto las instrucciones asociadas a este caso no se ejecutan.
ESTRUCTURAS DE DECISIÓN CON VISUAL BASIC
INSTRUCCIÓN SI … ENTONCES (IF … THEN) Y SI … ENTONCES – SINO (IF … THEN – ELSE)
La sintaxis a emplear con Visual Basic es muy similar a la que se estudia en los cursos de algoritmia y pseudocódigo, con la sustitución del Si por If, del Entonces por Then, del SiNo por Else y del Finsi por End If. La única salvedad a tener en cuenta es que Visual Basicpermite además de la escritura en bloques la escritura en una sola línea.
Sintaxis en bloque:
If [condición] Then 
Instrucción 1 
Instrucción 2 
· 
· 
· 
Instrucción n 
Else 
Instrucción A 
Instrucción B 
· 
· 
· 
Instrucción Z 
End If 
 | 
Sintaxis en una sola línea:
If [condición] Then Instrucción 1 Else Instrucción A 
 | 
También es posible encadenar varias acciones derivadas de un Then o de un Else en una sola línea. Sin embargo, recomendamos usar la opción de sintaxis en una sola línea exclusivamente para desarrollos sencillos como puede ser una instrucción en caso de que se cumpla la condición y otra en caso de que no se cumpla. Si intervienen varias instrucciones, siempre resultará más legible usar el formato de bloque.
La instrucción If ... Then es anidable dentro de sí misma, siendo siempre preferible el formato de bloque cuando se vayan a generar anidamientos.
Ejemplo:
If A > 7 And B < 5 Then 
    Print "A es mayor que 7 y B menor que 5" 
End If 
 | 
También válido es:
| If A > 7 And B < 5 Then Print "A es mayor que 7 y B menor que 5" | 
Si introducimos una cláusula Else el modelo es:
If A > 7 And B < 5 Then 
    Print "A es mayor que 7 y B menor que 5" 
Else 
    Print "A no es mayor que 7 ó B no es menor que 5" 
End If 
 | 
También válido:
If A > 7 And B < 5 Then Print "A es mayor que 7 y B menor que 5" _ 
Else Print "A no es mayor que 7 ó B no es menor que 5" 
 | 
EJERCICIO EJEMPLO CON IF THEN ELSE EN VISUAL BASIC
Crear un programa que pida un número entero distinto de cero y nos muestre en pantalla un mensaje indicándonos si el número es par o impar.
Nota: El procedimiento a emplear será basado en el uso del operador Mod.
SOLUCIÓN
Crearemos un Label de solicitud del número, un Textbox de entrada, un Command Button y un Label para el cálculo y el resultado. Le ponemos los nombres y organizamos los controles en pantalla como nos parezca correcto (no tiene por qué coincidir con lo que ponemos aquí). Los nombres que hemos empleado nosotros son: LabelPideNum, TextNentero, CommandHallar yLabelResultado.
| Option Explicit Dim Num As Integer Dim Res As Integer Private Sub Form_Load() Form1.Caption = "Determina naturaleza par o impar" CommandHallar.Caption = "Determinar" LabelPideNum = "Introduzca un nº entero" End Sub Private Sub CommandHallar_Click() Num = Val(TextNentero) Res = Num Mod 2 LabelResultado.FontSize = 10 LabelResultado.FontBold = True If Res = 0 Then LabelResultado = "El número es par" Else LabelResultado = "El número es impar" End If End Sub  | 
Gráficamente:
Hemos escrito el If ... Then – Else como un bloque en vez de como una única línea. El motivo para ello es que aporta mayor claridad y facilidad de interpretación.
Suscribirse a:
Comentarios (Atom)
