Visual Basic - problemas con bucle

Life is soft - evento anual de software empresarial
   
Vista:

problemas con bucle

Publicado por Analia  (3 intervenciones) el 15/02/2008 18:50:54
necesito ayuda por favor soy nueva con esto de programar y estoy haciendo un programita basico pero estoy teniendo problemas con el bucle... me explico...
el programa trata de que uno coloque la fecha de nacimiento y este dice el dia de la semana en que se nacio los años que cumple este año y los signos del zodiaco y el signo chino..
ahi esta mi problema con que aparezca el signo chino ya he intentado de todo con el select case, do while, if else , while de todo pero no me esta funcionando aqui dejo el codigo de mi ultimo intento
la x representa el año de nacimiento del usuario

Do While x = c
x = x - 12
If c = 1936 And x = c Then
lblChino.Caption = "Rata"
ElseIf c = 1937 And x = c Then
lblChino.Caption = "Bufalo"
ElseIf c = 1938 And x = c Then
lblChino.Caption = "Tigre"
ElseIf c = 1939 And x = c Then
lblChino.Caption = "Conejo"
ElseIf c = 1940 And x = c Then
lblChino.Caption = "Dragón"
ElseIf c = 1941 And x = c Then
lblChino.Caption = "Serpiente"
ElseIf c = 1942 And x = c Then
lblChino.Caption = "Caballo"
ElseIf c = 1943 And x = c Then
lblChino.Caption = "Cabra"
ElseIf c = 1944 And x = c Then
lblChino.Caption = "Mono"
ElseIf c = 1945 And x = c Then
lblChino.Caption = "Gallo"
ElseIf c = 1946 And x = c Then
lblChino.Caption = "Perro"
ElseIf c = 1947 And x = c Then
lblChino.Caption = "Chancho"


End If

Loop


por favor si me dan una ayudita o que estoy haciendo mal porque ya me estan saliendo canas verdes :p

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con bucle

Publicado por ED (70 intervenciones) el 15/02/2008 20:36:08
no te compliques tanto

la verdad q no te entiendo que es lo quye has hecho, contactame y te ayudo, por lo q decis y lo que esta en ese codigo.

si la x representa el año como dices que significa la c ??? y el x= x-12 ?????

bueno no importa, segun mi opinion deberias hacerlos asi por lo que me das a entender:

Do While x = c
x = x - 12
if x = c then
select case año
case 1937: lblchino.caption = ""
case 1938: lblchino.caption = ""
case 1939: lblchino.caption = ""
case 1940: lblchino.caption = ""
case 1941: lblchino.caption = ""
case 1942: lblchino.caption = ""
case 1943: lblchino.caption = ""
case 1944: lblchino.caption = ""
case 1945: lblchino.caption = ""
case 1946: lblchino.caption = ""
case 1947: lblchino.caption = ""
endselect
endif
Loop
PD: avisame q te parece y si te funciona o no, suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con bucle

Publicado por Carlos (66 intervenciones) el 15/02/2008 22:07:48
De una te digo que eso no funciona !!!

si la persona nacio en 1981 como yo, segun tu caso no me daria ninguna respuesta

has lo siguiente

Dim z As Long

z = fechanacimiento - 1900
If z < 0 Then
MsgBox "La fecha tiene que ser superior a 1900", vbCritical, ""
Exit Sub
End If
Do While z >= 12
z = z - 12
Loop

If z = 0 Then MsgBox "Eres Rata"
If z = 1 Then MsgBox "Eres Buey"
If z = 2 Then MsgBox "Eres Tigre"
If z = 3 Then MsgBox "Eres Conejo"
If z = 4 Then MsgBox "Eres Dragon"
If z = 5 Then MsgBox "Eres Serpiente"
If z = 6 Then MsgBox "Eres Caballo"
If z = 7 Then MsgBox "Eres Cabra"
If z = 8 Then MsgBox "Eres Mono"
If z = 9 Then MsgBox "Eres Gallo"
If z = 10 Then MsgBox "Eres Perro"
If z = 11 Then MsgBox "Eres Cerdo"

es lo unico que tienes que hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tampoco funciona eso

Publicado por Ivan (1041 intervenciones) el 15/02/2008 22:43:35
Pues mira, en la linea esta:
z = fechanacimiento - 1900
si "fechanacimiento" es, como se supone, una variable de tipo FECHA, lo que estás haciendo es RESTARLE 1900 DIAS a esa fecha, guardando el resultado en "Z".
Si lo que pretendías era RESTARLE 1900 AÑOS a "fechanacimiento" debería ser:
z = Year( fechanacimiento ) - 1900
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con bucle

Publicado por Analia (3 intervenciones) el 16/02/2008 14:57:49
gracias por responder tan rapido
ahora q me lo preguntas ED de tantos intentos ya no recuerdo que hace la "c" ahi
ahora le estoy dando otra forma de ejecucion.. por cierto la opcion qe me diste no me funciono tal vez porque el programa tampoco sabe que hacer de la variable "c"

como hago una pregunta supongamos que puse los años correspondientes a cada signo declarados y el Do While x = signo
pero no se como hacer esa pregunta aqui coloco mi ultimo intento de anoche

rata = 1936 /* cada signo viene con la fecha
bufa = 1937
tigre = 1938
cone = 1939
dragon = 1940
serp = 1941
caba = 1942
cabra = 1943
mono = 1944
gallo = 1945
perro = 1946
chancho = 1947

Do While x =
x = x - 12
If x = rata Then
lblChino.Caption = "Rata"
Else
If x = bufa Then
lblChino.Caption = "Bufalo"
Else
If x = tigre Then
lblChino.Caption = "Tigre"
Else
If x = cone Then
lblChino.Caption = "Conejo"
Else
If x = dragon Then
lblChino.Caption = "Dragón"
Else
If x = serp Then
lblChino.Caption = "Serpiente"
Else
If x = caba Then
lblChino.Caption = "Caballo"
Else
If x = cabra Then
lblChino.Caption = "Cabra"
Else
If x = mono Then
lblChino.Caption = "Mono"
Else
If x = gallo Then
lblChino.Caption = "Gallo"
Else
If x = perro Then
lblChino.Caption = "Perro"
Else
If x = chancho Then
lblChino.Caption = "Chancho"


End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If

Loop


agradesco la ayuda
muchas muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con bucle

Publicado por alberto (123 intervenciones) el 17/02/2008 10:46:00
Si no me equivoco, por el código que envías, el signo del horoscopo chino viene determinado por el resto de la división del año de nacimiento entre 12, si es así:

usa
x=x mod 12
y toma los signos empezando con el 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con bucle

Publicado por Analia (3 intervenciones) el 18/02/2008 17:25:40
Hola gracias por la ayuda el problema esta resuelto
Agradezco a ED por tomarse un tiempo para ayudarme
Gracias por la ayuda nuevamente!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

- Mod Sarcasmo ON -

Publicado por Carlos (66 intervenciones) el 18/02/2008 19:39:37
- Mod Sarcasmo ON - Menos mal que fue ED el que ayudo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:- Mod Sarcasmo ON -

Publicado por Charolo (1 intervención) el 18/02/2008 22:21:18
Y luego me dices a mí que yo no escriba babosadas, Ja!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar