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

§ 17. Оператор присваивания, ввод и вывод данных

"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.

Объяснение темы В оглавлении: § 17. Оператор присваивания, ввод и вывод данных

Кратко о теме

Чтобы программа могла решать задачу, ей нужно получить исходные данные, обработать их и показать результат. Для этого в Паскале используют операторы ввода и вывода, а новое значение переменной задают оператором присваивания :=. Эти команды работают вместе: пользователь вводит значения, программа вычисляет выражение и сохраняет результат, а затем выводит его на экран. Понимание порядка действий помогает правильно составлять даже простые программы.

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

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

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

Оператор присваивания — команда, которая задаёт переменной новое значение; в Паскале его обозначают :=. Например, запись x := 7 помещает число 7 в переменную x. Такой оператор нужен, чтобы сохранять результаты вычислений и менять данные по ходу работы программы.

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

Оператор вывода — команда для показа на экране значений и сообщений. Команды write и writeln могут выводить как имена переменных, так и текст в кавычках; например, writeln('Ответ: ', x). Они нужны, чтобы пользователь видел результат работы программы и понимал, что именно она делает.

Переменная — это именованная область памяти, значение которой может изменяться во время выполнения программы. Имя помогает обращаться к сохранённым данным: например, в a можно хранить введённое число, а в s — вычисленную сумму. Переменные позволяют использовать одни и те же данные в разных командах, не записывая их заново.

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

При выполнении присваивания программа сначала вычисляет всё выражение справа от :=, а затем записывает полученный результат в переменную слева. Например, если a равно 4, команда b := a + 3 сначала даёт результат 7 и только потом помещает его в b. Такой порядок позволяет использовать в выражениях уже сохранённые данные и получать новые значения.

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

Оператор ввода связывает программу с пользователем: при выполнении read или readln программа ждёт, пока будут введены данные. Затем значения помещаются в перечисленные переменные в том же порядке, в каком они записаны в скобках. Например, после read(a, b) первое введённое число попадёт в a, второе — в b, поэтому порядок важен для дальнейших вычислений.

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

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

Операторы присваивания, ввода и вывода в Паскале

ХарактеристикаПрисваиваниеВводВывод
Обозначение или команда:=read, readlnwrite, writeln
НазначениеЗаписать новое значение в переменнуюПолучить данные и записать их в переменныеПоказать значения или текстовые сообщения
Что указывают в скобкахСкобки не обязательны; справа записывают выражениеИмена переменных-получателейПеременные, значения и текстовые сообщения
Как изменяются данные или состояние программыПеременная получает вычисленное значениеПеременные получают введённые значенияДанные отображаются на экране
Переход на новую строкуНе относится к выводуСам по себе не задаёт формат экранного выводаwrite — не обязателен; writeln — выполняется

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

Разбор задач

Задача 1. Записать оператор, который присваивает переменной x значение 7. Нужно указать переменную-получатель слева, а требуемое значение — справа. Важно не путать команду присваивания с математическим равенством.

  1. Определяем, куда записать число: получателем будет переменная x.
  2. Записываем оператор присваивания := между переменной и значением.
  3. Ставим число 7 справа, потому что именно оно должно попасть в переменную.

Ответ: x := 7. Здесь := означает команду изменения значения, а не утверждение, что x уже равен 7 в математическом смысле. После выполнения команды в x хранится число 7.

Задача 2. Составить фрагмент программы, который вводит два числа a и b и выводит их сумму. Сначала нужно получить оба исходных значения, иначе вычислять будет нечего. Затем результат следует вычислить и показать пользователю.

  1. Командой read(a, b) принимаем два числа и записываем их в соответствующие переменные.
  2. Выражение a + b вычисляет сумму, а команда s := a + b сохраняет её в переменной s.
  3. Командой writeln выводим пояснение и значение s; переход на новую строку завершит вывод.

Ответ:

read(a, b);
s := a + b;
writeln('Сумма: ', s);

Переменная s нужна, чтобы результат вычисления был явно сохранён перед выводом. Если поменять строки местами и сначала вычислить сумму, значения a и b ещё не будут введены. Такой фрагмент показывает общий порядок: ввод, присваивание результата, вывод.

Задача 3. Написать фрагмент программы для вычисления среднего арифметического трёх введённых чисел и вывода результата с пояснением. Среднее находят, складывая числа и деля сумму на их количество. Результат может быть нецелым, поэтому для переменных и среднего нужно предусмотреть вещественный тип.

  1. Сначала считываем три значения в переменные a, b и c.
  2. Складываем их и делим сумму на 3; присваивание сохраняет полученное среднее в переменной m.
  3. Выводим поясняющий текст и значение m одной командой writeln, перечислив элементы через запятую.

Ответ:

read(a, b, c);
m := (a + b + c) / 3;
writeln('Среднее арифметическое: ', m);

Скобки показывают, что сначала нужно получить сумму трёх чисел, а уже затем разделить её на 3. В программе переменные a, b, c и m следует объявить с вещественным типом, чтобы результат вроде 2,5 не терял дробную часть. Текст сообщения заключён в кавычки, а значение m передаётся команде вывода отдельно.

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

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

Иногда выражение ставят слева от := или имя переменной — справа, перенося в запись привычный порядок математического равенства. Так команда теряет смысл: результат должен быть записан в конкретное место памяти, а это место задаёт переменная слева. Перед выполнением проверьте, можно ли однозначно назвать переменную, в которую попадёт результат.

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

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

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

Для работы с вводом, присваиванием и выводом нужны понятия переменной, типа данных и арифметического выражения. Тип определяет, какие значения может хранить переменная, а выражение задаёт вычисление, результат которого можно присвоить. Знание этих основ помогает понимать, почему для среднего арифметического нужен тип, допускающий дробные значения.

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

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

  • В Паскале оператор присваивания обозначается :=.
  • Сначала вычисляется правая часть присваивания, затем результат записывается в переменную слева.
  • В операторе ввода перечисляют переменные, в которые будут записаны данные.
  • Оператор вывода может отображать значения переменных и текстовые сообщения.
  • write не выполняет обязательный переход на новую строку, writeln выполняет.
  • Порядок ввода, вычислений и вывода должен соответствовать задаче.

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

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

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

Почему в Паскале для присваивания используют :=, а не =?

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

Можно ли вводить несколько значений одним оператором read?

Да, в скобках можно перечислить несколько переменных через запятую: read(a, b). Введённые значения попадут в переменные в том же порядке, в каком они указаны. Например, первое — в a, второе — в b.

Чем отличаются write и writeln?

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

Что произойдёт, если вывести переменную до того, как ей присвоено значение?

Если переменной не было присвоено значение и оно не было введено, программа использует неопределённые исходные данные. В результате может появиться непредсказуемое значение или программа поведёт себя не так, как ожидалось. Перед выводом проверьте, что переменная получила значение.

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

§ 17. Оператор присваивания, ввод и вывод данных

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

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.