Números primos Visual Basic 6.0

Los números primos al igual que otras clasificaciones de los números naturales fueron clasificados por Pitágoras y su secta, cuyos miembros se llamaban -los pitagóricos-.

Este programa dará como resultado los números primos desde un valor hasta otro que especifiquemos.

Para el formulario necesitaremos 2 textbox (txtdesde y txthasta). Dos labels, 1 Listbox (list1), y 1 commandbutton (cmdcalcular). Como aparece en la imagen de la derecha.

En el botón calcular insertar el siguiente código:

Option Explicit

Dim d, h, v, a, b, c As Integer

Private Sub cmdcalcular_Click()

If Val(txtdesde.Text) < Val(txthasta.Text) Then
List1.Clear

d = Val(txtdesde.Text)
h = Val(txthasta.Text)
v = d - 1

Do While v < h
v = v + 1

'Identificar si el numero es primo
a = 0
b = 1


Do While b <= v
c = v Mod b

If c = 0 Then
a = a + 1
b = b + 1

Else
b = b + 1
End If

Loop

If a = 2 Or v = 1 Then

List1.AddItem (v)
End If
Loop

Else
MsgBox ("El valor de Desde debe ser menor que el de Hasta")
End If

txtdesde.Text = ""
txthasta.Text = ""
txtdesde.SetFocus

End Sub





Cuadrados perfectos en Visual Basic 6.0

El siguiente programa elevara al cuadrado una lista de numeros de acuerdo al rango de inicio y final que le indiquemos. Presionando la tecla "Enter" cuando estemos en el txtr2. Para elaborar el programa necesitaremos 2 textbox llamados txtr1 y txtr2 en la propiedad name de cada uno de los textbox. Y un listbox que se llamara List1.

Para ello escribimos el siguiente codigo en el evento KeyPress del txtr2 (el segundo textbox):


Private Sub txtr2_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then
If Val(txtr1.Text) < Val(txtr2.Text) Then
List1.Clear
Dim v As Integer
r1 = Val(txtr1.Text)
r2 = Val(txtr2.Text)
v = r1 - 1
Do While v < r2
v = v + 1
r = v ^ 2 'Aqui elevamos al cuadrado
List1.AddItem (v & " ^ " & 2 & " =" & r)
Loop
Else
MsgBox ("El valor del rango 1 debe ser menor que el rango 2")
End If
txtr1.Text = ""
txtr2.Text = ""
txtr1.SetFocus
End If

End Sub


El evento lo asignamos en la parte que esta en rojo de la imagen de la derecha. 

Ahora explicare el codigo:

If KeyAscii = 13 Then : Pregunta que si presionamos la tecla "Enter" que corresponde al numero 13 entonces se ejecutara el codigo.

If Val(txtr1.Text) < Val(txtr2.Text) Then: Pregunta que si el valor del txtr1 es menor que el txtr2 entonces se ejecutara el codigo siguiente. 

List1.Clear: Limpia el listbox.

Dim v As Integer: Declara la variable "v" como entero. 
r1 = Val(txtr1.Text): Asigna a la variable r1 el valor de el txtr1.
r2 = Val(txtr2.Text):  Asigna a la variable r2 el valor de el txtr2.

v = r1 - 1: Esto servira para inicializar el Do While, asignando a la variable v el valor de r1 y restandole 1 a ese valor. 
Do While v < r2: Esto dice que mientras "v" sea menos que r2 ejecutar el codigo de abajo.
v = v + 1: Sirve para que el Do While corra. 
r = v ^ 2: Asigna a la contante "r" la operacion que indica el valor de v elevado al cuadrado.

List1.AddItem (v & " ^ " & 2 & " =" & r): La funcion List1.AddItem añade los valores que estan entre parentesis al List.Box.
Loop: Aqui termina el Do While
Else: Esto significa "de lo contrario". Se refiere a la segunda pregunta anterior. 
MsgBox ("El valor del rango 1 debe ser menor que el rango 2"): Define el mensaje box. 
End If: Termina el segundo IF. 
txtr1.Text = "": Limpia el txtr1.
txtr2.Text = "": Limpia el txtr2.
txtr1.SetFocus: Envia el cursor al txtr1. 
End If: Termina el primer IF.