• Martes 21 de Enero de 2020, 21:12

Autor Tema:  problema simple de un programa medico (TEMA RESUELTO)  (Leído 1900 veces)

andrescabana215

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
problema simple de un programa medico (TEMA RESUELTO)
« en: Lunes 30 de Mayo de 2011, 21:03 »
0
hola necesito ayuda con este programa....


Código: Java
  1.  
  2.  
  3. import java.util.Random;
  4.  
  5. public class corazon {
  6.  
  7.       public static void main (String[] args) {
  8.  
  9.           int sistole[]= {118,119,120,121,122,130};
  10.           int diastole[]= {70,71,72,73,83,90};
  11.          
  12.          
  13.                  
  14.           Random rnd = new Random();
  15.           Random rnw = new Random();
  16.          
  17.           for (int i=0; i<50000; i++) {
  18.  
  19.              
  20.              
  21.           System.out.println("SISTOLE: " + sistole[rnd.nextInt(6)]);
  22.           if (sistole[rnd.nextInt(6)] >= 121){
  23.               System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  24.              
  25.           }
  26.          
  27.           System.out.println("DIASTOLE: " + diastole[rnw.nextInt(6)]);
  28.          
  29.           if (diastole[rnw.nextInt(6)] > 80){
  30.               System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  31.           }
  32.           System.out.println();
  33.           System.out.println();
  34.           System.out.println();
  35.          
  36.        
  37.          
  38.              
  39.          
  40.          
  41.           try {
  42.               Thread.sleep(8000);
  43.               } catch (InterruptedException e) {
  44.  
  45.               }
  46.          
  47.           }
  48.       }
  49.          
  50. }
  51.  
  52.  
  53.  


supuestamente tiene que imprimir cada cierta cantidad de tiempo la sistole y la diastole pero la restriccion de que si la sistole es mayor a 121 no se cumple porque aparece guiada por otro random nuevo
y no por el numero random que se crea antes...

como hago para que ese primer randon entre dentro del if... y no que otro random haga que aparesca el cartelucho de CORRIGIENDO...
« última modificación: Lunes 6 de Junio de 2011, 02:29 por andrescabana215 »

tomas_sauron

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #1 en: Martes 31 de Mayo de 2011, 19:18 »
0
Muchacho la condicion si se cumple,no imprime las sistoles q qeres xq  dicha impresion las pusiste fuera del if
y para q no muestre la leyenda "Corriegiendo frecuencia ..." deberias ponerle una condicion
noc cual es .
Noc si era esa tu inqietud ???
sino era pregunta d vuelta !!
saludos !!

andrescabana215

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #2 en: Martes 31 de Mayo de 2011, 23:07 »
0
no señor no se cumple!....

repito el programa y la respuesta es incorrecta pego la respuesta como deberia ser:

SISTOLE: 120
DIASTOLE: 79

SISTOLE: 121
CORRIGIENDO FREUENCIA CARDIACA...
DIASTOLE: 79

SISTOLE:119
DIASTOLE: 81
CORRIGIENDO FRECUENCIA CARDIACA...

SISTOLE: 119
DIASTOLE: 78


muestro el resultado que realmente sale que obviamente nose porque o que hice mal en el codigo:

SISTOLE: 120
CORRIGIENDO FREUENCIA CARDIACA...
DIASTOLE: 79

SISTOLE: 121
DIASTOLE: 79

SISTOLE:119
DIASTOLE: 81


SISTOLE: 119
DIASTOLE: 78
CORRIGIENDO FREUENCIA CARDIACA...



LES AGRADECERIA SI ME PLANTEAN SUS DUDAS DE COMO LO HICE PARA ACLARAR LO QUE NECESITEN Y PODER CORREGIR

tomas_sauron

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #3 en: Miércoles 1 de Junio de 2011, 00:31 »
0
Si senior si se cumple!! jaja

ya t dije antes t faltan condiciones
 
vos pones
Código: Java
  1. System.out.println("SISTOLE: " + sistole[rnd.nextInt(6)]);
  2.           if (sistole[rnd.nextInt(6)] >= 121){
  3.               System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  4.              
  5.           }
  6.  
lo q va a pasar es 1°) t va a imprimir SISTOLE + cualqier valor del vector sistole aca tendrias q poner una condicion para q muestre el valor d sistole correcto        

y 2°)  entra en el if cuando el rnd tira un valor mayor o igual a 121 ademas deberias imprimir dicho valor para q muestre la sistole q corrige,
pero esto debe ir anidado con la condicion del punto uno q coloqe mas arriba

lo q deberias tner mas o menos es :

Código: Java
  1.  
  2.                      int sistole = sistole[rnd.nextInt(6)];
  3.                      if(condicion){//una condicon q corrobore q es un valor valido d sistole //
  4.                         System.out.println("SISTOLE: " + sistole;
  5.                       }
  6.                       else {
  7.                                System.out.println("SISTOLE: " + sistole;
  8.                                System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  9.                             }
  10.  
  11.                       }
  12.  

mas o menos no si m expliq bien ??
ah!! lo mismo paara diastole ;

sino es asi pregunte d vuelta senior !!
 
saludos !!

PD : ac mucho programaas ??

andrescabana215

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #4 en: Viernes 3 de Junio de 2011, 03:19 »
0
GRACIAS HERMANO... SI ENTENDI... AHORA LO PRUEBO AVER QUE SALEEE

PROGRAMO HACE 5 DIASSS JAJAJJA!!

PERO TENGO MUCHA CANCHA PARA ESTUDIAR ASI QUE VOY RAPIDITO...

tomas_sauron

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #5 en: Viernes 3 de Junio de 2011, 04:01 »
0
bue t qda 1 largo camino x recorrer !! suert !!

andrescabana215

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #6 en: Viernes 3 de Junio de 2011, 21:34 »
0
Hola, al parecer tomas_sauron habia entendido pero no entendi bien lo que me explicaste....

ingrese el codigo maso menos como me dijiste y me daba errores... asi que lo modifique y me quedo asi...

Código: Java
  1.  
  2.  
  3. import java.util.Random;
  4.  
  5. public class corazon {
  6.  
  7.       public static void main (String[] args) {
  8.  
  9.           int sistole[]= {118,119,120,121,122,130};
  10.           int diastole[]= {70,71,72,73,83,90};
  11.          
  12.          
  13.                  
  14.           Random rnd = new Random();
  15.           Random rnw = new Random();
  16.          
  17.           for (int i=0; i<50000; i++) {
  18.  
  19.               int sistole2 = sistole[rnd.nextInt(6)];
  20.            
  21.               System.out.println("SISTOLE: " + sistole2);
  22.               if (sistole2>=121){
  23.          
  24.           System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  25.              
  26.           }
  27.          int diastole2 = diastole[rnw.nextInt(6)];
  28.          
  29.                 System.out.println("DIASTOLE: "+diastole2);
  30.               if (diastole2>=80){
  31.               System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  32.           }
  33.           System.out.println();
  34.           System.out.println();
  35.           System.out.println();
  36.          
  37.        
  38.          
  39.              
  40.          
  41.          
  42.           try {
  43.               Thread.sleep(2000);
  44.               } catch (InterruptedException e) {
  45.  
  46.               }
  47.          
  48.           }
  49.       }
  50.          
  51. }
  52.  
  53.  
  54.  



sera correcto cuando tuve que poner int sistole2 = sistole[rnd....

osea me parece que meti una variable dentro de otra... y lo que vos me dijiste no es lo que yo hice... entonces por ahi para aprender mas me gustaria saber si eso es lo que vos hubieses echo

sea de paso ves que yo entendi que vos usaste una sola variable para mostrarme el problema que es sistole... y yo puse sistole dentro de sistole2 para que funcione pero si no era necesario

entonces me podes decir porque.???

muchas gracias y con esto terminaria el tema
 saludos

tomas_sauron

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: problema simple de un programa medico
« Respuesta #7 en: Sábado 4 de Junio de 2011, 04:56 »
0
Buenas muchacho !!

Sisi pued cr q d error xq le puse el mismo nombre a la variable y al array bueno esa va para la fe de erratas !! :P ,

bueno ahora el tma s entndr 2 cosas una x como escribist el codigo la ultima vez el problema inicial no lo resolviste

y dos lo q ic con lo q m preguntas s
al poner
Código: Java
  1. int sistole2 = sistole[rnd.nextInt(6)];
  2.  
como el vector sistole tiene hasta 6 valores de tipo int y se van a usar varias vcs
lo k hago para trabajar mas comodo s guardar en una variable y trabajar con esa variable sto ultimo no stan important
como el primer punto

tal vz no m expliq bien cuando vos qerees expresar una situacion dicotomica mediant codigo  
o sea q pac algo y no pac por ejemplo q una moneda sea cara o no sea cara
como tu ejemplo
      si  mi sistole es < 121 qiero q pac algo
          sino  q pac otra cosa

 
   si sistole < 121 {
         imprimo sistole  
     }
      sino  {
                 imprimo sistole;
                 imprimo CORRIGIENDO FRECUENCIA CARDIACA;

    }


intentalo vos solo o act otro ejercicio asi t practicas algo
y sino cgui preguntando che !!  :D

PD:ak t djo el codigo q prob yo y anda !! s tu mismo codigo con una coorreccion
             
Código: Java
  1. import java.util.Random;
  2.    
  3.    
  4.    
  5.     public class corazon {
  6.      
  7.           public static void main (String[] args) {
  8.      
  9.               int sistole[]= {118,119,120,121,122,130};
  10.               int diastole[]= {70,71,72,73,83,90};
  11.              
  12.              
  13.                      
  14.               Random rnd = new Random();
  15.               Random rnw = new Random();
  16.              
  17.               for (int i=0; i<50000; i++) {
  18.      
  19.                   int sistole2 = sistole[rnd.nextInt(6)];
  20.                
  21.                   if (sistole2<121){//<<<---------ak la correccion
  22.                        System.out.println("SISTOLE: " + sistole2);
  23.                   }
  24.                        else{
  25.                            System.out.println("SISTOLE: " + sistole2);
  26.                            System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  27.  
  28.  
  29.                  }
  30.              
  31.               //<<------------hasta ak
  32.                  
  33.              
  34.              int diastole2 = diastole[rnw.nextInt(6)];
  35.              
  36.                    
  37.                   if (diastole2<80){//<<<----------dsd ak
  38.                       System.out.println("DIASTOLE: "+diastole2);
  39.                   }
  40.                   else{
  41.                       System.out.println("DIASTOLE: "+diastole2);
  42.                       System.out.println("CORRIGIENDO FRECUENCIA CARDIACA...");
  43.  
  44.  
  45.  
  46.               }
  47.                            //<<------------hasta ak
  48.               System.out.println();
  49.               System.out.println();
  50.               System.out.println();
  51.              
  52.            
  53.              
  54.                  
  55.              
  56.              
  57.               try {
  58.                   Thread.sleep(2000);
  59.                   } catch (InterruptedException e) {
  60.      
  61.                   }
  62.              
  63.               }
  64.           }
  65.              
  66.     }
  67.      
  68.      
  69.  
  70.  
  71.  
  72.  
  73.    
  74.  



Saludos !!!!!  :hola: