Autor
|
Tema: Ayudas o sugerencias - programa signo zodiaco (Leído 32,499 veces)
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Ahora arreglado el tema de la entrada con mayuscula o minuscula... Usando Ucase() Solo falta depurar un poco más los signos, pero creo que ya esta bien. Dim dia As String Dim mes As String Dim reponse As Boolean Private Sub Form_Load() dia = InputBox("Ingrese dia", "Signos") If dia = "" Then End End If While (dia < 1) Or (dia > 31) Or (dia = "") MsgBox "Error, los meses solo contienen dias entre 1 y 31", vbOKOnly dia = InputBox("Ingrese dia", "Signos") Wend dia = Val(dia) mes = InputBox("Ingrese mes", "Signos") mes = UCase(mes) Select Case mes Case "ENERO" If dia < 21 Then MsgBox "CAPRICORNIO", vbOKOnly Else: MsgBox "ACUARIO", vbOKOnly End If Case "FEBRERO" If dia < 20 Then MsgBox "ACUARIO", vbOKOnly Else: MsgBox "PISCIS", vbOKOnly End If Case "MARZO" If dia < 21 Then MsgBox "PISCIS", vbOKOnly Else: MsgBox "ARIES", vbOKOnly End If Case "ABRIL" If dia < 21 Then MsgBox "ARIES", vbOKOnly Else: MsgBox "TAURO", vbOKOnly End If Case "MAYO" If dia < 21 Then MsgBox "TAURO", vbOKOnly Else: MsgBox "GEMINIS", vbOKOnly End If Case "JUNIO" If dia < 21 Then MsgBox "GEMINIS", vbOKOnly Else: MsgBox "CANCER", vbOKOnly End If Case "JULIO" If dia < 24 Then MsgBox "CANCER", vbOKOnly Else: MsgBox "LEO", vbOKOnly End If Case "AGOSTO" If dia < 24 Then MsgBox "LEO", vbOKOnly Else: MsgBox "VIRGO", vbOKOnly End If Case "SETIEMBRE" If dia < 24 Then MsgBox "VIRGO", vbOKOnly Else: MsgBox "LIBRA", vbOKOnly End If Case "OCTUBRE" If dia < 24 Then MsgBox "LIBRA", vbOKOnly Else: MsgBox "ESCORPIO", vbOKOnly End If Case "NOVIEMBRE" If dia < 22 Then MsgBox "ESCORPIO", vbOKOnly Else: MsgBox "SAGITARIO", vbOKOnly End If Case "DICIEMBRE" If dia < 22 Then MsgBox "SAGITARIO", vbOKOnly Else: MsgBox "CAPRICORNIO", vbOKOnly End If Case Else MsgBox "Error", vbOKOnly End Select End End Sub
|
|
|
En línea
|
Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
|
|
|
Jorgitoh
Desconectado
Mensajes: 11
|
Tene en cuenta que estas usando Windows Forms y el user solo esta manejando la Consola. De todos modos la sintaxis esta bien, solo habria que cambiar los Input Box por ReadLine y los Message por WriteLine.
Saludos.
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Si anoche estuve hablando con el y aclarando un par de dudas que tenia. El problema creo que se ha solucionado.
|
|
|
En línea
|
Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
|
|
|
NetStorm
Desconectado
Mensajes: 114
|
Gracias ha sido un trabajo exitoso, lo habeís hecho excelente agradecer profundamente a m@deb su ánimo desinteresado por su ayuda de forma "integra" y no mediocre, paso cerca de 3 horas explicándome muchas cosas que ahora tengo claras aunque en clases ni las he tocado (por ejem. los forms), y nada agradecer a todos los integrantes del foro que también aportaron lo suyo ...
Finalmente quiero solicitarle al mod del foro que de por cerrado el tema, ya que se ha solucionado el problema.
Gracias, sinceramente sos grandes como dice m@deb... vale Che'
Salu2 desde Arequipa - Perú.
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Pues de nada. Cuando uno ayuda, tambien aprende muchas cosas, ya que no soy un Gurú de la programación. Sin mas que decir.
Salu2!
|
|
|
En línea
|
Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
|
|
|
NetStorm
Desconectado
Mensajes: 114
|
Bien para los interesados aquí está el código, como todavía veo que la prgunta está abierta, entonces posteo el código, OJO que esto es en modo consola, M@deb lo realizó en form, pero yo lo adapté a consola. En fin... Imports system.console
Module module1 Sub main()
Dim dia As Integer Dim mes As String Dim feberror As Integer = 29
Const horoaries As String = "hoy tendrás un gran día" Const horotauro As String = "hoy tendrás un gran día" Const horogeminis As String = "hoy tendrás un gran día" Const horocancer As String = "hoy tendrás un gran día" Const horoleo As String = "hoy tendrás un gran día" Const horovirgo As String = "hoy tendrás un gran día" Const horolibra As String = "hoy tendrás un gran día" Const horoescorpio As String = "hoy tendrás un gran día" Const horosagitario As String = "hoy tendrás un gran día" Const horocapricornio As String = "hoy tendrás un gran día" Const horoacuario As String = "hoy tendrás un gran día" Const horopiscis As String = "hoy tendrás un gran día"
Writeline("Por favor, ingrese el dia de nacimiento") Dia = readline() If dia = (dia < 1) Or (dia > 31) Then WriteLine("Error, los meses solo contienen dias entre 1 y 31") ReadLine() Else WriteLine("Ahora ingrese el mes de nacimiento") mes = ReadLine() If mes = ("febrero") And (dia > 29) Then WriteLine("Oh, Oh!!!, febrero no tiene " & dia & " días, se le asignará 29 como valor") ReadLine() dia = 29 Else End If mes = UCase(mes) Select Case mes Case "ENERO" If dia < 21 Then WriteLine("CAPRICORNIO " & horocapricornio) ReadLine() Else : WriteLine("ACUARIO " & horoacuario) ReadLine() End If Case "FEBRERO" If dia < 20 Then WriteLine("ACUARIO " & horoacuario) ReadLine() Else : WriteLine("PISCIS " & horopiscis) ReadLine() End If Case "MARZO" If dia < 21 Then WriteLine("PISCIS " & horopiscis) ReadLine() Else : WriteLine("ARIES " & horoaries) ReadLine() End If Case "ABRIL" If dia < 21 Then WriteLine("ARIES " & horoaries) ReadLine() Else : WriteLine("TAURO " & horotauro) ReadLine() End If Case "MAYO" If dia < 21 Then WriteLine("TAURO " & horotauro) ReadLine() Else : WriteLine("GEMINIS " & horogeminis) ReadLine() End If Case "JUNIO" If dia < 21 Then WriteLine("GEMINIS " & horogeminis) ReadLine() Else : WriteLine("CANCER " & horocancer) ReadLine() End If Case "JULIO" If dia < 24 Then WriteLine("CANCER " & horocancer) ReadLine() Else : WriteLine("LEO " & horoleo) ReadLine() End If Case "AGOSTO" If dia < 24 Then WriteLine("LEO " & horoleo) ReadLine() Else : WriteLine("VIRGO " & horovirgo) ReadLine() End If Case "SETIEMBRE" If dia < 24 Then WriteLine("VIRGO " & horovirgo) ReadLine() Else : WriteLine("LIBRA " & horolibra) ReadLine() End If Case "OCTUBRE" If dia < 24 Then WriteLine("LIBRA " & horolibra) ReadLine() Else : WriteLine("ESCORPIO " & horoescorpio) ReadLine() End If Case "NOVIEMBRE" If dia < 22 Then WriteLine("ESCORPIO " & horoescorpio) ReadLine() Else : WriteLine("SAGITARIO " & horosagitario) ReadLine() End If Case "DICIEMBRE" If dia < 22 Then WriteLine("SAGITARIO " & horosagitario) ReadLine() Else : WriteLine("CAPRICORNIO " & horocapricornio) ReadLine() End If Case Else Write("Oh, oh!!!, ... Ha ocurrido un error los datos ingresados no son válidos") ReadLine() End Select End If End Sub End Module
|
|
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
Const horoaries As String = "hoy tendrás un gran día" Const horotauro As String = "hoy tendrás un gran día" Const horogeminis As String = "hoy tendrás un gran día" Const horocancer As String = "hoy tendrás un gran día" Const horoleo As String = "hoy tendrás un gran día" Const horovirgo As String = "hoy tendrás un gran día" Const horolibra As String = "hoy tendrás un gran día" Const horoescorpio As String = "hoy tendrás un gran día" Const horosagitario As String = "hoy tendrás un gran día" Const horocapricornio As String = "hoy tendrás un gran día" Const horoacuario As String = "hoy tendrás un gran día" Const horopiscis As String = "hoy tendrás un gran día"
Una pregunta.. ¿Por qué declaras tantas veces lo mismo? No daría igual que uses: Const Horoscopo As String= "Hoy tendrás un gran dia"
|
|
|
En línea
|
|
|
|
NetStorm
Desconectado
Mensajes: 114
|
Cierto ... tu lógica es aplastante, pero sabes, yo consideré la oportunidad de decirle a cada signo una cosa distinta, y como ves no soy bueno con eso de los horóscopos, imagina que en tu variable coloques "Hoy te amputaran la pierna", ¿a todos los signos les dirás lo mismo?, solo era cuestión de modificar el texto a distintas predicciones para cada signo, eso fue lo que yo consideré, pero como digo ... no soy bueno en eso, será que jamás creo en la suerte.
|
|
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
Entonces... no dije nada... Es verdad lo que dices, pero yo pensé que habias presentado de esa manera el programa.
|
|
|
En línea
|
|
|
|
seba123neo
|
Hola, mira este codigo yo lo habia realizado cuando tuve que hacer algo parecido...es una funcion que se encarga de calcular el signo...y te ahorras todos esos SELECT CASE que no me gustan cuando son muchos... Imports system.console Module module1 Private Enum MESES ENERO = 1 FEBRERO = 2 MARZO = 3 ABRIL = 4 MAYO = 5 JUNIO = 6 JULIO = 7 AGOSTO = 8 SEPTIEMBRE = 9 OCTUBRE = 10 NOVIEMBRE = 11 DICIEMBRE = 12 End Enum Const horoaries As String = "hoy tendrás un gran día" Const horotauro As String = "hoy tendrás un gran día" Const horogeminis As String = "hoy tendrás un gran día" Const horocancer As String = "hoy tendrás un gran día" Const horoleo As String = "hoy tendrás un gran día" Const horovirgo As String = "hoy tendrás un gran día" Const horolibra As String = "hoy tendrás un gran día" Const horoescorpio As String = "hoy tendrás un gran día" Const horosagitario As String = "hoy tendrás un gran día" Const horocapricornio As String = "hoy tendrás un gran día" Const horoacuario As String = "hoy tendrás un gran día" Const horopiscis As String = "hoy tendrás un gran día" Sub main() Dim dia As Integer Dim mes As String Dim feberror As Integer = 29 Dim vMes As MESES WriteLine("Por favor, ingrese el dia de nacimiento") dia = ReadLine() If dia = (dia < 1) Or (dia > 31) Then WriteLine("Error, los meses solo contienen dias entre 1 y 31") ReadLine() Else WriteLine("Ahora ingrese el mes de nacimiento") mes = ReadLine() If mes = ("febrero") And (dia > 29) Then WriteLine("Oh, Oh!!!, febrero no tiene " & dia & " días, se le asignará 29 como valor") ReadLine() dia = 29 Else End If mes = UCase(mes) Dim a() As String = System.Enum.GetNames(vMes.GetType) Dim vIndiceMes As Integer For i As Integer = 0 To a.Length - 1 If mes = a.GetValue(i) Then vIndiceMes = i + 1 WriteLine(Zodiaco(vIndiceMes & dia)) ReadLine() Exit Sub End If Next WriteLine("Oh, oh!!!, ... Ha ocurrido un error los datos ingresados no son válidos") ReadLine() End If End Sub Private Function Zodiaco(ByVal Fecha As Integer) As String If Fecha <= 219 And Fecha >= 121 Then Zodiaco = "ACURARIO " & horoacuario ElseIf Fecha <= 320 And Fecha >= 220 Then Zodiaco = "PISCIS " & horopiscis ElseIf Fecha <= 420 And Fecha >= 321 Then Zodiaco = "ARIES " & horoaries ElseIf Fecha <= 521 And Fecha >= 421 Then Zodiaco = "TAURO " & horotauro ElseIf Fecha <= 621 And Fecha >= 522 Then Zodiaco = "GEMINIS " & horogeminis ElseIf Fecha <= 722 And Fecha >= 622 Then Zodiaco = "CANCER " & horocancer ElseIf Fecha <= 822 And Fecha >= 723 Then Zodiaco = "LEO " & horoleo ElseIf Fecha <= 923 And Fecha >= 823 Then Zodiaco = "VIRGO " & horovirgo ElseIf Fecha <= 1023 And Fecha >= 924 Then Zodiaco = "LIBRA " & horolibra ElseIf Fecha <= 1122 And Fecha >= 1024 Then Zodiaco = "ESCORPIO " & horoescorpio ElseIf Fecha <= 1221 And Fecha >= 1123 Then Zodiaco = "SAGITARIO " & horosagitario Else Zodiaco = "CAPRICORNIO " & horocapricornio End If End Function End Module
saludos.
|
|
« Última modificación: 7 Junio 2009, 00:47 am por seba123neo »
|
En línea
|
|
|
|
|
|