"Информатика", Поляков К.Ю., Еремин Е.А.
Линейная программа — это последовательность команд, которые выполняются одна за другой: сначала обычно вводят данные, затем считают и выводят результат. Такие программы помогают переводить формулы и простые алгоритмы на язык Python. Чтобы составить их правильно, нужно понимать, как команды ввода и вывода работают с переменными, как записывать выражения и в каком порядке выполняется присваивание. В линейной программе нет условий и повторений.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Линейная программа — программа, в которой команды выполняются последовательно, одна за другой, без ветвлений и циклов. Иными словами, компьютер не выбирает между разными путями и не повторяет команды: он просто переходит к следующей строке. Такой вид программы подходит для задач с заранее известным порядком действий.
Оператор присваивания — команда, которая вычисляет выражение и записывает полученное значение в переменную. Например, запись s = a * b означает, что Python сначала умножит значения a и b, а затем сохранит результат в s. Присваивание нужно, чтобы хранить исходные данные и промежуточные или итоговые результаты.
Команда ввода получает исходные данные от пользователя и сохраняет их в переменных. В Python часто используют запись a = float(input()), которая считывает число и преобразует его в вещественное значение. Ввод нужен, чтобы программа могла работать с данными, которые заранее неизвестны.
Команда вывода отображает на экране значения переменных и результаты вычислений. В Python для этого применяют, например, print(s). Благодаря выводу пользователь видит, что рассчитала программа, а не только вводит данные.
В линейной программе порядок команд совпадает с порядком их выполнения, потому что в ней нет условий или циклов, которые могли бы перенаправить работу программы. После первой команды Python переходит ко второй, затем к третьей и так далее. Поэтому при составлении программы нужно расположить действия так, чтобы каждое следующее использовало уже подготовленные данные.
Исходные данные вводят и сохраняют в переменных, чтобы обращаться к ним в последующих вычислениях. Например, после команды a = float(input()) значение, введённое пользователем, можно использовать в формулах с a. Если данные нужны в нескольких вычислениях, переменная позволяет не вводить их заново и делает запись программы понятнее.
Арифметическое выражение составляют из чисел, переменных и знаков операций, переводя в такую запись формулу задачи. Python соблюдает приоритет операций: сначала выполняет действия с более высоким приоритетом, например степень и умножение, а затем сложение. Если формула требует другого порядка, его задают скобками, иначе программа может получить не тот результат.
При присваивании сначала вычисляется вся правая часть, и только потом результат записывается в переменную слева. Так, в записи x = x + 1 правая x означает прежнее значение переменной, к которому прибавляется единица. Затем новое значение сохраняется под именем x; знак = здесь не утверждает, что две части равны.
Последовательность ввода, вычислений и вывода определяют по условию задачи: сначала выясняют, какие данные известны, затем — что требуется найти. Ввод ставят до первого использования исходных данных, вычисления — после ввода нужных значений, а вывод — после получения результата. Если требуется несколько результатов, их можно вычислить по очереди и вывести одной или несколькими командами.
В таблице показано, какие действия обычно нужны в линейной программе и как записать их на Python. Проследи, чтобы ввод предшествовал вычислениям, а вывод — вычислению результата. Названия переменных в примерах условны: их выбирают так, чтобы было понятно, какие значения они хранят.
| Элемент программы | Назначение | Пример записи на Python | Что происходит |
|---|---|---|---|
| Ввод данных | Получить исходное число | a = float(input()) | Введённое значение сохраняется в переменной a |
| Присваивание значения переменной | Сохранить значение | a = 5 | В переменной a появляется число 5 |
| Вычисление арифметического выражения | Получить результат по формуле | s = a * b | Значения a и b перемножаются, результат сохраняется в s |
| Вывод результата | Показать значение | print(s) | Значение переменной s отображается на экране |
| Последовательность выполнения команд | Задать порядок действий | a = float(input()) b = a * 2 print(b) | Сначала вводится a, затем вычисляется b, после этого выводится b |
Условие: по заданным длине a и ширине b найти периметр P и площадь S прямоугольника. Сначала нужны обе стороны, поэтому вводим их по очереди. Затем используем формулы P = 2 · (a + b) и S = a · b, а полученные значения выводим.
Ответ: программа выводит периметр и площадь прямоугольника для введённых длины и ширины.
Условие не задаёт конкретную формулу, поэтому разберём пример: вычислим y = (x + 2)² / 3 − x. Сначала вводим x, затем записываем выражение средствами Python. Степень обозначается **, а скобки сохраняют порядок действий из формулы.
Ответ: программа показывает значение выбранного выражения для введённого x. Если в условии дана другая формула, нужно заменить только выражение справа от y =, сохранив её математический порядок.
Условие: по двум катетам a и b прямоугольного треугольника найти гипотенузу c и площадь S. По теореме Пифагора c = √(a² + b²), а площадь равна половине произведения катетов. Сначала вводим оба катета, после чего вычисляем результаты и выводим их.
Ответ: программа выводит длину гипотенузы и площадь треугольника. Разделение вычислений на команды помогает проверить, что в корень попали квадраты обоих катетов, а площадь найдена отдельно.
Использовать переменную до присваивания ей значения — ошибка, потому что Python не знает, какое число подставить. Часто забывают, что переменную нужно сначала ввести или вычислить. Проверь строки сверху вниз: до первого обращения к имени должна встретиться команда, которая задаёт ему значение.
Математическое равенство пытаются записать как будто знак = проверяет одинаковость частей. В Python это оператор присваивания, поэтому результат вычисления направляют в переменную, например s = a * b. Чтобы проверить запись, найди слева имя переменной, в которую должен сохраниться результат.
Ошибки в записи операций возникают, когда вместо * используют другой знак, пропускают умножение или неверно ставят скобки. Такие записи могут привести к ошибке Python или к вычислению не той формулы. Сверь символы со способом записи в языке: умножение — *, степень — **, а порядок действий при необходимости задают скобками.
Если результат выводится до вычисления, программа не успевает его получить. Эту ошибку допускают, когда команды расположены не по шагам решения. Проверь порядок: сначала ввод данных, затем все вычисления, использующие эти данные, и только потом вывод готового значения.
Для работы с линейными программами нужны понятия алгоритма, исполнителя, команды, переменной и арифметического выражения: они объясняют, что выполняет компьютер и как хранить данные. Тема связана с математикой, потому что формулы, единицы измерения и порядок вычислений нужно переводить в запись Python. Линейные фрагменты встречаются и в программах с условиями и циклами: они составляют основу более сложных алгоритмов.
Чем линейная программа отличается от других видов программ?
В линейной программе команды выполняются по порядку, без выбора между разными действиями и без повторения команд. В программах с условиями или циклами ход выполнения может изменяться.
Почему команда присваивания записывается со знаком «=»?
В Python знак = означает, что значение выражения справа нужно вычислить и сохранить в переменной слева. Это не равенство из математики: значения двух частей не сравниваются.
Можно ли использовать переменную справа от присваивания?
Да, если переменной уже присвоено значение. Python подставит его в выражение справа, вычислит результат и сохранит результат в переменную слева.
Зачем нужны скобки в арифметическом выражении?
Скобки задают, какие действия нужно выполнить раньше остальных. Они помогают записать формулу так, чтобы порядок вычислений в программе совпал с порядком, заданным математикой.
Почему программа выдаёт ошибку, если переменная не была введена или вычислена?
До присваивания у переменной нет значения, которое Python мог бы подставить в выражение. Сначала нужно ввести значение или вычислить его, а уже потом использовать переменную.
§ 18. Линейные программы