Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: leliCabello en 27 Marzo 2010, 19:26 pm



Título: estructuras selectivas
Publicado por: leliCabello en 27 Marzo 2010, 19:26 pm
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
Código:
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


Título: Re: estructuras selectivas
Publicado por: raul338 en 27 Marzo 2010, 19:49 pm
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 :)


Título: Re: estructuras selectivas
Publicado por: seba123neo en 27 Marzo 2010, 20:39 pm
el ultimo IF es en broma..no lo probe pero algo asi es...para que te des una idea nomas, se puede mejorar...

Código
  1. Imports System.Console
  2.  
  3. Module Module1
  4.  
  5.    Sub Main()
  6.        Title = "Nivel de Hemoglobina"
  7.        ForegroundColor = ConsoleColor.Cyan
  8.  
  9.        Dim vEdad, vNivelHemoglobina As Double
  10.        Dim vGenero As String
  11.        Dim vRango(1) As Double
  12.  
  13.        WriteLine("Ingresar su edad: ")
  14.        vEdad = ReadLine()
  15.  
  16.        WriteLine("Ingresar su género (H/M): ")
  17.        vGenero = ReadLine()
  18.  
  19.        WriteLine("Ingresar su nivel de Hemoglobina: ")
  20.        vNivelHemoglobina = ReadLine()
  21.  
  22.        Select Case vEdad
  23.            Case 0 To 0.1
  24.                vRango(0) = 13
  25.                vRango(1) = 26
  26.            Case Is > 0.1, Is <= 0.6
  27.                vRango(0) = 10
  28.                vRango(1) = 18
  29.            Case Is > 0.6, Is <= 1
  30.                vRango(0) = 11
  31.                vRango(1) = 15
  32.            Case Is > 1, Is <= 5
  33.                vRango(0) = 11.5
  34.                vRango(1) = 15
  35.            Case Is > 5, Is <= 10
  36.                vRango(0) = 12.6
  37.                vRango(1) = 15.5
  38.            Case Is > 10, Is <= 15
  39.                vRango(0) = 13
  40.                vRango(1) = 15.5
  41.            Case Is > 15
  42.                If vGenero.ToUpper = "H" Then
  43.                    vRango(0) = 12
  44.                    vRango(1) = 16
  45.                Else
  46.                    vRango(0) = 14
  47.                    vRango(1) = 18
  48.                End If
  49.        End Select
  50.  
  51.        WriteLine("")
  52.  
  53.        If vNivelHemoglobina >= vRango(0) And vNivelHemoglobina <= vRango(1) Then
  54.            WriteLine("Esta en los valores normales...")
  55.        ElseIf vNivelHemoglobina < vRango(0) Then
  56.            WriteLine("Esta debajo de los valores 'ANEMIA'")
  57.        ElseIf vNivelHemoglobina > vRango(1) Then
  58.            WriteLine("Esta por arriba de los valores 'POLICITEMIA'")
  59.        Else
  60.            WriteLine("No tenes sangre XD...")
  61.        End If
  62.  
  63.        ReadLine()
  64.    End Sub
  65. End Module

saludos.


Título: Re: estructuras selectivas
Publicado por: leliCabello en 29 Marzo 2010, 20:26 pm
gracias eh saludos  ;)