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
5 comentarios
Para que sirven las variables v, a y b?
Replycual es su funcion en el programa ?
La variable “v” la utilizo para representar el valor que insertemos en el textbox "desde", entonces le resto 1 al valor de “d” porque el contador de el Do While le sumara 1 a esa variable lo que haría que "desde" empezara desde un valor mas de el que hallamos especificado.
ReplyLa variable "a" la inicializamos en 0, porque esta contara cada vez que al realizar la operación “v mod b”, de como resultado 0.
Si es así se le sumara 1 a la variable “a”. Cuando "a" sea mayor que 2. Entonces el número se habrá divido por la unidad y otros números, por lo tanto dicho número no es primo, porque ya habrá excedido la regla de: numero primo solo es divisible por el mismo y la unidad.
La variable "b" simplemente representara el numero por el que se ira dividiendo "v", y aumentando de 1 en 1, hasta que "b" sea mayor que "v". Sea o no sea el resultado de “v mod b” igual a 0.
Al final si el primer numero representado por “v” ha sumado consecutivamente la variable “a” solo hasta 2, entonces es primo porque se habrá divido desde 1 (variable b) hasta el mismo (variable v) y solo dio como resultado de división exacta 2 veces, osea se dividió solo por la unidad y el mismo. Y se agregara al Listbox, así sucesivamente hasta que el valor de v(desde) sea menor que el de h(hasta).
Amigo seria bueno que hagas un tutorial :D
ReplySeria buena idea que hagas tutoriales de estos ejercicios de visual basic
ReplyPublicar un comentario