1. При вводе числа 15 программа выведет число 4.
2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.
3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):
DIM A,S,K AS INTEGER
INPUT A
S = 0
K = −1
WHILE S <= A
K = K + 2
S = S + K*(K+1)
WEND
PRINT K
END
Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:
Первая ошибка:
k := k+1;
Исправленная строка:
k := k+2
Вторая ошибка:
writeln(k)
Исправленная строка:
writeln(k-2)
В программах на других языках ошибочные строки и их исправления аналогичны.
Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.
1.
использовать Чертежник
алг
нач
опустить перо
сместиться в точку (0,6)
сместиться в точку (6,6)
сместиться в точку (6,0)
сместиться в точку (0,0)
поднять перо
кон
2.
использовать Чертежник
алг
нач
сместиться в точку (-7,0)
опустить перо
сместиться на вектор (2,5)
поднять перо
сместиться на вектор (2,-5)
опустить перо
сместиться на вектор (2,5)
поднять перо
сместиться в точку (2,0)
опустить перо
сместиться на вектор (2,5)
поднять перо
сместиться на вектор (2,-5)
опустить перо
сместиться на вектор (2,5)
поднять перо
кон
Объяснение:
скрины
Задание 1:
### (1..10).Sel(x → x*5).Pr
Задание 2:
### RAI(10).Wh(x → x>7).Sum.Pr