/* g++ -g test.cpp -o test */ #include<stdio.h> struct PERSON{ double a1,a2; double d1,d2; double arrival_CS(double); // 到着時刻に関する満足度関数 double departure_CS(double); // 出発時刻に対する満足度関数 }; double PERSON::arrival_CS(double time){ double ret; if (time < a1){ ret = 1.0; } else if (time > a2){ ret = 0.0; } else { ret = 1.0 / (a1 - a2) * ( time - a2); } return ret; } double PERSON::departure_CS(double time){ double ret; if (time < d1){ ret = 1.0; } else if (time > d2){ ret = 0.0; } else { ret = 1.0 / (d1 - d2) * ( time - d2); } return ret; } int main (){ PERSON person; // 構造体定義名の前に「struct」がいらない(C++にあってCにない規定らしい) // 以下が、マインド(心)変数 person.a1 = 1; person.a2 = 3; person.d1 = 2; person.d2 = 4; double time = 2.7; double aa = person.arrival_CS(time); double bb = person.departure_CS(time); printf("time = %f, aa = %f, bb = %f\n", time, aa, bb); return 0; }