Тема 0.1. Повторение
1. Операции целочисленного деления и остатка
Ознакомьтесь с материалом по ссылке . Выполните задания, называя файлы так, как они звучит в начале каждого задания. В начале каждого задания размещайте комментарий с постановкой задачи.
[
task-01.pas
] Дано двузначное целое число. Вывести сумму и произведение его цифр. Проверьте правильность вашей программы, приведите лог работы в форме комментария.Пример
35 >>> 8, 15 90 >>> 9, 0 -11 >>> 2, 1 (!) сумма и произведение цифр положительны
Замечание 1. Каждая цифра числа понадобится дважды: при участии в вычислении суммы — в первый раз, и произведения — во второй. Рекомендуется использовать для цифр вспомогательные переменные.
[
task-02.pas
] Дано трёхзначное целое число. Вывести все его цифры (порядок не имеет значения). Проверьте правильность вашей программы, приведите лог работы в форме комментария.Пример
-105 >>> 5, 0, 1 или -105 >>> 1, 0, 5
[
task-03.pas
] Дано двузначное целое число. Поменяйте в нем местами разряды десяток и единиц. Проверьте правильность вашей программы, приведите лог работы в форме комментария.Пример
35 >>> 53 -10 >>> -1
[
task-04.pas
] Дано трёхзначное целое число. Выполните в нем циклический сдвиг разрядов влево (разряд единиц становится разрядом десятков, разряд десятков — разрядом сотен, а разряд сотен — разрядом единиц). Пример[
task-05.pas
] Дано трёхзначное целое число. Сформировать новое число, каждый разряд которого меньше на единицу. Если разряд данного числа равен 0, то он должен стать равным 9 (использовать условный оператор запрещено).Пример
267 >>> 156 601 >>> 590 111 >>> 0 -150 >>> -49
123 >>> 231
-602 >>> -26
2. Условный оператор
Логические выражения часто применяют внутри условного оператора, который контролирует выполнение определённых действий в зависимости от истинности выражения:
if <логическое выражение> then
<действие> // выполнится, если <условное выражение> даёт True
Обратите внимание на дополнительный отступ внутри условного оператора.
Может потребоваться выполнение одних действий в случае истинности выражения и других — в противном случае («иначе»):
if <логическое выражение> then
<действие-1>
else
<действие-2>
В качестве действий может выступать один оператор (например, writeln('Hello!')
), либо блочный оператор begin..end
, в который можно поместить несколько операторов.
Самые частые ошибки
Не следует ставить точку с запятой перед
else
.Не следует забывать о
begin..end
в случае нескольких операторов послеthen
илиelse
.
Задачи
[Файл
task-01-if.pas
] Даны целые числа a, b, c. Вывести значениеTrue
, если существует треугольник с соответствующими длинами сторон, иFalse
в противном случае. Если треугольник существует, вывести его площадь.[Файл
extra-task-01-if.pas
] Даны целочисленные координаты точки на плоскости. Если точка совпадает с началом координат, то вывести 0. Если точка не совпадает с началом координат, но лежит на оси OX или OY, то вывести соответственно 10 или -10. Если точка не лежит на координатных осях, вывести 11.Указание. Реализуйте программу так, чтобы для вывода числа, описывающего положение точки на координатной плоскости, оператор вывода использовался только один раз.
Указание. Вспомните «неравенство треугольника». Для вычисления площади воспользуйтесь формулой Герона (p означает полупериметр):
[extra-task-02-if.pas
] Даны координаты поля шахматной доски X, Y (целые числа, лежащие в диапазоне 1–8). Учитывая, что левое нижнее поле доски (1, 1) является черным, вывести значение True
, если данное поле является белым, и False
в противном случае.
[extra-task-01-b.pas
] Дано трехзначное целое число a. Выведите True
, если существует перестановка цифр, при которой число делится на 10, и False
в противном случае.
Замечание. В решении разрешается использовать не более трёх операторов div
и mod
(в сумме). Примеры:
602 >>> True [620, 260]
311 >>> False
-100 >>> True [-100, -10]