#define DIAGNOSES 3 #define CHECKS 23 continuous X[CHECKS]; continuous Diag[DIAGNOSES]; #define Rule 1 <= 1 - #define yields + #define plus + 1 - #define electrical_problem Diag[0] #define choke Diag[1] #define solenoid_switch Diag[2] #define good_gas_feed X[0] #define start_and_die X[1] #define batteryOK X[2] #define fusesOK X[3] #define misstart X[4] #define radioOUT X[5] #define fusesBAD X[6] #define fusesNEW X[7] #define bad_weather X[8] #define bucking X[9] #define signals_flicker X[10] #define cough X[11] #define backfire X[12] #define gag X[13] #define NObackfire X[14] #define gas_line_clean X[15] #define fuel_filter_clean X[16] #define carburetorOK X[17] #define fuel_injectionOK X[18] #define kicks_over X[19] #define dies X[20] #define extreme_cold X[21] #define heavy_rain X[22] knowledge_base() { Rule good_gas_feed plus start_and_die plus batteryOK yields electrical_problem; Rule fusesOK plus misstart plus radioOUT yields electrical_problem; Rule fusesBAD plus fusesNEW yields electrical_problem; Rule bad_weather plus good_gas_feed plus misstart plus bucking yields choke; Rule good_gas_feed plus start_and_die yields choke; Rule start_and_die plus signals_flicker plus bad_weather yields solenoid_switch; Rule misstart plus good_gas_feed plus batteryOK yields solenoid_switch; Rule cough plus backfire yields misstart; Rule gag plus NObackfire yields misstart; Rule gas_line_clean plus fuel_filter_clean plus carburetorOK yields good_gas_feed; Rule gas_line_clean plus fuel_filter_clean plus fuel_injectionOK yields good_gas_feed; Rule kicks_over plus misstart plus dies yields start_and_die; Rule extreme_cold yields bad_weather; Rule heavy_rain yields bad_weather; } diagnosis(int i) { string diagnoses[DIAGNOSES]; diagnoses = { "Electrical system; bad news", "The automatic choke; it could be worse", "The solenoid switch; this part must be ordered" }; printf("\nThe diagnosis is\n %s\n",diagnoses[i]); } #define reported ==1 driver_information() { cough reported; backfire reported; } #define determined ==1 apprentice_input() { gas_line_clean determined; fuel_filter_clean determined; fuel_injectionOK determined; batteryOK determined; } 2lp_main() { knowledge_base(); driver_information(); apprentice_input(); and(int i=0;i