Задание №16.
Знание основных конструкций языка программирования, понятия переменной, оператора присваивания. Уровень сложности задания - базовый, максимальный балл за выполнение - 1, примерное время выполнения задания - 4 минуты.
Знать: основные конструкции языка программирования.
Уметь: читать и отлаживать программы на языке программирования.
Пример задания.
Определите, при каком наименьшем введённом значении переменной d программа выведет число 67 (пример взят с сайта К.Ю. Полякова http://kpolyakov.spb.ru).
Программа представлена только на языке программирования Pascal.
var n, s, d: integer;
begin
readln(d);
n := 2;
s := 0;
while s <= 365 do begin
s := s + d;
n := n + 5
end;
writeln(n)
end.
Решение. По-сути, можно программу набрать в компиляторе, так как экзамен выполняется на компьютере, и самым простым перебором, вводя по очереди значения переменной d начиная с единицы, найти искомое. Конечно мы так не будем делать, а всё заставим выполнить наш компилятор, добавив в код циклический алгоритм.
- Добавим ещё одну переменную i для счетчика.
- Заключим всю программу в цикл, для этого после первой операторной скобки begin добавляем строку
for i:=1 to 100 do (параметры счетчика цикла будут зависеть от конкретной задачи) и открываем операторные скобки
begin - Строку readln(d); заменим на d:=i; это для того, чтобы не вводить вручную значения переменной d
- Предпоследнюю строку write(n) заменим на
writeln(d,' ',n); (будем в каждой строке выводить значение переменной d и через пробел значение переменной n)и закроем операторные скобки
end; - Запускаем программу, находим нужное значение переменной n (в данном случае 67), а рядом видим значение переменной d, что и является ответом к заданию (в нашем случае это 29).
Исходный код программы:
var n, s, d, i: integer;
begin
for i:=1 to 100 do
begin
d:=i;
n := 2;
s := 0;
while s <= 365 do begin
s := s + d;
n := n + 5;
end;
writeln(d,' ',n);
end;
end.
Ответ: 29.