На Горох
Информатика, 10 класс

§ 55. Простейшие программы

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 55. Простейшие программы

Кратко о теме

Простейшая программа на Паскале — это последовательность команд, которая получает данные, выполняет вычисления и показывает результат. Такие линейные программы нужны для автоматизации действий, выполняемых в определённом порядке: например, для расчёта площади или перевода минут в часы. Чтобы программа работала правильно, переменные объявляют заранее, значения вводят с помощью readln, а вычисления записывают оператором присваивания. Результат выводят командами write или writeln.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Линейная программа — программа, в которой команды выполняются последовательно, одна за другой, без ветвлений и циклов. Компьютер выполняет каждую команду, затем переходит к следующей. Такая структура подходит для задач, где порядок действий заранее известен.

Оператор присваивания — команда вида x := выражение, которая вычисляет выражение и записывает результат в переменную. Слева от := указывают имя переменной, справа — то, что нужно вычислить. Этот оператор позволяет сохранять результаты промежуточных и итоговых вычислений.

Оператор ввода — команда read или readln, передающая программе значения, введённые пользователем. В скобках указывают переменные, в которые попадут эти значения. Ввод нужен, чтобы программа могла работать с данными, заранее неизвестными автору.

Оператор вывода — команда write или writeln, отображающая на экране текст и значения переменных. В скобках перечисляют, что именно нужно показать; текст заключают в кавычки, а имя переменной пишут без них. Вывод сообщает пользователю результат работы программы.

Как это устроено

У простейшей программы на Паскале есть заголовок, раздел описаний, блок операторов и завершающая точка. Заголовок с ключевым словом program задаёт имя программы, а в разделе описаний перечисляют переменные и их типы. Команды помещают между begin и end, чтобы компилятор видел границы блока; точка после end завершает всю программу.

Переменную объявляют заранее, потому что компилятору нужно знать, какие данные в ней будут храниться и сколько места для них требуется. Например, integer используют для целых чисел, real — для чисел с дробной частью. Тип ограничивает допустимые операции: деление вещественных чисел может дать дробный результат, а целочисленные операции div и mod дают частное без остатка и остаток.

В операторе присваивания действия идут в определённом направлении: сначала полностью вычисляется выражение справа от :=, а затем результат записывается в переменную слева. Поэтому в записи x := x + 1 правая часть использует прежнее значение x, а после вычисления переменная получает новое. Левая часть должна быть переменной подходящего типа, иначе результат нельзя корректно сохранить.

Обмен данными с пользователем обычно начинается с readln: программа получает введённые значения и помещает их в указанные переменные. После вычислений write или writeln показывают результат; writeln дополнительно переводит курсор на следующую строку. Внутри одной команды можно сочетать текст и переменные, например writeln('Ответ: ', y), чтобы результат было проще прочитать.

Арифметические выражения вычисляются с учётом приоритета: сначала выполняют действия в скобках, затем умножение и деление, после этого сложение и вычитание. Если приоритет одинаковый, действия обычно выполняют слева направо. Скобки нужны, когда требуется явно сгруппировать части формулы: например, (a + b) * 2 удваивает сумму, а не только b.

Основные конструкции простейшей программы на Паскале

В таблице собраны элементы, из которых складывается простая программа, и их назначение. Синтаксис показывает, как записывают конструкцию, а пример помогает увидеть её в контексте. Сверяйтесь с таблицей, когда составляете программу или ищете ошибку в её записи.

КонструкцияСинтаксисНазначениеПример
Заголовок программыprogram Имя;Задаёт имя программы.program Calc;
Раздел описания переменныхvar имя: тип;Объявляет переменные и их типы.var a: real;
Оператор присваиванияпеременная := выражение;Вычисляет значение и сохраняет его.y := 3 * a + 5;
Оператор вводаreadln(переменные);Считывает данные пользователя.readln(a);
Оператор выводаwriteln(значения);Выводит текст и результаты.writeln('Ответ: ', y);
Блок операторовbegin операторы end.Объединяет команды программы.begin y := a; end.

В реальной программе конструкции соединяются в заданном порядке: описания идут до begin, а команды — внутри блока. Точка с запятой отделяет операторы друг от друга; после end всей программы ставят точку. Имена переменных и типы в примерах заменяют теми, которые подходят конкретной задаче.

Разбор задач

Задача 1. Составить программу, вычисляющую значение выражения 3 * a + 5 при заданном значении a. Нужно получить a от пользователя, сохранить вычисленный результат и показать его. Поскольку a может быть дробным, для входной и выходной переменных выберем тип real.

  1. Объявим переменные a и y типа real, чтобы программа могла хранить дробные значения.
  2. Считаем a командой readln(a), затем выполним y := 3 * a + 5; умножение произойдёт раньше сложения.
  3. Выведем результат командой writeln('Результат: ', y); программа состоит из заголовка, описания, блока begin ... end.

Ответ: программа вычислит выражение для введённого значения a. Например, при a = 2 получится y = 11. Проверка подстановкой помогает убедиться, что формула и порядок действий записаны верно.

Задача 2. По длине и ширине прямоугольника вычислить периметр и площадь. Обозначим стороны переменными a и b, а результаты — p и s. Для сторон и результатов возьмём тип real, чтобы допускать не только целые размеры.

  1. Объявим a, b, p и s как real и введём стороны командой readln(a, b).
  2. Рассчитаем периметр: p := 2 * (a + b); скобки нужны, чтобы сначала сложить длину и ширину.
  3. Рассчитаем площадь: s := a * b; затем выведем оба результата через writeln.

Ответ: программа выдаёт периметр и площадь прямоугольника с введёнными сторонами. Например, при a = 4 и b = 3 получатся p = 14 и s = 12. Если убрать скобки в формуле периметра и записать 2 * a + b, результат будет неверным.

Задача 3. По количеству минут определить число полных часов и оставшихся минут. Пусть n — общее число минут, h — часы, m — остаток минут. Здесь нужны целые числа, потому что количество полных часов и остаток считаются в целых минутах.

  1. Объявим n, h и m как integer и введём общее количество минут командой readln(n).
  2. Вычислим h := n div 60; операция div отбрасывает дробную часть частного и оставляет число полных часов.
  3. Вычислим m := n mod 60; операция mod находит остаток, а затем выведем h и m.

Ответ: при n = 135 программа получит h = 2 и m = 15, то есть 2 полных часа и 15 минут. Проверка проста: 2 * 60 + 15 = 135. Если использовать обычное деление вместо div, результат для числа часов может оказаться дробным.

Типичные ошибки

Знак = используют вместо :=, смешивая математическое равенство с командой записи значения. В Паскале присваивание выполняет действие, поэтому требуется двоеточие перед знаком равенства. Проверьте себя: если слева стоит переменная, которой задают результат вычисления, пишите :=.

Иногда значение присваивают необъявленной переменной или переменной неподходящего типа. Это происходит, когда забывают раздел var или не учитывают, что выражение может дать дробный результат. Перед запуском сверьте каждое имя с разделом объявлений и проверьте совместимость типов.

Пропущенные скобки и неверная оценка приоритета операций меняют смысл формулы. Например, 2 * a + b не то же самое, что 2 * (a + b), хотя обе записи содержат те же переменные и знаки. Сравните программу с математической формулой и поставьте скобки вокруг тех частей, которые должны вычисляться вместе.

Переменную иногда берут в кавычки или забывают указать в readln. В кавычках имя становится обычным текстом, поэтому writeln('a') напечатает букву a, а не значение переменной. Проверьте команды ввода и вывода: переменные пишут без кавычек, а при вводе обязательно перечисляют имена переменных, которые должны получить данные.

Связь с другими темами

Для составления линейной программы нужны понятия алгоритма и команды, умение работать с переменными и типами данных, а также правила записи арифметических выражений. Эти знания помогают перевести условие задачи в последовательность действий и записать её на языке программирования. Линейные фрагменты входят и в более сложные алгоритмы: при ветвлениях и циклах внутри каждого блока также выполняются последовательности команд. Освоив ввод, вычисления и вывод, легче переходить к программам с ветвлениями, циклами, процедурами и функциями.

Что запомнить

  • Линейная программа выполняет команды последовательно.
  • Каждая переменная должна быть объявлена до её использования.
  • В Паскале присваивание обозначается символами :=.
  • Правая часть присваивания вычисляется до записи значения в левую часть.
  • readln используется для ввода, writeln — для вывода с переходом на новую строку.
  • Точка завершает программу, а точка с запятой разделяет операторы.
  • Порядок вычислений определяется приоритетом операций и скобками.

Частые вопросы по теме

Чем оператор присваивания отличается от обычного равенства?

Знак = утверждает, что две величины равны, а := записывает вычисленное значение в переменную. Например, x := x + 1 означает, что к прежнему значению x прибавляют 1 и сохраняют результат в x.

Почему переменную нужно объявлять до начала выполнения программы?

Объявление сообщает компилятору имя переменной и тип данных, который она может хранить. Без этого компилятор не сможет проверить допустимость операций и выделить место для значения.

Когда использовать read, а когда readln?

Обе команды вводят значения, но readln после чтения переводит ввод на следующую строку. Для простых программ обычно удобно использовать readln, а read — когда нужно читать несколько данных из одной строки или продолжать чтение с неё.

Зачем нужны begin и end?

Они обозначают начало и конец блока операторов, то есть последовательности команд программы. Если в блоке несколько действий, begin и end позволяют воспринимать их как единое целое.

Почему программа выдаёт ошибку при вычислении, хотя формула записана правильно?

Причина может быть в типах переменных, пропущенной точке с запятой или неверном синтаксисе Паскаля. Проверьте также, что переменные объявлены, знак присваивания записан как :=, а порядок действий соответствует скобкам и приоритетам операций.

Спросить по теме параграфа

§ 55. Простейшие программы

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.