ки на его совпадение с номером сосуда, из которого наливают, и на наполнение сосуда, в который наливают. Если номер удовлетворяет этим условиям, то выполняется команда выхода из цикла, иначе выдается соответствующее замечание и звуковой сигнал, а через секунду вновь повторяется запрос.

DO 'ввод номера для наливания LOCATE 15, 2

LINE INPUT "В какой сосуда наливаем? "; МишЬег$ Scnd% = VAL(Nu-iber$) IF ABS(Scnd% - 2) < 2 THEN IF Frst% = Scnd% THEN

LOCATE 15, 2: PRINT "Наливайте в другой сосуд!"; SPC(20);

ВЕЕР: SLEEP I ELSE

IF Volume(Scnd%) < Capacity(Scnd%) THEN

EXIT DO ELSE

LOCATE 15, 2: PRINT "Этот сосуд полон!"; SPC(20);

ВЕЕР: SLEEP 1 END IF END IP END IF LOOP

После выбора пары сосудов вычисляется объем переливаемой воды. Для этого сравниваются объем воды, содержащейся в сосуде из которого выливают, и разность емкости и объема воды (то есть свободное место) сосуда, в который наливают. Объем переливаемой воды равен наименьшей из сравниваемых величин. После вычисления новых значений объемов производится их вывод на экран и стирание запросов о номерах сосудов.

Delta% = Capacity(Scnd%) - Volume(Send»)

'расчет нового состояния Мах% = Volume(Frst%) IF Max» < Delta% THEN Delta% = Мах% Volume(Scnd%) = Volume(Scnd%) + Delta% Volume(Frst%) = Volume(Frst%) - Delta% LOCATE 12, 18 + 5 * Frst%: PRINT Volume(Frst%) ;

'вывод нового состояния LOCATE 12, 18 + 5 * Scnd%: PRINT Volume(Scnd%);

LOCATE 14, 2: PRINT SPC(40); " ": PRINT SPC(40); " "

Наконец, проверяются объемы воды в первом и втором сосудах и при их равенстве 4 л выдается сообщение о выигрыше и выполняется команда выхода из цикла, в противном случае программа возвращается к началу цикла игры.

IF Volume(1) = 4 AND Volume(2) = 4 THEN

'проверка условия выигрыша LOCATE 17, 2

PRINT "Поздравляю! Вы выиграли!!!" EXIT DO END IF LOOP 'конец цикла игры

Разобравшись с логикой работы этой программы, вы можете перей-