/p> 
} 
 } while (buf == false); 
  init_graph (); 
  grow (get_h ()); 
 } 
В· void work ()
 Функція здійснює роботу ліфта в залежності від глобальної налаштування і вхідних даних. Приклад реалізації функції наведено нижче: 
  void car_lift :: work () 
  {
  int first; 
  int last; 
  int sum = 0; 
  int i_number; 
  int j; 
  bool over_l = false; 
  grow (get_h ()); 
  do 
  {
  sum = 0; 
  if (get_wload () == 0)// вантажу в ліфті немає 
  {
  j = 0; 
  while ((cargo [j]. get_out () == false) && (j 
 first = cargo [j]. get_first (); 
  last = cargo [j]. get_last (); 
  entry (cargo [j]); 
 } 
  if (over_l == false) 
  {
  for (int i = 0; i 
 {
  if ((cargo [i]. get_out () == true) && (cargo [i]. get_first () == first)) 
  entry (cargo [i]); 
 } 
 } 
  if (last> first)// рух на підйом 
  {
  if (get_stop () == true) 
  {
  for (int i = 0; i 
 {
  if ((cargo [i]. get_in () == true) && (cargo [i]. get_last () 
 (cargo [i]. get_last ()> first)) 
  last = cargo [i]. get_last (); 
  if ((cargo [i]. get_out () == true) && (cargo [i]. get_first () 
 (cargo [i]. get_first ()> first)) 
  last = cargo [i]. get_first (); 
 } 
 } 
  if (get_wload ()> get_weight ())// перевірка на перевантаження 
  {
  overl (first); 
  over_l = true; 
 } 
  else 
  {
  first = up (first, last) ;//підйом 
  over_l = false; 
 } 
 } 
  else// рух на спуск 
  {
  if (get_stop () == true) 
  {
  for (int i = 0; i 
 {
				
				
				
				
			  if ((cargo [i]. get_in () == true) && ((cargo [i]. get_last ()> last) && 
  (cargo [i]. get_last () 
 last = cargo [i]. get_last (); 
  if ((cargo [i]. get_out () == true) && ((cargo [i]. get_first ()> last) && 
  (cargo [i]. get_first () 
 last = cargo [i]. get_first (); 
 } 
 } 
  if (get_wload ()> get_weight ())// перевірка на перевантаження 
  {
  overl (first); 
  over_l = true; 
 } 
  else 
  {
  first = down (first, last) ;//спуск 
  over_l = false; 
 } 
 } 
  for (int i = 0; i 
 {
  if ((cargo [i]. get_in () == true) && (cargo [i]. get_last () == first)) 
  {
  out (cargo [i]); 
 } 
 } 
  if (over_l == false) 
  {
  for (i = 0; i 
 {
  if ((cargo [i]. get_out () == true) && (cargo [i]. get_first () == first)) 
  {
  entry (cargo [i]); 
 } 
 } 
 } 
  j = 0; 
  while ((cargo [j]. get_in () == false) && (j 
 last = cargo [j]. get_last () ;//визначення наступного поверху, 
 // якщо в ліфті є вантаж 
  for (i = 0; i 
 if ((cargo [i]. get_out () == true) | | (cargo [i]. get_in () == true)) sum + +; 
  if ((get_wload () == 0) && (sum> 0))// визначення руху, 
 // якщо в ліфті немає вантажу 
  {
  j = 0; 
  while ((cargo [j]. get_out () == false) && (j 
 last = cargo [j]. get_first (); 
  if (last> first) up (first, last); 
  else down (first, last); 
 } 
 } while (sum> 0) ;//поки є виклики 
  delay (2000); 
  outtextxy (25,70, "Робота завершена! Натисніть 'Enter' "); 
 } 
  У даній реалізації функція визначає порядок обслуговування викликів в Залежно від глобальної налаштування ліфта і вхідних даних. Робота ліфта задається циклом з операціями в наступному порядку: 
  1. задається напрямок руху ліфта; 
  2. перевіряється наявність викликів на даному поверсі; 
  3. перевіряється, чи є вантаж, для якого цей поверх кінцевий; 
  4. перевіряється наявність викликів на проміжних поверхах; 
  5. перевіряється перевищення вантажопідйомності; 
  6. здійснюється рух. 
  Цикл виконується до тих пір, поки не будуть обслужені всі виклики. br/>
3.3 Інструкція програмісту
 
 При написанні класу В«вантажний ліфтВ» були використані наступні класи: 
  В· клас В«ВантажВ», що описує основні функції об'єкта В«вантаж для перевезенняВ». Цей клас використовується для створення масиву викликів для вантажного ліфта; 
  В· клас В«ЛіфтВ», що описує основну функціональність ліфта. Цей клас успадковується класом В«вантажний ліфтВ» з додаванням членів-даних і членів функцій. 
...