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