Autor
|
Tema: Ayudas o sugerencias - programa signo zodiaco (Leído 32,497 veces)
|
NetStorm
Desconectado
Mensajes: 114
|
Hola chicos he empezado a estudiar VB.NET, y resulta que termine los ejercicios de la clase entonces el profesor con cara de condenado me dijo: "Quiero que hagas un programa que muestre el horoscopo de una persona ingresando solo el dia y mes de nacimiento, aclaro que esto lo haciendo en aplicaciones para consola este es mi avance trate de hacerlo con IF, pero cuando mire el detalle d la fecha de nacimiento ... OH DIOS!!!, necesito sugerencias o como podría hacerlo, haber echenme una manito, porque recien inicio en esto Imports System.Console 'PROGRAMA QUE MUESTRA EL SIGNO ZODIACAL DEL USUARIO CON EL DIA Y AÑO DE NACIMIENTO Module Module12 Sub main() Const ener As String = "Enero" Const febre As String = "Febrero" Const mar As String = "Marzo" Const abr As String = "Abril" Const mayo As String = "Mayo" Const jun As String = "Junio" Const jul As String = "Julio" Const agost As String = "Agosto" Const septi As String = "Septiembre" Const octub As String = "Octubre" Const novi As String = "Noviembre" Const dici As String = "Diciembre"
Dim mes As String Dim dia As Integer
WriteLine("Por favor, ingrese el mes de nacimiento") mes = ReadLine() WriteLine("Por favor, ingrese el día de nacimiento") dia = ReadLine() If mes = ener And dia < 20 < 18 Then
End If End Sub End Module ... Agradecido desde ya. Salu2 para todos.
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Aver si te sirve este code creado por (¯`·.¸º|- POLIFORMIC -|º¸.·´¯)/*ingrese dia y mes de nacimiento, luego se debe determinar su signo sodiacal*/ #include<iostream.h> #include<conio.h> int dia, mes; void main(){ cout<<" TU SIGNO ZODIACAL "; cout<<"\n\r ---------------"; cout<<"\n\r Ingrese el Dia y mes de nacimiento "; cin>>dia>>mes; switch(mes){ case 1: if(dia<21) cout<<"CAPRICORNIO"; else cout<<"ACUARIO"; break; case 2: if(dia<20) cout<<"ACUARIO"; else cout<<"PICIS"; break; case 3: if(dia<21) cout<<"PICIS"; else cout<<"ARIES"; break; case 4: if(dia<21) cout<<"ARIES"; else cout<<"TAURO"; break; case 5: if(dia<21) cout<<"TAURO"; else cout<<"GEMINIS"; break; case 6: if(dia<22) cout<<"GEMINIS"; else cout<<"CANCER"; break; case 7: if(dia<23) cout<<"CANCER"; else cout<<"LEO"; break; case 8: if(dia<23) cout<<"LEO"; else cout<<"VIRGO"; break; case 9: if(dia<23) cout<<"VIRGO"; else cout<<"LIBRA"; break; case 10: if(dia<23) cout<<"LIBRA"; else cout<<"ESCORPIO"; break; case 11: if(dia<22) cout<<"ESCORPIO"; else cout<<"SAGITARIO"; break; case 12: if(dia<22) cout<<"SAGITARIO"; else cout<<"CAPRICORNIO"; break; default:cout<<"\n\r Mes y Dia son incorrectos"; } getch(); }
|
|
|
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.
|
|
|
Shell Root
|
Servira de Guia, porque eso no es VB... xD
Saludos!!!
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
int dia, mes; == Dim dia as integer Dim mes as integer switch(mes)== Select case mes
cout<<"\n\r Ingrese el Dia y mes de nacimiento "; cin>>dia>>mes; == Inputbox
|
|
|
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
|
Hola buenas noches. Como primer instancia tienes que hacer el ingreso de datos que sino me equivoco el tuyo esta mas que bien:
Dim mes As String Dim dia As Integer
WriteLine("Por favor, ingrese el mes de nacimiento") mes = ReadLine() WriteLine("Por favor, ingrese el día de nacimiento") dia = ReadLine()
Al menos en C# ( desconozco VB pero debe ser lo mismo ) puedes pedir directamente la fecha con cierto formato y trabajar con el tipo de dato DateTime, pero de todos modos eso es solo un detalle que no afectaria el funcionamiento del programa.
Como segundo paso debes hacer un switch tal cual esta explicado en el ejemplo que te pusieron mas arriba. Seguramente conoces las estructuras de VB por lo cual lo unico que tienes que hacer es convertir ese codigo de C a VB. El cual su sintaxis no seria nada mas complicado que:
Switch ( mes ) Case ( 1 - 12 ) If Else
Lo que hace este switch es simple. Primero realiza un case para cada mes del año y luego "segmenta" por asi decirlo los dias con el If. Dejando dentro del If los dias que son menores a 20 / 21 / 22 / 23 ( dependiendo del mes ) al cual se le asigna el signo correspondiente al mes, y luego en el Else toma los dias restantes, asignandole el signo siguiente.
Depende de ti asignar ese signo a una variable o imprimirlo directamente en Consola.
Creo que el ejemplo esta mas que explicado. Solo te faltaria a vos realizar el Switch con la sintaxis de VB, que sino me equivoco en VB se lo conoce como "Select Case".
Saludos.
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Espero que te sirve lo hice a las apuradas en 5 minDim dia As Integer Dim mes As Integer Dim reponse As Boolean Private Sub Form_Load() dia = InputBox("Ingrese dia", "Signos") mes = InputBox("Ingrese mes", "Signos") Select Case mes Case 1 If dia < 21 Then reponse = MsgBox("CAPRICORNIO", vbOKOnly) Else: reponse = MsgBox("ACUARIO", vbOKOnly) End If Case 2 If dia < 20 Then reponse = MsgBox("ACUARIO", vbOKOnly) Else: reponse = MsgBox("PISCIS", vbOKOnly) End If Case 3 If dia < 21 Then reponse = MsgBox("PISCIS", vbOKOnly) Else: reponse = MsgBox("ARIES", vbOKOnly) End If Case 4 If dia < 21 Then reponse = MsgBox("ARIES", vbOKOnly) Else: reponse = MsgBox("TAURO", vbOKOnly) End If Case 5 If dia < 21 Then reponse = MsgBox("TAURO", vbOKOnly) Else: reponse = MsgBox("GEMINIS", vbOKOnly) End If Case 6 If dia < 22 Then reponse = MsgBox("GEMINIS", vbOKOnly) Else: reponse = MsgBox("CANCER", vbOKOnly) End If Case 7 If dia < 23 Then reponse = MsgBox("CANCER", vbOKOnly) Else: reponse = MsgBox("LEO", vbOKOnly) End If Case 8 If dia < 23 Then reponse = MsgBox("LEO", vbOKOnly) Else: reponse = MsgBox("VIRGO", vbOKOnly) End If Case 9 If dia < 23 Then reponse = MsgBox("VIRGO", vbOKOnly) Else: reponse = MsgBox("LIBRA", vbOKOnly) End If Case 10 If dia < 23 Then reponse = MsgBox("LIBRA", vbOKOnly) Else: reponse = MsgBox("ESCORPIO", vbOKOnly) End If Case 11 If dia < 22 Then reponse = MsgBox("ESCORPIO", vbOKOnly) Else: reponse = MsgBox("SAGITARIO", vbOKOnly) End If Case 12 If dia < 22 Then reponse = MsgBox("SAGITARIO", vbOKOnly) Else: reponse = MsgBox("CAPRICORNIO", vbOKOnly) End If Case Else reponse = MsgBox("Error") End Select 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.
|
|
|
NetStorm
Desconectado
Mensajes: 114
|
Waooo, agradezco la última respuesta no tengo conocimiento de "case", pero ahora que veo la estructura aprendo más ... tio sos un grande, sabes la misma noche que escribi mi duda diseñe este algoritmo pero no sé porque no funciona alguien me da el "Hey!!!, fallaste en esto" ??? ... aqui les dejo el code aunque esta larguísimo. Imports System.Console
Module Module1
Sub Main() Const january As String = "enero" Const febrary As String = "febrero" Const march As String = "marzo" Const april As String = "abril" Const may As String = "mayo" Const june As String = "junio" Const july As String = "julio" Const agost As String = "agosto" Const september As String = "setiembre" Const october As String = "octubre" Const november As String = "noviembre" Const december As String = "diciembre" Const horoaries As String = "Hoy te ira bien aries" Const horotauro As String = "hoy te ira bien tauro" Const horogeminis As String = "Hoy te ira bien geminis" Const horocancer As String = "Hoy te ira bien cancer" Const horoleo As String = "Hoy te ira bien leo" Const horovirgo As String = "Hoy te ira bien virgo" Const horolibra As String = "Hoy te ira bien libra" Const horoescorpio As String = "Hoy te ira bien horoescorpio" Const horosagitario As String = "Hoy te ira bien sagitario" Const horocapricornio As String = "Hoy te ira bien capricornio" Const horoacuario As String = "Hoy te ira bien acuario" Const horopiscis As String = "Hoy te ira bien piscis"
Dim mes As String Dim dia As Integer
WriteLine("por favor ingrese el mes de nacimiento") mes = ReadLine() WriteLine("Ingrese su dia de nacimiento") dia = ReadLine()
If mes = january And dia > 0 < 20 Then WriteLine(horocapricornio & " mucha suerte") ReadLine() Else If mes = january And dia > 19 < 32 Then WriteLine(horoacuario & " mucha suerte") ReadLine() Else If mes = febrary And dia > 0 < 19 Then WriteLine(horoacuario & " mucha suerte") ReadLine() Else If mes = febrary And dia > 18 < 30 Then WriteLine(horopiscis & " mucha suerte") ReadLine() Else If mes = march And dia > 0 < 20 Then WriteLine(horopiscis & " mucha suerte") ReadLine() Else If mes = march And dia > 18 < 32 Then WriteLine(horoaries & " mucha suerte") ReadLine() Else If mes = april And dia > 0 < 19 Then WriteLine(horoaries & " mucha suerte") ReadLine() Else If mes = april And dia >= 19 < 32 Then WriteLine(horotauro & " mucha suerte") ReadLine() Else If mes = may And dia >= 1 < 20 Then WriteLine(horotauro & " mucha suerte") ReadLine() Else If mes = may And dia >= 20 < 32 Then WriteLine(horogeminis & " mucha suerte") ReadLine() Else If mes = june And dia >= 1 < 21 Then WriteLine(horogeminis & " mucha suerte") ReadLine() Else If mes = june And dia >= 21 < 32 Then WriteLine(horocancer & " mucha suerte") ReadLine() Else If mes = july And dia >= 1 < 22 Then WriteLine(horocancer & " mucha suerte") ReadLine() Else If mes = july And dia >= 22 < 32 Then WriteLine(horoleo & " mucha suerte") ReadLine() Else If mes = agost And dia >= 1 < 22 Then WriteLine(horoleo & " mucha suerte") ReadLine() Else If mes = agost And dia >= 22 < 32 Then WriteLine(horovirgo & " mucha suerte") ReadLine() Else If mes = september And dia >= 1 < 22 Then WriteLine(horovirgo & " mucha suerte") ReadLine() Else If mes = september And dia >= 22 < 32 Then WriteLine(horolibra & " mucha suerte") ReadLine() Else If mes = october And dia >= 1 < 23 Then WriteLine(horolibra & " mucha suerte") ReadLine() Else If mes = october And dia >= 23 < 32 Then WriteLine(horoescorpio & " mucha suerte") ReadLine() Else If mes = november And dia >= 1 < 21 Then WriteLine(horoescorpio & " mucha suerte") ReadLine() Else If mes = november And dia >= 21 < 32 Then WriteLine(horosagitario & " mucha suerte") ReadLine() Else If mes = december And dia >= 1 < 21 Then WriteLine(horosagitario & " mucha suerte") ReadLine() Else If mes = december And dia >= 21 < 32 Then WriteLine(horocapricornio & " mucha suerte") ReadLine() Else WriteLine("Los datos ingresados no son correctos, deja de bromear conmigo que no tengo todo el dia ¿vale?") ReadLine() End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If
End Sub
End Module
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
Al tratar de compilarlo te larga error?... Antes de ponerme a leer todos esos if's anidados te agradeceria que pongas el error al compilar.
|
|
|
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
|
No ningun error ... solo que no funciona ... le pongo por ejemplo agosto 30 y me dice que soy LEO ... !!!! diablos... que pasa?
|
|
|
En línea
|
|
|
|
Myth.ck
Desconectado
Mensajes: 303
Algorithmics & C++ Studient
|
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") 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 < 22 Then MsgBox "GEMINIS", vbOKOnly Else: MsgBox "CANCER", vbOKOnly End If Case "julio" If dia < 23 Then MsgBox "CANCER", vbOKOnly Else: MsgBox "LEO", vbOKOnly End If Case "agosto" If dia < 23 Then MsgBox "LEO", vbOKOnly Else: MsgBox "VIRGO", vbOKOnly End If Case "setiembre" If dia < 23 Then MsgBox "VIRGO", vbOKOnly Else: MsgBox "LIBRA", vbOKOnly End If Case "octubre" If dia < 23 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 Sub
|
|
« Última modificación: 18 Mayo 2009, 01:24 am por m@deb »
|
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.
|
|
|
|
|