У исполнителя Делитель две команды, которым присвоены номера: 1. Раздели на 2
2. Вытчи 1
Первая из них уменьшает число на экране в 2 раза, вторая уменьшает его на 1. Исполнитель работает только с натуральными числами.
Составте алгоритм получения из числа 72 числа 7, содержащий не более 5 команд. В ответе запишите только номера команд.
(например, 12112 - это алгоритм:
Раздели на 2
Вычти 1
Раздели на 2
Раздели на 2
Вычти 1,
Который преобразует число 42 в число 4).
1. 12112
2. 11122
3. 21212
4. 22211
1. Описываем нужные нам переменные - это будут стороны прямоугольника a и b. Поскольку нигде ничего о размерах сторон не сказано, придется предположить, что они не обязательно будут целыми , мы опишем эти переменные, как вещественные (real), что позволит работать и с нецелыми значениями.
2. Из геометрии нам известны формулы периметра прямоугольника P=2 x (a+b) и площади прямоугольника S=a x b. Можно описать переменные P, S (тоже real), но смысла в этом нет, поскольку значения P и S нужны только для вывода результатов, так что проще написать нужные выражения непосредственно в операторе вывода.
3. Итак, с описанием переменных закончили, можно начинать основную программу ключевым словом begin. И сразу же пишем к нему завершающий end с точкой на конце - таковы правила языка Паскаль. Вся программа размещается между двумя этими ключевыми словами.
4. Сначала организуем ввод. Это два оператора. Первый оператор выводит так называемое "приглашение" - сообщает о том, что нужно ввести. Второй оператор - это сам ввод.
5. А теперь, как было сказано выше, организуем вывод результатов. Все это сделает один оператор вывода. Программа готова!
var
a, b: real;
begin
Write('Введите стороны прямоугольника: '); Readln(a, b);
Writeln('Периметр равен ', 2 * (a + b), ', площадь равна ', a * b)
end.
Тестовое решение:
Введите стороны прямоугольника: 4 3.16
Периметр равен 14.32, площадь равна 12.64
var
f1, f2: Text;
n: integer;
begin
Assign(f1, 'input.txt'); Reset(f1);
Assign(f2, 'output.txt'); Rewrite(f2);
Readln(f1, n);
if n < 0 then Writeln(f2, abs(n))
else
if n = 0 then Writeln(f2, 0)
else Writeln(f2, sqr(n));
Close(f1); Close(f2)
end.
А это, если учесть, что модуль нуля равен нулю:
var
f1, f2: Text;
n: integer;
begin
Assign(f1, 'input.txt'); Reset(f1);
Assign(f2, 'output.txt'); Rewrite(f2);
Readln(f1, n);
if n <= 0 then Writeln(f2, abs(n))
else Writeln(f2, sqr(n));
Close(f1); Close(f2)
end.