Var i,n,s:byte; //Здесь мы описываем переменные i- флаг, n - наше число N, s- переменная "деления" label l1; // Здесь мы begin l1:i:=0; //Установка метки на начало программы и установка флага на первоначальное значение - НЕТ repeat //проверка N на подлинность if i=1 then write('Не верный ввод данных!Повторите ввод:') else write('Введите номер N:'); // Условие при котором в первый раз выводится предложение где нас просят ввести N, а если же мы её ввели не правильно выводится ошибка и опять нас просят ввести N так продолжается пока мы не введем правильный N readln(n); i:=1; // Установка флага - ДА untill (n>=1) and (n<100); // Ограничения N writeln('Ваше множество:');// Вывод множества; for i:=n to 99 do // из условия следует что числа будут в диапазоне от 1 до 99 т.к они натуральные и двухзначные begin s:=i mod 11; //Условие при котором Цифры повторяются т.е. делятся на 11 if (s<>0) then write(i,'; '); // Проверка условия выше; end; writeln; write('Повторить программу?(1-Да, 0-Нет)-');// Предложение о том сделать ли еще раз программу read(i); if (i=1) then goto L1; // опять же установка флага и переход к метке L1; если же условие не выполняется, то конец программы end.
1 0 0 начало 2 5 0 налить 5-ти литровое из родника 3 0 5 перелить из 5-ти в 9-ти л 4 5 5 налить в 5-ти из родника 5 1 9 из 5-ти долить 9-ти л 6 1 0 вылить воду из 9-ти л 7 0 1 из 5-ти л перелить в 9-ти 8 5 1 наполнить 5-ти л из родника 9 0 6 из 5-ти л перелить в 9-ти 10 5 6 наполнить 5-ти л из родника 11 2 9 из 5-тил долить 9-ти л 12 2 0 вылить из 9-ти л 13 0 2 из 5-ти л перелить в 9-ти л 14 5 2 налить из родника в 5-ти л 15 0 7 вылить из 5-ти л в 9-ти л 16 5 7 набрать из родника в 5-ти л 17 3 9 долить 9-ти л из 5-тил и в 5-ти л останутся заветные 3 литра 18 3 0 выливаем из 9-ти л 19 КОНЕЦ
i,n,s:byte; //Здесь мы описываем переменные i- флаг, n - наше число N, s- переменная "деления"
label l1; // Здесь мы
begin
l1:i:=0; //Установка метки на начало программы и установка флага на первоначальное значение - НЕТ
repeat //проверка N на подлинность
if i=1 then
write('Не верный ввод данных!Повторите ввод:')
else
write('Введите номер N:'); // Условие при котором в первый раз выводится предложение где нас просят ввести N, а если же мы её ввели не правильно выводится ошибка и опять нас просят ввести N так продолжается пока мы не введем правильный N
readln(n);
i:=1; // Установка флага - ДА
untill (n>=1) and (n<100); // Ограничения N
writeln('Ваше множество:');// Вывод множества;
for i:=n to 99 do // из условия следует что числа будут в диапазоне от 1 до 99 т.к они натуральные и двухзначные
begin
s:=i mod 11; //Условие при котором Цифры повторяются т.е. делятся на 11
if (s<>0) then write(i,'; '); // Проверка условия выше;
end;
writeln;
write('Повторить программу?(1-Да, 0-Нет)-');// Предложение о том сделать ли еще раз программу
read(i);
if (i=1) then goto L1; // опять же установка флага и переход к метке L1; если же условие не выполняется, то конец программы
end.
2 9-ти литровое
3 действие
№ | 1 | 2 | 3
1 0 0 начало
2 5 0 налить 5-ти литровое из родника
3 0 5 перелить из 5-ти в 9-ти л
4 5 5 налить в 5-ти из родника
5 1 9 из 5-ти долить 9-ти л
6 1 0 вылить воду из 9-ти л
7 0 1 из 5-ти л перелить в 9-ти
8 5 1 наполнить 5-ти л из родника
9 0 6 из 5-ти л перелить в 9-ти
10 5 6 наполнить 5-ти л из родника
11 2 9 из 5-тил долить 9-ти л
12 2 0 вылить из 9-ти л
13 0 2 из 5-ти л перелить в 9-ти л
14 5 2 налить из родника в 5-ти л
15 0 7 вылить из 5-ти л в 9-ти л
16 5 7 набрать из родника в 5-ти л
17 3 9 долить 9-ти л из 5-тил и
в 5-ти л останутся заветные 3 литра
18 3 0 выливаем из 9-ти л
19 КОНЕЦ