qtal amigos ps quiero que me yuden con esto, es que no se como usar en este ejemplo el select case, ya que me dan una tabla indicando los años,meses y tambien hombre mujeres, para esto lo estaba poniendo como genero, para que ingresen como femenino y masculino, abajo esta el enunciado para q me entiendadn mejor
Imports System.Console
Module Module6
Sub main()
Title = "Nivel de Hemoglobina"
ForegroundColor = ConsoleColor.Cyan
'variables
Dim edad#, genero$, nivelhemoglobina#
Dim mes$
'entradas
Write("Ingresar su edad: ") : edad = ReadLine()
Write("Ingresar su género: ") : genero = ReadLine()
Write("Ingresar su nivel de Hemoglobina: ") : nivelhemoglobina = ReadLine()
'proceso
Select Case edad
Case 0 To 1 : nivelhemoglobina = 13
Case > 1 and <=6 :nivelhemoglobina=10
Case > 6 and < = 12 años : nivelhemoglobina=11
Case > 1 and < = 5 años : nivelhemoglobina=11.5
Case > 5 and < = 10 años : nivelhemoglobina=12.6
Case > 10 and < = 15 años : nivelhemoglobina=13
Case mujeres > 15 años : nivelhemoglobina=12
Case hombres > 15 años : nivelhemoglobina=14
'Tomando como base los resultados obtenidos en un laboratorio de
'análisis clínicos, un medico determina si una persona tiene anemia
'o no, lo cual depende de su nivel de hemoglobina en la sangre, de su edad
' y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que
' el rango que le corresponde, se determina su resultado como positivo y en caso
'contrario como negativo. La tabla en la que el medico se basa para obtener el resultado es
'la(siguiente):
'0 - 1 mes 13 - 26 g%
'> 1 y < = 6 meses 10 - 18 g%
'> 6 y < = 12 meses 11 - 15 g%
'> 1 y < = 5 años 11.5 - 15 g%
'> 5 y < = 10 años 12.6 - 15.5 g%
'> 10 y < = 15 años 13 - 15.5 g%
'mujeres > 15 años 12 - 16 g%
'hombres > 15 años 14 - 18 g%
End Select
'salida
End Sub
End Module
Tu problema no es con el select case, si estas iniciando lo aprendiste bien. Tu problema es con las variables
Un valor esta en lo correcto si se encuentra en medio de DOS variables, un minimo y un maximo
Si vos comparas el porcentaje de sangre con algo, no obtenes nada, en cambio si lo comparas con un maximo y un minimo obtienes si es anemico, normal, o tiene demasiada sangre (?) :huh:
lo que tienes que hacer es declarar dos variables minimo y maximo
en el select case las asignas segun la edad
luego con un if averiguas su estado (si es mayor que el minimo y menor que el maximo)
Y listo :)
el ultimo IF es en broma..no lo probe pero algo asi es...para que te des una idea nomas, se puede mejorar...
Imports System.Console
Module Module1
Sub Main()
Title = "Nivel de Hemoglobina"
ForegroundColor = ConsoleColor.Cyan
Dim vEdad, vNivelHemoglobina As Double
Dim vGenero As String
Dim vRango(1) As Double
WriteLine("Ingresar su edad: ")
vEdad = ReadLine()
WriteLine("Ingresar su género (H/M): ")
vGenero = ReadLine()
WriteLine("Ingresar su nivel de Hemoglobina: ")
vNivelHemoglobina = ReadLine()
Select Case vEdad
Case 0 To 0.1
vRango(0) = 13
vRango(1) = 26
Case Is > 0.1, Is <= 0.6
vRango(0) = 10
vRango(1) = 18
Case Is > 0.6, Is <= 1
vRango(0) = 11
vRango(1) = 15
Case Is > 1, Is <= 5
vRango(0) = 11.5
vRango(1) = 15
Case Is > 5, Is <= 10
vRango(0) = 12.6
vRango(1) = 15.5
Case Is > 10, Is <= 15
vRango(0) = 13
vRango(1) = 15.5
Case Is > 15
If vGenero.ToUpper = "H" Then
vRango(0) = 12
vRango(1) = 16
Else
vRango(0) = 14
vRango(1) = 18
End If
End Select
WriteLine("")
If vNivelHemoglobina >= vRango(0) And vNivelHemoglobina <= vRango(1) Then
WriteLine("Esta en los valores normales...")
ElseIf vNivelHemoglobina < vRango(0) Then
WriteLine("Esta debajo de los valores 'ANEMIA'")
ElseIf vNivelHemoglobina > vRango(1) Then
WriteLine("Esta por arriba de los valores 'POLICITEMIA'")
Else
WriteLine("No tenes sangre XD...")
End If
ReadLine()
End Sub
End Module
saludos.
gracias eh saludos ;)