"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.
Паскаль — язык программирования, на котором алгоритм записывают в виде команд, понятных компьютеру. Чтобы программа работала, нужно соблюдать точные правила языка: объявлять переменные, правильно записывать вычисления и ограничивать блок команд. Данные поступают через readln, результаты показываются с помощью writeln, а значения переменным присваиваются оператором :=. Эти основы помогут составлять простые программы и подготовят к изучению ветвлений и циклов.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Язык программирования Паскаль — формальный язык, на котором записывают алгоритмы в виде программ. Формальный означает, что запись подчиняется установленным правилам, а не только передаёт общий смысл. Паскаль позволяет описывать действия так, чтобы их мог выполнить компьютер. Поэтому при записи алгоритма нужно выбирать команды и обозначения, предусмотренные языком.
Программа на Паскале — последовательность описаний и команд, записанная по правилам языка для выполнения компьютером. Описания сообщают, например, какие переменные будут использоваться, а команды задают действия с данными. Программа нужна, чтобы превратить алгоритм в точную инструкцию для компьютера. Даже понятная человеку запись не сработает, если в ней нарушены правила Паскаля.
Оператор присваивания — команда вида «переменная := выражение», которая вычисляет выражение и записывает результат в переменную. Например, запись s := a + b; означает, что сумма значений a и b попадёт в s. Слева указывают место хранения, справа — то, что надо вычислить. Этот оператор нужен, чтобы программа сохраняла промежуточные и итоговые результаты.
Операторы ввода и вывода — команды readln для получения данных и writeln для вывода результатов. С помощью readln программа получает значения, введённые пользователем, а writeln показывает информацию на экране. Эти команды связывают программу с человеком, который задаёт исходные данные и узнаёт ответ. Без них программу пришлось бы менять при каждом новом наборе данных.
Компьютер не догадывается, что хотел сказать автор программы: он разбирает запись по правилам языка. Поэтому даже правильная идея должна быть выражена корректными командами и обозначениями. Например, пропущенная точка с запятой может помешать распознать границу команд. Проверка синтаксиса помогает найти такие ошибки до выполнения программы.
В простой программе сначала записывают заголовок program с именем программы, затем раздел var с описанием переменных, а после него — команды между begin и end. Такая последовательность нужна, чтобы программа получила сведения о данных до того, как начнёт их обрабатывать. begin открывает блок команд, end закрывает его, а точка после end завершает программу. Команды внутри блока обычно исполняются сверху вниз.
Переменным дают имена, чтобы можно было обращаться к данным по смыслу: например, a и b могут хранить стороны прямоугольника. Перед использованием имена объявляют после var, иначе программа не знает, что за данные с ними связаны. Имя обычно начинают с буквы, а дальше используют буквы и цифры; пробелы и знаки операций в него не включают. Понятные имена упрощают чтение и проверку программы.
При присваивании сначала вычисляют выражение справа от :=, а затем полученное значение записывают в переменную слева. Поэтому в a := a + 1 значение a увеличивается на единицу: правая часть берёт прежнее значение, а левая задаёт место для нового. Знак := не равен знаку =: первый обозначает действие записи, второй используют как обозначение равенства в математике. Такое различие помогает не путать вычисление с проверкой или утверждением о равенстве.
Работа с данными обычно проходит три этапа: readln получает исходные значения, команды выполняют вычисления, а writeln показывает результат. Сначала программа должна узнать числа, иначе вычислять будет не из чего. Затем она записывает найденное значение в переменную и передаёт его на вывод. Так один и тот же алгоритм можно запускать с разными входными данными.
| Элемент программы | Назначение | Пример записи |
|---|---|---|
| Заголовок программы | Обозначает начало и имя программы | program Sum; |
| Раздел описания переменных | Объявляет используемые переменные | var a, b, s: integer; |
| Начало блока команд | Открывает последовательность выполняемых команд | begin |
| Оператор ввода | Получает исходные данные | readln(a, b); |
| Оператор присваивания | Вычисляет выражение и сохраняет результат | s := a + b; |
| Оператор вывода | Показывает значение на экране | writeln(s); |
| Конец программы | Закрывает блок и завершает программу | end. |
Таблица показывает, какую роль играет каждая часть и как она может выглядеть в коде. Сверяясь с ней, проверьте, что описания стоят до begin, а команды находятся внутри блока. Примеры в последнем столбце можно соединить в простую программу, добавив заголовок и нужные объявления.
Задача 1. Составить программу, которая вводит два числа и выводит их сумму. Нужно сохранить каждое введённое число и отдельно подготовить переменную для результата. Сначала программа получает значения, затем складывает их и выводит сумму. Решение можно записать так:
Полная последовательность команд находится между begin и end, а программа заканчивается точкой. Выделение переменной s делает шаг вычисления явным: в ней хранится итог сложения. Ответ: программа вводит a и b и выводит значение a + b.
Задача 2. Составить программу, которая вводит длину и ширину прямоугольника и выводит его периметр. Периметр равен сумме длин всех сторон, то есть удвоенной сумме длины и ширины. Назовём стороны a и b, а результат — p; перед записью проверим, что формула использует обе стороны. Программа может быть такой:
Скобки нужны, чтобы сначала сложить стороны, а затем умножить сумму на два. Тип real выбран потому, что длина и ширина могут быть нецелыми числами. Ответ: программа выводит периметр p = 2 * (a + b).
Задача 3. Составить программу, которая вводит два числа и выводит значение выражения (a + b) / 2. Здесь требуется среднее арифметическое двух чисел, поэтому сначала складываем их, а потом делим сумму на два. Скобки сохраняют нужный порядок действий и делают формулу понятной. Запишем решение по шагам:
Переменная m хранит итог, чтобы его можно было передать оператору вывода. Вещественный тип подходит, поскольку результат деления может быть дробным. Ответ: программа выводит среднее арифметическое чисел a и b.
В операторе присваивания иногда пишут = вместо :=, потому что в математике знак равенства привычен и кажется подходящим. Но присваивание — это действие: вычислить правую часть и сохранить её слева; запись с = не заменяет эту команду. Проверьте каждую команду вычисления: перед выражением должен стоять знак :=. Не путайте его с равенством в формуле или условии.
Если переменную не объявить после var, программа может сослаться на имя, о котором ей ничего не известно. Такая ошибка возникает, когда сразу переходят к командам и забывают подготовить список данных. Сверьте все имена в readln, присваиваниях и writeln с разделом var. Каждое используемое имя должно быть объявлено заранее и написано одинаково.
Пропуск точки с запятой или её неверное расположение нарушает синтаксис и может привести к сообщению об ошибке. Точки с запятой ставят между командами и описаниями согласно правилам языка; если механически поставить её в любом месте, это тоже может быть неверно. Перечитайте программу, отделяя одну команду от следующей. Особое внимание уделите разделу var, блоку команд и последней команде перед end.
begin и end обозначают границы блока, поэтому их нельзя менять местами или оставлять блок незакрытым. Ошибка часто появляется, когда программу дописывают частями и теряют один из этих маркеров. Проверьте, что после begin идут команды, а после них стоит end с точкой в конце программы. У точки с запятой перед end и точки после end разные роли: первая разделяет команды, вторая завершает программу.
Для работы с Паскалем нужно уметь составлять алгоритмы, понимать, что такое переменная и какое значение она хранит. Эти знания помогают заранее определить входные данные, промежуточные вычисления и результат. Арифметические действия и порядок их выполнения нужны для записи выражений без ошибок. Освоенные здесь объявления и команды станут основой для изучения ветвлений, циклов и программной реализации алгоритмов.
Зачем в программе нужно объявлять переменные?
Объявление сообщает программе, какие данные будут храниться и как к ним обращаться. Если переменная не объявлена, компьютер не сможет надёжно связать её имя с нужным значением.
Чем оператор присваивания := отличается от знака равенства?
Оператор := вычисляет выражение справа и записывает результат в переменную слева. Знак = обозначает равенство, а не команду записи значения.
Для чего нужны команды readln и writeln?
readln получает данные, которые вводит пользователь, например числа. writeln выводит на экран значение или результат вычислений.
Почему в программе ставят точку с запятой?
Точка с запятой разделяет команды и элементы описания, помогая компьютеру распознать их границы. Её ставят там, где этого требует синтаксис Паскаля, а не автоматически после каждого слова.
Что обозначают слова begin и end?
begin отмечает начало блока команд программы, а end — его завершение. После end в простой программе ставят точку, которая завершает всю программу.
§ 11. Знакомство с языком Паскаль