
Одно из из самых основных понятий в паскале это понятие переменной . В данном уроке
мы разберем что такое переменная , для чего она нужна и что с ней можно делать.
Для простоты понятия переменной , мы будем представлять её в качестве некой коробки , которая в свою очередь имеет свое имя ( адрес , по которому мы будем ссылаться на неё ) и значение внутри «коробки» ( переменной ). И в дальнейшем свой тип.
В данном случае мы имеем некую переменную с именем «a» , значение которой принимает число 17. В паскале такое выражение записывается так a:= 17;. Обратите внимание на знак := ( двоеточие и равно , означает присвоить ) пробелы между ними и перед ставить не нужно.
Следует заметить , что имена переменных могут состоять из отдельных слов , например age:= 21; или my_age:= 21;. В названии переменных можно использовать латинские буквы , арабские цифры , а также символ подчеркивания _ . Использовать цифры в начале переменной нельзя ! ( 21age:= 21; ).
Переменные name и NaMe совершенно одинаковые , то есть паскаль не обращает внимания на регистр переменных.
Как видно из картинки выше , переменные могут нести в себе не только целые значения ( integer ), но и вещественные и строковые и некоторые другие.
a:= 3.5; — Вещественная переменная real
b:= «Hello»; — Строковая переменная string
Целочисленный тип переменной
Целочисленные переменные это переменные , которые несут в себе значение целых чисел например :
1 |
3 , 17 , 10 , -5 , |
Пример объявления такой переменной ( переменные объявляются в блоке var ) :
1 2 |
var x,y:integer; |
Дополнительно о типе integer можно прочесть здесь
Вещественный тип переменной
Вещественные переменные несут в себе нецелые числа . Например 3.5 , 2.7 . 1/2 тоже является вещественным значением и равна 0.5
Пример объявления такой переменной :
1 2 |
var x,y:real; |
Подробное описание real здесь
Строковой тип переменной
Строковые переменные несут в себе символы или последовательность символов. Значение такой переменной строго записывается в кавычках. Например b:= «hello»;
Пример объявления такой переменной :
1 2 |
var t,t1:string; |
Читать что такое тип данных string
Существуют ещё два типа переменных . Логический ( boolean ) и символьный ( char ). Их подробное описание есть здесь и здесь.
Переменные логического типа имеют только два значения true и false , а переменные символьного типа несут в себе только один символ. ( Явная схожесть с строковых типом , однако в строковой переменной можно использовать сразу несколько символов , в отличии от символьного , в котором можно использовать только один символ )
Пример объявления символьной переменной :
1 2 |
var a:char; |
Пример объявления логической переменной :
1 2 |
var f:boolean; |
Переменные имеют свою диапазон значений , к примеру переменная типа integer(целочисленная) не может превышать значение 32767 или быть меньше чем -32768.
Посмотреть таблицы с названием типов и их диапазонами можно здесь.
Все переменные объявляются в блоке var ( между словами var и begin )
Как объявляются переменные ?
Вначале пишем имя своей переменной , например «a» далее следует задать тип нашей переменной . Это зависит от того , какой мы хотим её видеть. Например для хранения вашего имени в переменной , нам понадобится тип string. А для возраста тип integer.
Записывается это так — a:integer; Один и тот же тип можно задать нескольким переменным сразу . Например a,b,c:real;
Следует помнить о том , что каждая переменная до того , как мы присвоим ей какое-либо значение , имеет значение равное 0
Операции с переменными
С каждой переменной можно проводить свои операции . Например складывание , вычитание , деление , возведение в корень и многие другие.
Как видно на картинке , целочисленная переменная «a» имеет значение 10 , а целочисленная переменная «b» имеет значение 7 . Значение переменной «c» равно разнице «a и b» , проще говоря равно 3.
Остальные арифметические операции выполняются аналогично . Умножение заменяется знаком * , а деление / .
При таком взаимодействии переменных, большое внимание следует уделять типам переменных . Так к примеру существуют две переменные «a и b» , «a» равно 1 , «b» равно 2 . Переменная c равна частному «a на b» ( a/b ). В таком случае переменная «c» принимает вещественный тип.
Команды ввода и вывода на экран :
Для того , чтобы вывести переменную на экран нам понадобится команда writeln();.
Для того , чтобы ввести значение некоторой переменной через клавиатуру , нам понадобится команда readln();
Вывод на экран значения переменной «name» осуществляется так — writeln(name);.
Запись значения переменной с клавиатуры осуществляется так — readln(name);.

В языке программирования Pascal существует множество встроенных стандартных функций и операций. Они предназначены для разных целей , в основном это работа с переменными.
Некоторые из них вы найдете в данной статье.
Операции в Паскале
Где используются операции : прежде всего , операции используются в в работе с переменными ( например их сложение ) , а также в условиях.


Функции в Паскале
Функции используются для обработки некоторых переменных. Например для того , чтобы получить корень из какого-либо числа ( переменной ) , нам понадобится функция sqr(x) где x — это переменная , которая будет возведена в квадрат.

Отличие writeln() от write()
Многие задаются таким вопросом : В чем отличие команды writeln() от команды write(). Отличий совсем немного , но они есть.
Команда writeln() — выводит определенную информация на экран ( текст, переменную и т.п ) и при этом переводит последующий текст на следующую строку ( линию ). Проще говоря , текст внутри writeln() занимает всю строку , а остальной текст будет печататься на следующей строке.
В случае , когда мы используем команду write() , последующий текст не переводится.
Наглядный пример работы данных команд :
1 2 3 4 5 6 7 8 |
program mypascal; begin write('Привет '); writeln(' друг !'); write('Как твои дела ?'); end. |
На экран будут выведены две строчки. В первой строке будет написано » Привет друг ! «. Во второй строке будет написано «Как твои дела ?».
Отличия команды readln() и read() аналогичны.
Write — писать ; ln ( line ) — линия.
Переменные | Оператор присваивания
Мы научились выводить результаты вычислений; но значительно чаще эти результаты надо хранить в программе для дальнейшего использования. Сохраняются такие результаты в переменных — участках памяти, которые имеют собственные имена в программе. Рассмотрим код
1 2 3 4 5 6 7 8 9 10 11 |
program LinearEquation; var a, b, x: real; begin writeln ( 'Эта программа развязывает линейное уравнение ax=b'); a = 3; b = 9; writeln ( 'a =', a); writeln ( 'b =', b); x = b / a; writeln ( 'x =', x) end. |
Раздел var (от англ. Variable — переменная) провозглашает 3 переменные — a, b и x — действительного типа (real, англ. Действительный). Переменные действительного типа предназначен для работы с числами, похожих на обычные действительные числа, с определенными ограничениями реализации (они не могут быть больше и меньше определенных значений, и также минимальное расстояние между числами; впрочем, эти ограничения являются достаточно широкими, чтобы в обучении не обращать на них внимания). Альтернативным типом чисел есть целый тип (integer, англ. Цел), числа которого, очевидно, могут приобретать только целых значений. С другими стандартными простыми типами можно ознакомиться в соответствующем разделе .
В общем виде раздел var выглядит так:
1 2 3 4 |
var идентификатор, идентификатор ...: тип, идентификатор, идентификатор ...: тип, ... идентификатор, идентификатор ...: тип, |
Все идентификаторы должны быть уникальными, а вот названия типов могут повторяться. Все идентификаторы с одной строки провозглашаются переменными одного типа — того, что указано после двоеточия в той же строке.
Строка a = 3; содержит оператор присваивания =; этот оператор записывает свой правый операнд (в этом случае, 3) в левый (a). Таким образом, после выполнения этой строки a становится равным 3. Важно понять, что оператор присваивания — не математическое утверждение «a равна 3», как его часто воспринимают новички, а команда «записать в a значение 3»; любая другая команда может изменить это значение. Довольно часто в Паскале используются команды вроде x = x + 1; эта команда не содержит противоречие, как может показаться, а берет текущее значение x, добавляет к нему 1 и записывает снова в переменное x — то есть ее следует воспринимать как «увеличить x на 1».
Команда writeln ( ‘a =’, a); выводит значение переменной a; сразу заметим, что формат числа немного необычный: вместо ожидаемого 3 мы видим 3.000000000E +00. Буква e в этом случае синонимом выражения «10 в степени», то есть это можно записать как 3.0 * 10 0 — что, собственно, равен просто 3. Большинство компиляторов Паскаля типично используют такой формат вывода действительных чисел; позже мы научимся изменять формат вывода.
Строка x = b / a; Как вы уже догадались, вычисляет значение b / a и записывает его в переменную x. Здесь требуется пояснение: компилятор Паскаля не умеет решать уравнения, он только выполняет программу. Поэтому для решения задачи в Паскале надо сначала решить ее математически (получив из уравнения a * x = b выражение x = b / a), и только потом запрограммировать это решение.
Последняя строка выводит вычисленное значение x. Здесь надо отметить, что последние две строки можно было бы совместить в
1 |
writeln('x=',b/a) |
и выбросить переменную x из раздела var; но в «длинной» форме программа выглядит более очевидной — вычисление x (собственно, то, для чего программа была написана) вынесенное в отдельную команду, делает более удобным поиск этой команды и восприятия программы в целом.
Обратим также внимание на то, что все строки между begin и end, кроме последнего, заканчиваются точкой с запятой. Точка с запятой служит для отделения команд друг от друга, а поскольку end не является командой, отделяться от него нужно. Тем не менее, часто ставят точку с запятой и перед end. Это не является ошибкой — точка с запятой, если не разделяет команды, рассматривается как пустой оператор — то есть отсутствие действия, этот оператор не влияет на выполнение программы.
Базовый ввод
Мы научились, хотя бы в общих чертах, превращать числа внутри программы и выводить их. Но программе, кроме этого, еще надо получать числа извне — то есть вводить их. Для ввода цифр служит команда readln (парную к ней команду read мы рассмотрим позже). Сравните приведенный код с тем, что выше:
1 2 3 4 5 6 7 8 9 10 11 |
program LinearEquation; var a, b, x: real; begin writeln ( 'Эта программа разв' 'связывает линейное уравнение ax = b'); write ( 'a ='); readln (a); write ( 'b ='); readln (b) x = b / a; writeln ( 'x =', x) end. |
Как видим, вместо присваивания переменные a и b представлены параметрами команды readln. Что же произойдет, если запустить программу? Мы увидим только a = … и все. Что это значит? Что программа выполняет команду readln (a) — а именно, ждет, пока мы введем с клавиатуры определенное значение. Введем на клавиатуре 10 и нажмем ↵ Enter. Строкой ниже появится надпись b =. Это означает, что команда readln (a) закончила работу и в a теперь сохранено значение, введенное с клавиатуры — а именно 10, и теперь программа ожидает ввод переменной b. Введем 20 (и снова нажмем ↵ Enter). Программа вычислит значение x и выведет его — как и в предыдущей версии, но теперь это будет уже не фиксированное значение, а такое, что зависит от того, что мы ввели.
Константы
Кроме переменных, в языке Паскаль еще константы. Константы не изменяются во время работы программы, позволяющей компилятору сразу подставлять где можно их значения, ускоряет работу программы. Объявления констант выглядит так:
1 2 3 |
const a = 10; b: real = 2 0.0; chyslo_pi = 3.1415926; |
Тип константы можно не указывать, но необходимо указать ее значение. Если тип не указан, компилятор берет тип значения (константа a в этом примере целая, а chyslo_pi — настоящая константа).
Использование констант позволяет значительно легче читать и изменять программу в будущем. Вот программа для вычисления доли и остатка от деления на 5:
1 2 3 4 5 6 7 8 |
Program Ostacha; var x:integer; begin writeln('Эта программа вычисляет доли и остатка от деления на 5.'); writeln('Введите деленное:'); readln(x); writeln(x, ' / 5 = ', x div 5, ' (ост. ', x mod 5, ')'); end. |
Для того, чтобы изменить ее на программу вычисления доли и остатка от деления на 13, надо внести 4 правки. А в этой программе
1 2 3 4 5 6 7 8 9 |
Program Ostacha; var x:integer; const dilnyk=5; begin writeln('Ця програма обчислює частки і остачі від ділення на ', dilnyk, '.'); writeln('Введіть ділене:'); readln(x); writeln(x, ' / ', dilnyk, ' = ', x div dilnyk, ' (ост. ', x mod dilnyk, ')'); end. |
Понадобится всего одна правка — без изменения поведения программы.