miércoles, 7 de septiembre de 2016

Ciclo por Condición

ESTRUCTURAS DE REPETICIÓN (BUCLES) CON VB

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).
Descripción: Visual Basic

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 segundo Vi + 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 (se ha invertido el sentido del bucle):

Código (versionesVB menos recientes)
Código (versiones VB más recientes)

Rem Curso Visual Basic aprenderaprogramar.com
Option Explicit

Dim VAR As Integer
Dim Vi As Integer
Dim Vf As Integer
                                                   
Private Sub Form_Load()
Vi = 1
Vf = 3
For VAR = Vf To Vi Step –1
    '[También supondría tres repeticiones For VAR = Vi to Vf]
    MsgBox ("hola")
Next VAR
End Sub
REM Curso Visual Basic aprenderaprogramar.com
Option Explicit On

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim VAR As Integer
        Dim Vi As Integer
        Dim Vf As Integer
        Vi = 1
        Vf = 3
        For VAR = Vf To Vi Step -1
            '[También supondría tres repeticiones For VAR = Vi to Vf]
            MsgBox("hola")
        Next VAR
    End Sub
End Class


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. 
EJERCICIO
Transformar en código el siguiente planteamiento: queremos generar un programa que pida un número del 1 al 10 y nos muestre la “tabla de multiplicar” correspondiente.
SOLUCIÓN
Hemos realizado la pregunta relativa al número cuya tabla se desea conocer utilizando un InputBox. Igualmente válido hubiera sido hacerlo con un Label contenedor de la pregunta y un TextBox donde el usuario introduce la información. La tabla la mostramos sobre un Label denominado LabelTabla.

Código (versionesVB menos recientes)
Código (versiones VB más recientes)

Rem Curso Visual Basic aprenderaprogramar.com
Option Explicit
Dim T As Integer
Dim i As Integer
                                               
Private Sub Form_Load()
Form1.Caption = "Tabla"
T = Val(InputBox("¿Qué tabla quiere conocer?" & vbCrLf & _
"(Introduzca un número de 1 a 10)", "¿Número?"))
LabelTabla.FontBold = True
LabelTabla.Alignment = 2
LabelTabla = "TABLA DEL " & T & vbCrLf & vbCrLf

For i = 1 To 10
    LabelTabla = LabelTabla & T & " * " & i & " = " & T * i & vbCrLf
Next i
End Sub
REM Curso Visual Basic aprenderaprogramar.com
Option Explicit On

Public Class Form1
    Dim T As Integer
    Dim i As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Tabla"
        T = Val(InputBox("¿Qué tabla quiere conocer?" & vbCrLf & _
"(Introduzca un número de 1 a 10)", "¿Número?"))
LabelTabla.Font = New Font("Arial", 10, FontStyle.Bold)
LabelTabla.TextAlign = ContentAlignment.MiddleCenter
LabelTabla.Text = "TABLA DEL " & T & vbCrLf & vbCrLf
        For i = 1 To 10
          LabelTabla.Text = LabelTabla.Text & T & " * " & i & " = " & T * i & vbCrLf
        Next i
    End Sub
End Class

Aspect graphic:

Descripción: inputbox visual basic

Descripción: tabla multiplicar visual basic




miércoles, 27 de julio de 2016

Introducción a la Programación 

Operadores de Incremento y Decremento

Los Operadores de incremento y decremento son operadores unarios que agregan o sustraen uno de sus operandos, respectivamente. Son normalmente implementados en lenguajes de programación imperativos. En lenguajes tipo C es normal tener 2 versiones (pre- y post-) de cada operador con semántica ligeramente diferente.
En lenguajes tipo C, el operador de incremento es escrito como ++ y el de decremento como --.
El operador de incremento aumenta el valor de su operando en 1. El operando debe ser un tipo de dato aritmético o puntero, y debe hacer referencia a un objeto modificable. Similarmente, el operador de decremento disminuye el valor de su operando en 1. El valor de los punteros se incrementa (o disminuye) por una cantidad que hace que apunte al siguiente (o anterior) elemento adyacente en memoria.

Ejemplo:

Los siguientes fragmentos de código C ilustran las diferencias entre operadores de pre y post incremento/decremento:
int  x;
int  y;

// Operadores de incremento
x = 1;
y = ++x;    // x es ahora 2, y es también 2
y = x++;    // x es ahora 3, y es 2

// Operadores de decremento
x = 3;
y = x--;    // x es ahora 2, y es 3
y = --x;    // x es ahora 1, y es también 1 

Reglas de Prioridad

operador ()
operadores ++,--,y - unarios 
operadores *,/,% (producto, división, modulo)
operadores +,- suma y resta 


Expresiones lógicas

Un segundo tipo de expresiones es la expresión lógica o booleana, cuyo valor es siempre verdadero o falso. Recuerda que existen sólo dos posibles valores para una variable (o constante) de tipo booleano: verdadero (true) y falso (false). En esencia, una expresión lógica es aquella cuyo resultado sólo puede tomar uno de esos dos valores.

Las expresiones lógicas se forman combinando constantes y variables lógicas con operadores lógicos como notand y or y operadores relacionales (de relación o comparación) como =, <, >, <=, >=, <>.

operaciones de relación

 Los operadores relacionales o de relación permiten realizar comparaciones entre valores o expresiones de cualquier tipo. Los operadores relacionales son:

 

operadores lógicos

 Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false.

Funciones Internas 

Las operaciones que se requieren en los programas exigen en numerosas ocasiones, además de las operaciones aritméticas básicas ya tratadas, un número  determinado de operaciones especiales que se denominan funciones internas, incorporadas o estándar. Por ejemplo, la función  ln(LNse puede usar para determinar el logaritmo neperiano de un número y la función sqrt calcula la raíz cuadrada de un numero positivo. Existen otras funciones que se utilizan para determinar las funciones trigonométricas.


operación de asignación

Los Operadores de Asignación, como su nombre lo indica, se encargan de asignarle a una variable el resultado de una expresión matemática o el valor de otra variable.

Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una
expresión a un identificador. El operador de asignación más utilizado es “=” y su formato
es:

identificador = expresión;

Donde el identificador representa por lo general una variable y una constante, una
variable o una expresión más compleja.