"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
Программа на Паскале строится из символов языка: букв, цифр и специальных знаков. Чтобы записывать команды и работать с данными, программист использует служебные слова и придумывает имена — идентификаторы. Каждая переменная имеет тип: он задаёт, какие значения в ней можно хранить и какие действия с ними допустимы. Знание этих правил помогает правильно объявлять переменные, составлять выражения и находить ошибки ещё до запуска программы.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алфавит языка Паскаль — набор символов, которыми записывают программу: латинские буквы, цифры и специальные знаки, например +, :=, ; и скобки. Пробелы и переходы на новую строку помогают отделять части записи. Алфавит нужен, чтобы компьютер мог однозначно распознавать текст программы.
Служебные слова — слова, которым в языке заранее назначена определённая роль, например begin и end. Компилятор распознаёт их именно как команды или обозначения структуры программы. Поэтому служебное слово нельзя занять именем своей переменной: иначе запись станет неоднозначной.
Идентификатор — имя переменной или другого объекта программы, придуманное программистом. В Паскале имя начинается с буквы, а дальше может содержать буквы, цифры и допустимые знаки подчёркивания; начинать его с цифры нельзя. Идентификаторы помогают различать объекты и обращаться к нужному из них в командах.
Тип данных — характеристика, которая задаёт множество значений, допустимых для данных, и операции над ними. Например, для целого числа подходят арифметические действия, а логическое значение выражает только истинность или ложность. Указание типа помогает правильно использовать данные и проверять программу на ошибки.
Сначала символы алфавита объединяются в слова и знаки, а из них составляются выражения и команды программы. Например, слово begin распознаётся как служебное, потому что язык заранее закрепил за ним начало блока команд. Имя summa, напротив, может придумать программист: оно не получает специального смысла само по себе. Разделение служебных слов и придуманных имён позволяет компилятору понимать структуру программы.
Чтобы проверить идентификатор, посмотри на его первый символ, остальные знаки и наличие среди служебных слов. Запись Ves начинается с буквы и подходит, а 2числа нарушает правило о первом символе. Запись begin не подходит, потому что это служебное слово; summa_1 допустима, если используемая версия Паскаля разрешает подчёркивание. Соблюдение правил важно не только для компилятора: понятное имя помогает человеку увидеть назначение переменной.
Константа — значение, которое в программе задано и не меняется, а переменная хранит значение, которое можно изменить во время выполнения. Переменной дают идентификатор, чтобы обращаться к её содержимому по имени, а не искать его по месту в памяти. Например, команда присваивания может записать новое значение в переменную kol. Поэтому имя связывает команды программы с теми данными, которые нужно прочитать или изменить.
Тип ограничивает возможные значения переменной, потому что не всякая информация имеет одинаковый смысл и одинаковые правила обработки. В переменную целого типа нельзя корректно записать букву как числовое значение, а для логического типа предназначены true и false. Тип также задаёт допустимые операции: сложение применяют к числам, а логические операции — к значениям true и false. Такая проверка помогает замечать несоответствия до выполнения программы.
Основные типы различаются тем, какие данные описывают. Целый integer используют для чисел без дробной части, например 25; вещественный real — для чисел с дробной частью, например 3.14. Символьный char хранит один символ, например 'A', а логический boolean — одно из двух значений: true или false. Выбор зависит от смысла данных, а не только от того, как они выглядят в записи.
| Тип данных | Какие значения задаёт | Пример значения | Пример применения |
|---|---|---|---|
| Целый (integer) | Целые числа без дробной части | 25 | Количество учеников |
| Вещественный (real) | Числа, которые могут иметь дробную часть | 3.14 | Средняя оценка |
| Символьный (char) | Один отдельный символ | 'A' | Первая буква фамилии |
| Логический (boolean) | Значения true или false | true | Признак зачёта |
Сначала определите, что именно описывает переменная, затем найдите для этого подходящую строку таблицы. Пример применения подсказывает тип, но не ограничивает его только этой ситуацией. После выбора типа проверьте, что записываемое значение ему соответствует.
Задача 1. Определите, какие из записей могут быть идентификаторами: Ves, 2числа, begin, summa_1. Проверка состоит из двух частей: имя должно начинаться с допустимого символа и не быть служебным словом. Также учитываем, что подчёркивание допускается в используемом варианте Паскаля.
Ответ: допустимые идентификаторы — Ves и summa_1. Записи 2числа и begin не подходят по разным причинам. Это показывает, почему нужно проверять и форму имени, и его совпадение со служебным словом.
Задача 2. Для значений 25, 3.14, 'A' и true укажите подходящий тип данных. Ориентируемся на смысл записи, а не только на то, что все примеры являются значениями. Дробная часть, кавычки и логическое слово помогают различить типы.
Ответ: 25 — integer; 3.14 — real; 'A' — char; true — boolean. При классификации полезно сначала спросить, является ли значение числом, символом или логическим признаком. Затем для числа выясняют, есть ли у него дробная часть.
Задача 3. Для количества учеников, средней оценки, первой буквы фамилии и признака зачёта выберите тип и запишите объявления. Сначала определим вид информации: количество выражается целым числом, среднее может быть дробным, буква — символом, а признак — ответом «да» или «нет». Затем подберём короткие имена, начинающиеся с букв.
Ответ: объявления можно записать так: var kol: integer; sred: real; bukva: char; zachet: boolean;. В каждой строке имя связано с типом через двоеточие. Выбранные типы соответствуют смыслу хранимых данных.
Служебное слово иногда используют как идентификатор, потому что оно выглядит как обычное слово. Но у него уже есть назначение в языке, и компилятор не сможет трактовать его как имя переменной. Перед использованием имени проверьте, не относится ли оно к служебным словам. Например, begin нельзя выбрать для новой переменной.
Идентификатор начинают с цифры или включают в него недопустимые символы, когда воспринимают имя как произвольный текст. Однако язык разбирает имена по правилам: начальным символом должна быть буква, а остальные знаки также должны быть разрешены. Проверьте запись посимвольно, начиная с первого знака. Имя 2числа поэтому не подходит, а Ves — подходит.
Целый и вещественный типы считают взаимозаменяемыми, потому что оба используются для чисел. Но integer предназначен для значений без дробной части, а real — в том числе для дробных значений. Спросите себя, может ли величина принимать дробное значение. Для количества людей обычно выбирают integer, для среднего результата — real.
Символьной переменной иногда приписывают целое слово, а логической — произвольный текст. Ошибка возникает, когда выбирают тип по внешнему сходству, не проверяя, какие значения он допускает. Сверьте значение с типом: char хранит один символ, boolean — только true или false. Если значение не подходит, выберите другой тип или измените данные.
До изучения типов полезно различать данные и команды программы. Также нужно уметь узнавать числа, отдельные символы и логические значения: эти представления подсказывают, какой тип может понадобиться. Такое умение помогает не путать, например, символ 'A' и строку из нескольких букв. Оно служит основой для чтения простых программ.
Переменные и типы нужны при записи объявлений, присваиваний и выражений на Паскале. Объявление сообщает, как называется переменная и какие данные она хранит, а присваивание задаёт ей значение. В условиях особенно важны логические значения и операции, которые дают true или false. Поэтому выбор типа влияет на то, какие команды можно составить и как программа будет обрабатывать данные.
Можно ли использовать служебное слово как имя переменной?
Нет. У служебного слова уже есть назначение в языке, поэтому оно не может быть именем переменной. Например, begin обозначает начало блока команд.
Почему имя переменной нельзя начинать с цифры?
По правилам Паскаля идентификатор начинается с буквы, а цифры могут идти после неё. Иначе запись вроде 2числа не распознаётся как допустимое имя.
Чем целый тип отличается от вещественного?
Целый тип предназначен для чисел без дробной части, например 25 или −3. Вещественный тип позволяет хранить числа с дробной частью, например 3.14.
Какой тип выбрать для хранения одного символа?
Для одного символа используют тип char. Например, значение 'A' — это символ, а не текст из нескольких букв.
Зачем указывать тип переменной?
Тип определяет, какие значения переменная может хранить и какие операции с ней допустимы. Благодаря типу компилятор может обнаружить многие ошибки в программе.
§ 15. Элементы языка Паскаль и типы данных