Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

es simple

Estas en el tema de es simple en el foro de Visual Basic clásico en Foros del Web. hola!!!!soy nueva en esto y queria saber si este codigo esta bien la consigna es ingresar un numero e indicar si es primo o no: ...
  #1 (permalink)  
Antiguo 01/03/2009, 22:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Busqueda es simple

hola!!!!soy nueva en esto y queria saber si este codigo esta bien
la consigna es ingresar un numero e indicar si es primo o no:
el tema es que tengo dudas , y no me marca si esta mal!!!
Dim a, num, cont, I As Integer
Private Sub Command1_Click()
num = Text1
For I = num To 1
a = num Mod I
If a = 0 Then
cont = cont + 1
End If
Next

If cont = 2 Then
Label2 = "primo"
Else
Label3 = "no primo"
End If

les agradesco su ayuda
ah!!!! y como hago para sacar el divisor de dicho numero?
  #2 (permalink)  
Antiguo 01/03/2009, 23:45
 
Fecha de Ingreso: febrero-2009
Mensajes: 225
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: es simple

el "private sub" no me gusta... anda al diseño del Form, dale doble click al Command1 y visualbasic te escribe un sub automaticamente

el For esta mal? que pasa si ingreso 3? iguala la I a 3 y despues hace un for de 3 to 1 ? tampoco entiendo para que haces el For... cual es su funcion?

Dim a, num, cont, I as integer
num = TextBox1.Text
a = num Mod I
If a = 0 Then
cont += 1 (es lo mismo q escribir cont = cont +1)
End If

If cont = 2 Then
Label2.Text = "primo"
Else
Label3.Text = "no primo"
End if

se escribe .Text para referirse al valor del textbox o label
  #3 (permalink)  
Antiguo 02/03/2009, 02:55
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: es simple

Para Newbie001:

Tu te estás refiriendo a VB.Net y ella a VB6.

Para jesicabarboza:

Probé tu código y no funciona (siempre da "no primo"). Te pongo una función que devuelve verdadero o falso según el número sea primo o no:



Código:
Function esPrimo(ElNumero) As Boolean
Dim lRaiz As Long, i As Long
esPrimo = True
If ElNumero = 1 Or ElNumero Mod 2 = 0 And ElNumero <> 2 Then
    esPrimo = False
    Exit Function
End If
lRaiz = Sqr(ElNumero)
For i = 3 To lRaiz Step 2
    If ElNumero Mod i = 0 Then
        esPrimo = False
        Exit For
    End If
Next i
End Function
Para mostrar el resultado en un control Label, podrías hacer algo como esto:

Código:
Private Sub Command1_Click()
Label1.Caption = IIf(esPrimo(Text1) = True, "primo", "no primo")
End Sub
Saludos
  #4 (permalink)  
Antiguo 02/03/2009, 03:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 225
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: es simple

uuuh :S perdon! conosco solo .net pense que eran casi iguales
  #5 (permalink)  
Antiguo 02/03/2009, 10:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: es simple

ambas respuestas me sirvieron gracias!!!!! pero como hago para sacar el divisor de un numero chicos no me saleeeeeeeeeeeee!!!!! y no me da nuncaaaaaaaaa!!!

Última edición por jesicabarboza; 02/03/2009 a las 10:58
  #6 (permalink)  
Antiguo 02/03/2009, 10:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: es simple

ambas respuestas me sirvieron gracias!!!!! pero como hago para sacar el divisor de un numero chicos no me saleeeeeeeeeeeee!!!!! y no me da nuncaaaaaaaaa!!! y es verdad avellaneda siempre daba no primo jejejeje


Última edición por jesicabarboza; 02/03/2009 a las 10:58
  #7 (permalink)  
Antiguo 02/03/2009, 11:59
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: es simple

Cita:
Iniciado por jesicabarboza Ver Mensaje
ambas respuestas me sirvieron gracias!!!!! pero como hago para sacar el divisor de un numero chicos no me saleeeeeeeeeeeee!!!!! y no me da nuncaaaaaaaaa!!! y es verdad avellaneda siempre daba no primo jejejeje

¿A qué te refieres con sacar el divisor de un número?

¿Al factor propio, es decir, que el resto de la división sea cero?

If dividendo Mod divisor = 0 Then
MsgBox "Es factor propio"
Else
MsgBox "No es factor propio"
End If


  #8 (permalink)  
Antiguo 02/03/2009, 17:45
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: es simple

gracias por ayudar

Última edición por jesicabarboza; 02/03/2009 a las 23:48 Razón: cargo de conciencia
  #9 (permalink)  
Antiguo 02/03/2009, 19:22
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: es simple

deberia haber un cartel en el logo de foros del web que diga NO SE HACEN TAREAS...la funcion Len() no retorna la longitud de un numero...proba hacer esto y te vas a dar cuenta de que no te retorna la longirtud sino otra cosa ¿que sera ?

Código vb:
Ver original
  1. Private Sub Form_Load()
  2.     Dim i As Long
  3.     i = 100000000
  4.     MsgBox Len(i)
  5. End Sub
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #10 (permalink)  
Antiguo 02/03/2009, 19:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: es simple

no pido q me hagan la tareaa seba 123neo!!!! pedi ayuda arriba y me respondieron porq hay gente BUENA... estoy tratando de que me entiendan lo q pregunto! aparte sino me dedico yo en esto la q pierde aca soy yo ...... no juzgues si?
  #11 (permalink)  
Antiguo 02/03/2009, 20:47
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: es simple

a veces... ayuda = pedir tarea...ya estoy un poquito acostumbrado a los foros y se quien viene con por lo menos algo enterado y el que viene directamente a pedir la tarea por mas que directamente no paresca asi(pero en el fondo es asi) ...no voy a perder el tiempo hablando con alguien que no sabe ni declarar una variable como vi arriba...lo que voy a decir no me lo puede discutir nadie...y el que lo discute es porque no sabe nada..."esto con un manual de visual basic bien leido, lo haces en 20 minutos"...los que tienen rato en esto de los foros me van a entender mi actitud...que puede parecer de tirano..pero es como la de un pollito...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #12 (permalink)  
Antiguo 02/03/2009, 22:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: es simple

sabes que? tenes razon.....no puedo discutir con alguien que sabe, sinceramente, yo soy nueva en esto y como que estoy perdida todo el tiempo pero bue...agradezco tu sinceridad tu opinion.....a pesar de todo ...... me ayudan a estudiar y a hacer la tarea... cuando alguien tiene razon es porque tiene razon

suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:01.