Dev - C++ - una duda sobre los registros

 
Vista:

una duda sobre los registros

Publicado por francisco (6 intervenciones) el 26/10/2019 19:51:56
Buenas estoy haciendo un programa donde debo calcular la presión arterial de 20 pacientes (si son mayores de 18) y luego mostrar la presión de cada paciente al final. Tengo dos dudad, ¿tengo que declarar cada uno de los 20 pacientes o hay una forma de hacer que declare pacientes hasta que llegue a 20? y la otra es que en el momento de mostrar las presiones el programa se cuelga y no entiendo por que, adjunto la parte del código con la que estoy testeando.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include<stdio.h>
struct paciente
{
    int tal, tbaj;
};
 
int main()
{
    int edad;
    struct paciente pac1, pac2, pac3;
    printf("Paciente 1:\n");
    printf("\nIngrese la edad del paciente: ");
    scanf("%i", &edad);
    if (edad>=18)
    {
        printf("\nIngrese tension alta: \n");
        scanf("%i", &pac1.tal);
        fflush(stdin);
        if(pac1.tal > 120)
        {
            printf("La tensión alta esta alta.\n");
        }
        else if (pac1.tal < 120)
        {
            printf("La tension alta esta baja.\n");
        }
        else
        {
            printf("La tension alta esta normal.\n");
        }
        printf("\nIngrese tension baja: \n");
        scanf("%i", &pac1.tbaj);
        if(pac1.tbaj > 70)
        {
            printf("La tension baja esta alta.\n");
        }
        else if(pac1.tbaj < 70)
        {
            printf("La tension baja esta baja.\n");
        }
        else
        {
            printf("La tension baja esta normal.\n");
        }
    }
    else
    {
    	printf("\nNo atendemos a menores de edad.\n");
	}
 
    printf("\nPaciente 2.\n");
    printf("\nIngrese la edad del paciente: ");
    scanf("%i", &edad);
    if (edad>=18)
    {
		printf("\nIngrese tension alta: \n");
        scanf("%i", &pac2.tal);
        fflush(stdin);
        if(pac2.tal > 120)
        {
            printf("La tensión alta esta alta.\n");
        }
        else if (pac2.tal < 120)
        {
            printf("La tension alta esta baja.\n");
        }
        else
        {
            printf("La tension alta esta normal.\n");
        }
        printf("\nIngrese tension baja: \n");
        scanf("%i", &pac2.tbaj);
        if(pac2.tbaj > 70)
        {
            printf("La tension baja esta alta.\n");
        }
        else if(pac2.tbaj < 70)
        {
            printf("La tension baja esta baja.\n");
        }
        else
        {
            printf("La tension baja esta normal.\n");
        }
    }
    else
    {
    	printf("\nNo atendemos a menores de edad.\n");
	}
    printf("\nPaciente 3.\n");
    printf("\nIngrese la edad del paciente: ");
    scanf("%i", &edad);
    if (edad>=18)
    {
        printf("\nIngrese tension alta: \n");
        scanf("%i", &pac3.tal);
        fflush(stdin);
        if(pac3.tal > 120)
        {
            printf("La tension alta esta alta.\n");
        }
        else if (pac3.tal < 120)
        {
            printf("La tension alta esta baja\n.");
        }
        else
        {
            printf("La tension alta esta normal.\n");
        }
        printf("\nIngrese tension baja: \n");
        scanf("%i", &pac3.tbaj);
        if(pac3.tbaj > 70)
        {
            printf("La tension baja esta alta.\n");
        }
        else if(pac3.tbaj < 70)
        {
            printf("La tension baja esta baja.\n");
        }
        else
        {
            printf("La tension baja esta normal.\n");
        }
    }
    else
    {
    	printf("\nNo atendemos a menores de edad.");
	}
    printf("\nVamos a mostrar la presion arteria de cada paciente.");
    printf("\n----------------Presion Arterial-----------------");
	printf("\nLa presion artecial del paciente 1 es: %s/%s", pac1.tal, pac1.tbaj);
	printf("\nLa presion artecial del paciente 1 es: %s/%s", pac2.tal, pac2.tbaj);
	printf("\nLa presion artecial del paciente 1 es: %s/%s", pac3.tal, pac3.tbaj);
 
return 0;
}
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
Imágen de perfil de Alfil
Val: 3.476
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una duda sobre los registros

Publicado por Alfil (945 intervenciones) el 27/10/2019 06:59:24
Tienes que declararlo mediante un struct:

1
2
3
4
5
6
7
struct Paciente {
    int edad;
    int tal;
    int tbaj;
};
 
Paciente p[20];

La llamada a casa paciente se realiza de la siguiente forma:

1
p[0].edad = 18;  // establece a 18 la edad del paciente 0.

Recuerda que el array va de 0 a 20, por lo tanto el recorrido del array seria:

1
2
3
4
for( int i = 0; i < 20; i++ ) {
	p[i].edad = valorLeido;
	....
}
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

una duda sobre los registros

Publicado por francisco (6 intervenciones) el 27/10/2019 13:44:47
Claro pero de la forma que me dices como tendría que hacer las preguntas de la tension? ¿dentro del for? y como guardo la info de cada paciente para luego mostrarla con fflush?
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
Imágen de perfil de Alfil
Val: 3.476
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una duda sobre los registros

Publicado por Alfil (945 intervenciones) el 27/10/2019 16:39:13
¿Puedes poner el enunciado completo del ejercicio?, ¿hay que ir mostrando la tensión de conforme se introducen los datos o una especie de resumen al final?
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

una duda sobre los registros

Publicado por francisco (6 intervenciones) el 27/10/2019 22:17:11
Como no, mira aquí está:
El doctor Yumar desea un programa que calcule la tension arterial de 20 pacientes los cuales están compredidos entre 18 y 70 años de edad. Para los pacientes entre 50-70: Si la tension alta es mayor a 120 está alta, si es menor a 120 está baja.
Si la tencion baja es mayor a 70 está alta y si es menor a 70 está baja.

(Esto entiendo yo se referirá a la presión sistolica y la presión diastolica, o sea 120/70 como se representaría, prosigo.)

Para los pacientes de entre 18-29 y 30-49 aplicar lo mismo que los pacientes de 50-70.

Mostrar: La presión arterial de los pacientes, mostrar cuantos pacientes entraron al día.
Nota: No existen pacientes menores de edad.

Ese es el enunciado que me han dado, a mi me da la impresión de que sería al final un resumen o en su caso aparte, o sea hacer un tipo de menú donde elijas entre ingresar las dos presiones de cada paciente y otro en donde te las muestre, y lo de mostrar cuantos pacientes igual.
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
Imágen de perfil de Alfil
Val: 3.476
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una duda sobre los registros

Publicado por Alfil (945 intervenciones) el 28/10/2019 05:44:40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
 
struct Paciente{
    char nombre[15];
    int edad;
    int tAlta;
    int tBaja;
};
 
int imprimirTension( int alta, int baja );
 
int main()
{
    int edad, total18 = 0, total50 = 0, hTotal18 = 0, hTotal50 = 0, i;
    Paciente p[20];
 
    i = 0;
    printf( "\nPaciente 1:\n" );
    printf( "Edad (999 para terminar): " );
    scanf( "%d", &edad );
 
    while( i < 20 && edad != 999 ) {
        if( edad < 18 || edad > 70 )
            printf( "\nEdad fuera de rango\n" );
        else {
            p[i].edad = edad;
            printf( "Nombre: " );
            scanf( " %s", p[i].nombre );
            printf( "Sistole (alta): " );
            scanf( "%d", &p[i].tAlta );
            printf( "Diastole (baja): " );
            scanf( "%d", &p[i].tBaja );
 
            if( edad >= 18 && edad < 50 ) {
                total18++;
                printf( "Diagnostico: " );
                hTotal18 += imprimirTension( p[i].tAlta, p[i].tBaja );
            } else {
                total50++;
                printf( "Diagnostico: " );
                hTotal50 += imprimirTension( p[i].tAlta, p[i].tBaja );
            }
            i++;
        }
 
        printf( "\nPaciente %d:\n", i+1 );
        printf( "Edad (999 para terminar): " );
        scanf( "%d", &edad );
    }
 
    printf( "\nTotal pacientes atendidos: %d", total18 + total50 );
    printf( "\nTotal pacientes entre 18 y 49 años: %d", total18 );
    printf( "\nTotal pacientes hipertensos entre 18 y 49 años: %d", hTotal18 );
    printf( "\nTotal pacientes entre 50 y 70 años: %d", total50 );
    printf( "\nTotal pacientes hipertensos entre 50 y 70 años: %d", hTotal50 );
 
    printf( "\n" );
 
    return 0;
}
 
int imprimirTension( int alta, int baja )
{
    if( alta > 120 || baja > 70 ) {
        printf( "Hipertension\n" );
        return 1;
    } else {
        printf( "Normal\n" );
        return 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