1.Открыть правой рукой хлебницу; __2.Взять булку хлеба правой рукой; __3.Положить хлеб на разделочную доску; (предположим, что доска уже лежала на столе) __4.Открыть правой рукой верхний ящик стола; __5.Найти блестящий нож, длиной 20 см, с черной ручкой; __6.Взять нож в правую руку; __7.Поднести нож к хлебу; __8.Зафиксировать хлеб левой рукой, взявшись за левый край булки; __9.Расположить нож строго над правым ребром булки хлеба; __10.Повторять следующие действия 5 раз: 10.1.Отступить влево на сантиметр; 10.2.Повторять следующие действия, пока лезвие ножа не не коснется доски: 10.2.1.Прижать нож к хлебу; 10.2.2.Совершить ножом возвратно поступательное движение вперед-назад; 10.3.Поднять нож вверх; __11.Положить нож в ящик; __12.Отпустить левой рукой хлеб.
Объяснение:
Запускаем программу и смотрим, как она работает: Ой... вместе с пятым куском и палец отрезал... чёрт! остановить программу! Я же не написал как именно нужно зафиксировать хлеб левой рукой, схватился как попало и большой палец торчал в сторону... Возвращаемся к строчке "Зафиксировать хлеб левой рукой, взявшись за левый край булки;" После нее пишем: "Поджать большой палец левой руки влево, к ладони;" Запускаем программу Ой... на строчке "Положить нож в ящик;" нож упал на пол... Проклятье! оказывается, стол стоит немного под наклоном и ящик сам закрылся... Возвращаемся к коду и перед строчкой "Положить нож в ящик;" пишем "Открыть правой рукой верхний ящик стола;" Заметили ошибку? Нет?! Как мы можем открыть ящик правой рукой, если в этой руке нож? Значит, сначала нужно положить нож на стол, потом открыть ящик, снова взять нож и т.д. И делаем мы это до тех пор, пока хлеб не будет нарезан как следует, без повреждения мебели и пальцев. Вот, примерно так происходит отладка С опытом начинаешь писать программы, которые работают с первого раза, допуская минимум ошибок, а проверка "открыт ли ящик", перед складыванием в него чего-то, входит в привычку. Когда какие-то операции совершаются постоянно, такие как нарезка хлеба, мойка посуды и т.д., то программисты их описывают в виде процедур. Процедура - набор определенных действий, спрятанный под одной командой. Таким образом, текст программы, который я приводил выше, можно поместить в процедуру под названием НарезатьХлеба(параметр), где в качестве параметра будем указывать количество кусков
USES CRT;
VAR m1,m2,n,n1,n2,n3,n4,n5,n6,s1,s2:LongInt;
BEGIN
ClrScr;
ReadLn(n);
m1:=n;
n1:=m1 div 100;
n2:=m1 mod 10;
n3:=(m1-n1*100-n2) div 10;
if n1=n2 then if n1=n3 then writeln('vse =');
if n1=n2 then writeln('1 i 3 =');
if n2=n3 then writeln('2 i 3 =');
if n1=n3 then writeln('1 i 2 =')
else writeln('<>');
END.
Проверяйте, что непонятно - спрашивайте.
Можно чуть поправить вывод, чтобы когда vse =, не вылезали 1 i 3, 1 i 2, 2 i 3.
Да и вообще writeln'ов можно наставить и переменные назвать покрасивше. но это уж вы сами, думаю, справитесь. В VAR у меня тоже есть лишние переменные, переделывал старый свой код наспех =)
Всего хорошего.