Cześć dostałem takie zadanie:
Zadanie:
urządzenie monitorujące funkcje życiowe pacjenta na Oddziale Intensywnej Opieki Medycznej sprawdza: skurczowe i rozkurczowe ciśnienie krwi, puls oraz temperaturę ciała. Po przekroczeniu granicznych wartości urządzenie wywołuje alarm. Zgodnie z API urządzenia zawartego w pliku medical_api.h, wartości paramterów odczytuje się z czujników wywołując funkcje:
1. ciśnienie skurczowe: get_systolic_pressure();
2. ciśnienie rozkurczowe: get_diastolic_pressure();
3. tętno: get_pulse();
4. temperatura ciała: get_temperature();
Zakresy wartości poszczególnych parametrów uznane za prawidłowe przedstawiają się następująco:
1. ciśnienie skurczowe: 100 - 139 mm Hg
2. ciśnienie rozkurczowe: 70 - 89 mm Hg
3. tętno: 55 - 80 uderzeń na minutę
4. temperatura: 36.0 - 37.0 stopni Celsjusza.
Możliwe stany alarmowe to:
NORMAL = wszystkie parametry życiowe są w normie
WARNING = jeden z parametrów (np. tętno albo ciśnienie skurczowe lub/i rozkurczowe) uległ odchyleniu od normy.
DANGER = dwa parametry (np. tętno i temperatura ) są już niebezpieczne dla życia.
CRITICAL = trzy lub więcej parametrów uległo zmianie stan pacjenta jest krytyczny!
Aha, pamiętaj, że niezależnie które ciśnienie (skurczowe, rozkurczowe czy oba naraz) ulegają zaburzeniu, należy traktować to jako podniesienie alarmu o 1 stopień.
Uzupełnij funkcję checkCondition() tak aby w przypadku przekroczenia którejkolwiek wartości zgłosiła prawidłowy alarm: WARNING, DANGER, CRITICAL. W przypadku gdy wszystko jest dobrze niech funkcja zgłosi wartość NORMAL.
Tak wygląda mój aktualny kod:
#include <medical_api.h>
E_MEDICALS checkCondition()
{
int sys = get_systolic_pressure();
int dia = get_diastolic_pressure();
int pulse = get_pulse();
float temp = get_temperature();
int warns = 0;
enum wyniki
{
NORMAL = 1,
WARNING = 2,
DANGER = 3,
CRITICAL
};
wyniki wynik;
if(sys < 100 || sys > 139)
{
warns = warns + 1;
}
if(dia < 70 || dia > 89)
{
warns = warns + 1;
}
if(pulse < 55 || pulse > 80)
{
warns = warns + 1;
}
if(temp < 36 || temp > 37)
{
warns = warns + 1;
}
if(warns == 0)
{
wynik = NORMAL;
}
else if(warns == 1)
{
wynik = WARNING;
}
else if(warns == 2)
{
wynik = DANGER;
}
else if(warns == 3)
{
wynik = CRITICAL;
}
return wynik;
}
medical_api.h:
#ifndef MEDICAL_API_H
#define MEDICAL_API_H
// Lista stanów alarmowych
enum E_MEDICALS
{
UNKNOWN = 0,
NORMAL,
WARNING,
DANGER,
CRITICAL
};
// get_systolic_pressure: funkcja zwraca ciśnienie skurczowe podłączonego pacjenta
// Argumenty:
// brak: funkcja nie pobiera żadnych wartości
// return:
// int: ciśnienie skurczowe
int get_systolic_pressure();
// get_diastolic_pressure: funkcja zwraca ciśnienie rozkurczowe podłączonego pacjenta
// Argumenty:
// brak: funkcja nie pobiera żadnych wartości
// return:
// int: ciśnienie rozkurczowe
int get_diastolic_pressure();
// get_pulse: funkcja zwraca ilość uderzeń serca na minute podłączonego pacjenta
// Argumenty:
// brak: funkcja nie pobiera żadnych wartości
// return:
// int: ilość uderzeń serca na minute
int get_pulse();
// get_temperature: funkcja zwraca temperature ciała w stopniach celcjusza podłączonego pacjenta
// Argumenty:
// brak: funkcja nie pobiera żadnych wartości
// return:
// int: temperatura w stopniach celcjusza
float get_temperature();
#endif // MEDICAL_API_H
Otóż przy próbie kompilacji dostaje błąd:
Cannot convert 'checkCondition()'
Wie ktoś jak to poprawić? :D