Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети


Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal»


Download 1.52 Mb.
Pdf ko'rish
bet58/77
Sana03.02.2023
Hajmi1.52 Mb.
#1152062
TuriРешение
1   ...   54   55   56   57   58   59   60   61   ...   77
Bog'liq
Задачи на Pascal

Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 
53 
программой ответ «нет». Мы возьмем это на заметку и попытаемся сделать контроль исключений, 
когда уже будет готово решение задачи для общего случая, чтобы заранее не наделать ошибок. Это 
необходимо потому, что мы попробуем инициализировать значения переменных при запуске про-
граммы таким образом, чтобы обработку вырожденных случаев можно было выполнить с мини-
мальным вложением дополнительного кода – мы уже делали это в 
задаче 32
Теперь о переменных. Так как нам необходимо проверять выполнение критерия на двойках 
(парах) элементов, то и хранить в памяти нужно сразу два элемента (a и b). Первый элемент не имеет 
предшественника, поэтому после ввода мы не обрабатываем его и можем вводить следующий эле-
мент в одном операторе с ним: 
read(a, b); 
Имея два элемента, мы уже можем выполнить проверку нашего свойства. Однако уже на этом 
этапе мы можем догадаться, что в силу необходимости выполнить проверку для всех пар элементов 
последовательности следует сразу поместить ее в цикл. Мы будем считывать каждый очередной 
член последовательности в переменную b, и так как последнее вводимое число по условию – 0, то 
предусловием цикла будет b < > 0 (так как при b = 0 цикл должен прекратиться): 
while b <> 0 do begin 
... 
a := b; 
read(b) 
end; 
На месте троеточия будет располагаться код проверки каждой пары, полностью охватываю-
щий определение нашего свойства. 
Примечание: в «шаблоне» основного цикла мы выделили также 
оператор a := b, который обеспечивает движение по каждым двум соседним элементам последова-
тельности. Следует обратить внимание на то, что мы должны проверять выполнение нашего свой-
ства для 1-го и 2-го, 2-го и 3-го, 3-го и 4-го и т. д. элементов последовательности. 
Когда мы уже выполнили проверку для двух элементов, например, для 1-го (который хранится 
в переменной a) и 2-го (который хранится в переменной b), то далее мы присваиваем переменной a 
значение переменной b (в которой у нас хранился 2-ой элемент), затем считываем в b 3-й элемент, 
чтобы проверить свойство для 2-го и 3-го элементов и т. п. 
При этом нужно четко понимать, что мы не можем считывать в цикле сразу две переменные, 
так как при таком подходе проверка будет выполняться лишь для 1-го и 2-го, 3-го и 4-го и т. д. 
элементов, что неверно. 
Разберем саму проверку. Так как на каждом шаге цикла программе требуется выяснить, начи-
нается ли следующий член последовательности с десятичной цифры данного, то, имея данный член 
в переменной a и следующий член в b, мы должны сравнить последнюю цифру a (обозначим ее как 

Download 1.52 Mb.

Do'stlaringiz bilan baham:
1   ...   54   55   56   57   58   59   60   61   ...   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling