Задание 4. Оценивается в Составьте программу, которая запрашивает у пользователя имя, возраст, номер телефона. Ввод данных должен быть с клавиатуры. Результатом программы должны выйти 3 строки. («Имя», «Возраст», «Номер телефона»).
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. 32
a = 26
b = 6
b = a / b + b = 26 / 6 + 6 = (4*6+2) / 6 + 6 = 4 + 6 = 10
c = a % b + a = 26 % 10 + 26 = (2 * 10 + 6) % 10 + 26 = 6 + 26 = 32
2. 9
a = 24
b = 5
c = a % b + b = 24 % 5 + 5 = (4 * 5 + 4) % 5 + 5 = 4 + 5 = 9
3. 32
a = 28
b = 7
c = a / b + a = 28 / 7 + 28 = 4 + 28 = 32
4. 6
a = 24
b = 5
b = a / b = 24 / 5 = (4 * 5 + 4) / 5 = 4
c = a / b = 24 / 4 = 6
5. 5
a = 22
b = 4
b = a % b + 4 = 22 % 4 + 4 = (5 * 4 + 2) % 4 + 4 = 2 + 4 = 6
C = a % b + 1 = 22 % 6 + 1 = (3 * 6 + 4 ) + 1 = 4 + 1 = 5
6. 3
a = 28
b = 7
b = a / b = 28 / 7 = 4
c = a % (b + 1) = 28 % (4 + 1) = 28 % 5 = (5*5 + 3) % 5 = 3
7. 7
a = 26
b = 6
b = a % b = 26 % 6 = (4 * 6 + 2) % 6 = 2
c = a / (b + 1) = 26 / (2 + 1) = 26 / 3 = (7*3 + 5) / 3 = 7
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)
В программах на других языках ошибочные строки и их исправления аналогичны.
Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.