"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", Н. П. Макарова А. И. Лапо Е. Н. Войтехович
Готовая программа помогает увидеть, как команды превращают исходные данные в результат. Чтобы использовать её или доработать, нужно выяснить, что она получает и что выводит, прочитать команды по порядку и проследить за переменными. Изменения вносят целенаправленно: сначала находят нужные команды, затем исправляют их и запускают программу с тестовыми данными. Такой порядок помогает понять чужой код, получить нужный результат и не потерять работающие части программы.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Готовая программа — уже составленная программа, которую можно изучить, запустить и при необходимости изменить. Она позволяет увидеть, как команды решают задачу, не начиная работу с пустого листа. При этом важно не только запустить её, но и понять, какие данные она использует и что делает.
Исходный текст программы — записанные на языке программирования команды, которые можно прочитать и редактировать. Это текст, по которому можно проследить порядок действий компьютера. Понимание исходного текста нужно, чтобы найти команды, отвечающие за нужный результат, и вносить правки осмысленно.
Изменение программы — целенаправленная правка команд или их данных для получения нужного результата. Например, можно заменить начальное значение переменной или изменить действие над введёнными данными. Перед правкой полезно понять, какая команда влияет на требуемую часть результата, иначе можно нарушить работу других частей программы.
Тестирование программы — проверка её работы на выбранных исходных данных. Исходные данные — значения, которые программа получает для обработки. Тестирование помогает выяснить, соответствует ли результат ожиданиям, а несколько разных наборов значений позволяют заметить ошибки, которые не проявляются при одной проверке.
Изучение программы начинают с выяснения её назначения: какие данные она получает и какой результат должна выдать. Это нужно, чтобы понимать, какой ответ считать правильным, а не просто наблюдать за запуском. Например, если программа должна вычислить сумму введённых чисел, результат можно проверить сравнением с ожидаемой суммой. Без понимания задачи даже успешно завершившийся запуск не доказывает, что программа работает верно.
Чтобы разобраться в ходе работы, команды читают по порядку, потому что выполнение одной команды может повлиять на следующую. При этом следят за значениями переменных — именованных мест, в которых программа хранит данные. Если переменной присвоили новое значение, дальше используется уже оно, а не прежнее. Запись изменений по шагам помогает понять, откуда взялся итоговый результат и где могла появиться ошибка.
Перед изменением программы сначала определяют, какая её часть отвечает за нужный результат. Это важно, потому что в готовом тексте могут быть команды для ввода, вычисления и вывода, и правка не той части не решит задачу. Сформулируй, что именно должно измениться: например, откуда брать число или какое действие с ним выполнять. Тогда можно внести только необходимую правку и уменьшить риск испортить уже работающие команды.
После правки программу запускают с подходящими данными и сравнивают полученный результат с ожидаемым. Сравнение показывает, выполнила ли программа задачу, а не только запустилась ли она без остановки. Для проверки выбирают данные, на которых результат можно предсказать или вычислить отдельно. Если получено не то, что ожидалось, полезно проследить выполнение команд и найти момент, когда значения стали отличаться.
Если программа работает неверно, проверяют внесённые изменения и исправляют ошибки, не меняя без необходимости остальные команды. Такой порядок помогает связать ошибку с конкретной правкой: если менять сразу много мест, становится непонятно, какое изменение повлияло на результат. После каждого исправления программу запускают снова. Так шаг за шагом можно добиться нужной работы, сохранив остальные части программы.
| Этап | Что сделать | На что обратить внимание |
|---|---|---|
| Определение назначения | Выяснить, какие данные программа получает и что должна вывести. | Какой результат ожидается и для какой задачи создана программа. |
| Чтение команд | Прочитать исходный текст сверху вниз. | В каком порядке выполняются команды и что делает каждая. |
| Прослеживание значений данных | Отмечать значения переменных после команд, которые их меняют. | Не перепутать прежнее и новое значение переменной. |
| Внесение изменения | Изменить только команды или данные, нужные для задачи. | Какая часть результата изменится и не затронуты ли лишние команды. |
| Запуск и проверка результата | Запустить программу на тестовых данных и сравнить ответ с ожидаемым. | Работает ли программа на нескольких наборах значений. |
Пользуйся таблицей как планом: переходи к следующему этапу, когда понял, что сделано на предыдущем. Во время чтения записывай изменения значений переменных, а после правки отдельно отмечай входные данные и полученный ответ. Такая последовательность облегчает поиск причины неверного результата.
Задача 1. Прочитай короткую программу и определи, какое сообщение она выводит. Исходный текст: a = 3; b = a + 2; print(b). Команда print выводит указанное значение на экран, а знак равенства здесь показывает присваивание значения переменной. Чтобы определить сообщение, нужно проследить выполнение команд именно в записанном порядке.
Ответ: программа выведет число 5. Если изменить порядок действий в рассуждении или забыть, что b получает результат вычисления, можно ошибиться. Поэтому сначала устанавливают значения переменных, а потом рассматривают команду вывода.
Задача 2. В готовой программе заменить исходное значение переменной и определить, как изменится результат. Пусть программа выглядит так: x = 4; y = x * 2; print(y). Нужно заменить значение x на 7, не изменяя остальные команды. Здесь важно проследить, где используется x: она участвует в вычислении y, а затем выводится уже y.
Ответ: после изменения программа выведет 14 вместо 8. Результат изменился, потому что команда вычисления использует переменную x. Если переменную поменять, а затем ошибочно считать старое значение y, ход выполнения будет описан неверно.
Задача 3. Измени программу, чтобы она вычисляла результат для введённых пользователем данных, и проверь её на двух наборах значений. Пусть исходный вариант удваивает заранее заданное число: x = 4; y = x * 2; print(y). Требуется получать x при запуске, а правило умножения на 2 сохранить. Проверка на разных значениях покажет, зависит ли результат от ввода.
Ответ: программа должна запрашивать число и выводить его удвоенное значение; для вводов 3 и 8 ответы — 6 и 16. Если вместо числа получается ошибка, проверь преобразование введённых данных в числовой тип. Если оба запуска дают неверные ответы, проверь команду ввода и вычисление, не меняя без причины вывод.
Запускать программу, не выяснив, какие данные она использует и что должна вывести, — значит не иметь критерия для оценки результата. Так поступают, когда считают сам факт запуска достаточной проверкой. Чтобы проверить себя, заранее назови входные данные и ожидаемый ответ, а затем сравни его с выводом программы. Если ожидание сформулировать невозможно, сначала нужно разобраться в назначении программы.
Менять сразу несколько несвязанных команд рискованно: при неверном результате трудно установить, какая правка его вызвала. Обычно так делают, пытаясь быстрее получить нужный ответ, но скорость мешает поиску причины ошибки. Вноси изменения по одному и запускай программу после каждого шага. Если результат испортился сразу после конкретной правки, проверь именно её.
Ещё одна ошибка — считать, что значение переменной остаётся прежним после команды присваивания. Это происходит, если ученик помнит начальное значение, но пропускает последующие команды, которые его заменяют. Проверяй себя, записывая значения переменных после каждого присваивания и перед выводом. Тогда станет видно, какое значение реально использует программа в конце.
Проверка только на одном наборе данных не гарантирует правильную работу во всех случаях. Некоторые ошибки проявляются лишь при других значениях, например когда число больше или меньше привычного. Используй несколько тестов, подбирая разные исходные данные и заранее определяя ожидаемые ответы. Если хотя бы один результат не совпал, проследи команды для этого конкретного примера и найди причину.
Чтобы разбирать готовую программу, нужно уметь читать алгоритмы и понимать порядок выполнения команд: программа действует по заданной последовательности. Также пригодятся знания о переменных, вводе и выводе данных, а ещё умение запускать программу в среде программирования. Эти навыки связывают запись команд с тем, что происходит при запуске. Они помогут при самостоятельном составлении программ, поиске ошибок и доработке проектов.
С чего начать изучение готовой программы?
Сначала выясни, для чего она предназначена: какие данные получает и какой результат должна выдать. Затем прочитай команды по порядку и посмотри, где используются переменные.
Как понять, что делает отдельная команда?
Определи, что команда получает и что с этими данными делает: вводит их, сохраняет, изменяет или выводит. Затем проверь, как её действие влияет на следующие команды.
Почему при изменении значения переменной меняется результат программы?
Команды могут использовать значение переменной в вычислениях или при выборе того, что вывести. Если начальное значение изменилось, вычисления выполняются с другими данными, поэтому результат тоже может стать другим.
Как проверить, что внесённая правка работает правильно?
Запусти программу на подходящих данных и сравни результат с тем, который ожидался. Проверь её также на другом наборе значений: так можно заметить ошибки, проявляющиеся не всегда.
Что делать, если после изменения программа выдаёт неверный результат?
Сравни результат с ожидаемым и проверь команды, которые ты менял, а также значения переменных после их выполнения. Исправляй ошибку небольшими шагами и не трогай команды, не связанные с задачей.
§ 19. Изучение и изменение готовых программ