Задание №8659: Алгоритмы и программирование
Дано целое положительное число N , не превосходящее 1000. Нужно написать программу, которая определяет, является ли это число степенью числа 4: выводит на экран либо такое целое число K , что 4 K = N , либо сообщение «NO», если такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования. Программист написал программу неправильно. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования. Бейсик Python DIM N, K AS INTEGER INPUT N K = 0 WHILE K MOD 4 = 0 K = K + 1 N = N \ 4 WEND IF N <= 4 THEN PRINT K ELSE PRINT "NO" END IF END n = int(input()) k = 0 while k % 4 == 0: k = k + 1 n = n // 4 if n <= 4: print(k) else: print("NO") Алгоритмический язык Паскаль алг нач цел n , k ввод n k := 0 нц пока mod ( k , 4)=0 k := k + 1 n := div ( n , 4) кц если n <= 4 то вывод k иначе вывод " NO " все кон var n, k: integer; begin read(n); k := 0; while k mod 4 = 0 do begin k := k + 1; n := n div 4; end; if n <= 4 then writeln(k) else writeln('NO') end. С++ #include <iostream> using namespace std; int main() { int n, k; cin >> n; k = 0; while (k % 4 == 0) { k = k + 1; n = n / 4 ; } if (n <= 4 ) cout << k << endl ; else cout << "NO" << endl ; return 0; } Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 16. 2. Приведите пример числа, при вводе которого приведённая программа, несмотря на ошибки, выведет корректное существующее значение K . 3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки: 1) выпишите строку, в которой сделана ошибка; 2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки. Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
Что проверяет это задание
Задание относится к теме «Алгоритмы и программирование». Для решения понадобятся:
- формализация задачи
- построение алгоритма
- проверка граничных случаев
Источник: ФИПИ — открытый банк заданий
Качество материала
Показываем, из чего состоит страница и можно ли проверить материал по первоисточнику.
Происхождение задания
- Банк заданий
- ФИПИ — открытый банк заданий
- Организатор
- ФИПИ
- Материалы
- 0 файла
Связанные понятия
План самостоятельного решения
- Перепишите известные данные и отдельно сформулируйте, что требуется найти или доказать.
- Свяжите условие с темой «Алгоритмы и программирование» и выберите подходящее правило, формулу или способ рассуждения.
- Запишите промежуточные шаги: это помогает заметить потерянный знак, случай или логический переход.
- Сверьте результат со всеми ограничениями условия и только затем откройте подробный разбор.
Ориентировочное время: 25 минут.
Закрепить тему
После разбора попробуйте решить ещё десять заданий по предмету «Информатика». Вариант формируется заново, а ответы можно сразу проверить.
Решение по шагам
Самопроверка после решения
- Я использовал все данные из условия и не добавил неподтверждённых предположений.
- Каждый переход в рассуждении объяснён правилом, формулой или ранее доказанным фактом.
- Ответ соответствует вопросу, а обозначения и единицы измерения записаны однозначно.
- Я сравнил свой ход решения с разбором и понял причину каждого отличия.
Типичные ошибки
- Перепутать основание системы счисления.
- Не учесть границы диапазона.
- Проверить алгоритм только на одном примере.