Как объявлять переменные в паскале
Перейти к содержимому

Как объявлять переменные в паскале

  • автор:

Переменные и константы

Любая программа обрабатывает данные (информацию, объекты). Данные, с которыми работает программа, хранятся в памяти компьютера (чаще оперативной). Программа должна знать, где они лежат, каким объемом памяти она располагает, как следует интерпретировать данные (например, как числа или строки). Для обеспечения программе доступа к участкам памяти существует механизм переменных.

Переменные описываются в начале программы и как бы сообщают о том, с какими данными будет работать программа и какой объем памяти они займут. Другими словами, резервируется память. Но это не значит, что в эти ячейки памяти помещаются конкретные значения (данные). На момент резервирования памяти в них может быть что угодно.

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

Имена переменных могут быть почти любым сочетанием английских букв и цифр (без пробелов). Нельзя чтобы имена переменных совпадали со словами, которые являются какими-либо командами самого языка программирования. Нельзя начинать имена переменных с цифры или специального символа. Для того чтобы имена переменных были удобны для восприятия, надо стараться придерживаться пары правил. Если программа не простейший пример, то имена переменных должны быть осмысленными словами или их сокращениями. Желательно, чтобы имена переменных не были слишком длинными.

В Pascal прописные и строчные буквы в именах переменных не различаются.

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

В примере ниже происходит ввод значений трех переменных разных типов и выполнение допустимых для их типов операций. Если тип переменных integer, то им можно присваивать только целые числа в диапазоне от -32768 до 32767. Под тип integer в языке программирования Паскаль отводится 2 байта, что равно 16 битам, а это значит, что можно хранить 2 16 (65536) значений (отрицательные и положительные числа, а также ноль). В этих диапазонах переменные int1 и int2 могут принимать какие угодно значения. При попытке записи в переменную значения не ее типа возникнет ошибка.

var int1,int2: integer; r: real; ch: char; begin write('Type integer: '); readln(int1); write('Type real: '); readln(r); write('Type char: '); readln(ch); int2:= int1 mod 10; int1:= int1 div 10; r:= r + 0.5; ch:= chr(ord(ch)+1); writeln(int1:5, int2:3, r:7:2, ch:3); end.

Пример работы программы:

 Type integer: 32 Type real: 5.34 Type char: A 3 2 5.84 B

Итак, переменные связаны с участками памяти, содержимое которых может меняется по ходу выполнения программы в определенных пределах.

Длина переменных

Ранние версии компиляторов Паскаля имели ограничение на учитываемую длину имен переменных. В имени учитывались лишь первые восемь символов. Поэтому, например, такие переменные как variable1 и variable2 компилятор воспринимал как одно и тоже, т.к. первые восемь символов совпадали.

В современных версиях компиляторов с языка Pascal таких ограничений нет. Например, в результате работы приведенной ниже программы как в среде Free Pascal, так и Turbo Pascal 7.1 на экран выводятся два разных числа (10 и 20). Это значит, что компиляторы учитывают больше восьми символов в именах переменных (и других идентификаторов: именах констант, процедур и др.).

var variable111, variable222: integer; begin variable111 := 10; variable222 := 20; writeln(variable111); writeln(variable222); readln end.

Константы

Что делать, если в программе требуется постоянно использовать какое-нибудь одно и тоже число. Вроде бы это не проблема. Можно описать переменную, затем присвоить ей значение и не изменять его в программе. Однако это не всегда удобно (можно нечаянно изменить), поэтому в языках программирования для хранения данных помимо переменных существуют константы.

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

const конст1 = значение; конст2 = значение;

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

Рассмотрим такую программу:

const N = 10; var i: byte; sum: word; begin sum := 0; for i:=1 to N do sum := sum + i; writeln('Sum of ', N, ' numbers = ', sum); end.

В ней используется константа n со значением 10. Программа считает сумму десяти чисел в диапазоне от 1 до 10. Если нам захочется посчитать сумму чисел до 20, то достаточно будет изменить значение константы в начале программы. Если бы константа не использовалась, то пришлось бы просмотреть весь код программы и исправить значение 10 на 20. Если программа большая, то легко ошибиться: не найти или исправить не то значение.

Типизированные константы

В языке Паскаль помимо обычных констант используются типизированные константы. Можно сказать, что они занимают промежуточное положение между переменными и константами. Они получают значение при описании (как константы), но могут его менять в теле программы (как переменные).

Описываются типизированные константы в разделе констант:

const конст1: тип = значение; конст2: тип = значение;
const NUMS: integer = 10;

Паскаль — Типы переменных

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

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

Основные переменные в Паскале

Обычно один октет (один байт). Это целочисленный тип.

целое число

Наиболее натуральный размер целого числа для машины.

Значение с плавающей запятой одинарной точности.

Указывает истинные или ложные логические значения. Это также целочисленный тип.

Перечислимый

Определяет пользовательский список.

Поддиапа- зон

Представляет переменные, значения которых лежат в диапазоне.

Хранит массив символов.

Обычно один октет (один байт). Это целочисленный тип.

целое число

Наиболее натуральный размер целого числа для машины.

Значение с плавающей запятой одинарной точности.

Указывает истинные или ложные логические значения. Это также целочисленный тип.

Перечислимый

Определяет пользовательский список.

Поддиапа- зон

Представляет переменные, значения которых лежат в диапазоне.

Хранит массив символов.

Язык программирования Pascal также позволяет определять различные другие типы переменных, которые мы рассмотрим в следующих главах, таких как Pointer, Array, Records, Sets, Files и т. Д. В этой главе мы изучим только основные типы переменных.

Объявление переменных в Паскале

Все переменные должны быть объявлены до того, как мы используем их в программе Pascal. Все объявления переменных сопровождаются ключевым словом var . Объявление определяет список переменных, за которыми следует двоеточие (:) и тип. Синтаксис объявления переменной —

var variable_list : type;

Здесь тип должен быть допустимым типом данных Pascal, включая символьные, целые, действительные, логические или любые другие определяемые пользователем типы данных и т. Д., А variable_list может состоять из одного или нескольких имен идентификаторов, разделенных запятыми. Некоторые действительные объявления переменных показаны здесь —

var age, weekdays : integer; taxrate, net_income: real; choice, isready: boolean; initials, grade: char; name, surname : string;

В предыдущем уроке мы обсуждали, что Pascal позволяет объявлять тип. Тип может быть идентифицирован по имени или идентификатору. Этот тип может использоваться для определения переменных этого типа. Например,

type days, age = integer; yes, true = boolean; name, city = string; fees, expenses = real;

Теперь определенные типы могут использоваться в объявлениях переменных —

var weekdays, holidays : days; choice: yes; student_name, emp_name : name; capital: city; cost: expenses;

Обратите внимание на разницу между объявлением типа и объявлением var . Объявление типа указывает категорию или класс типов, таких как целое число, вещественное и т. Д., Тогда как спецификация переменной указывает тип значений, которые может принимать переменная. Вы можете сравнить объявление типа в Pascal с typedef в C. Самое главное, имя переменной относится к области памяти, где будет храниться значение переменной. Это не так с объявлением типа.

Инициализация переменной в Паскале

Переменным присваивается значение с двоеточием и знаком равенства, за которым следует постоянное выражение. Общая форма присвоения значения —

variable_name := value;

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

var variable_name : type = value;

Вот некоторые примеры:

age: integer = 15; taxrate: real = 0.5; grade: char = 'A'; name: string = 'John Smith';

Давайте посмотрим на пример, который использует различные типы переменных, которые обсуждались до сих пор —

program Greetings; const message = ' Welcome to the world of Pascal '; type name = string; var firstname, surname: name; begin writeln('Please enter your first name: '); readln(firstname); writeln('Please enter your surname: '); readln(surname); writeln; writeln(message, ' ', firstname, ' ', surname); end.

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Please enter your first name: John Please enter your surname: Smith Welcome to the world of Pascal John Smith

Перечисляемые переменные

Вы видели, как использовать простые типы переменных, такие как integer, real и boolean. Теперь давайте посмотрим переменные перечислимого типа, которые можно определить как —

var var1, var2, . : enum-identifier;

Когда вы объявили перечислимый тип, вы можете объявить переменные этого типа. Например,

type months = (January, February, March, April, May, June, July, August, September, October, November, December); Var m: months; . M := January;

Следующий пример иллюстрирует концепцию —

program exEnumeration; type beverage = (coffee, tea, milk, water, coke, limejuice); var drink:beverage; begin writeln('Which drink do you want?'); drink := limejuice; writeln('You can drink ', drink); end.

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Which drink do you want? You can drink limejuice

Переменные поддиапазона

Переменные поддиапазона объявляются как —

var subrange-name : lowerlim . uperlim;

Примеры поддиапазонных переменных:

var marks: 1 . 100; grade: 'A' . 'E'; age: 1 . 25;

Следующая программа иллюстрирует концепцию —

program exSubrange; var marks: 1 .. 100; grade: 'A' .. 'E'; begin writeln( 'Enter your marks(1 - 100): '); readln(marks); writeln( 'Enter your grade(A - E): '); readln(grade); writeln('Marks: ' , marks, ' Grade: ', grade); end.

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Переменные в Паскаль

Переменные в Паскаль

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

Для простоты понятия переменной , мы будем представлять её в качестве некой коробки , которая в свою очередь имеет свое имя ( адрес , по которому мы будем ссылаться на неё ) и значение внутри «коробки» ( переменной ). И в дальнейшем свой тип.

Переменная

В данном случае мы имеем некую переменную с именем «a» , значение которой принимает число 17. В паскале такое выражение записывается так a:= 17;. Обратите внимание на знак := ( двоеточие и равно , означает присвоить ) пробелы между ними и перед ставить не нужно.

Следует заметить , что имена переменных могут состоять из отдельных слов , например age:= 21; или my_age:= 21;. В названии переменных можно использовать латинские буквы , арабские цифры , а также символ подчеркивания _ . Использовать цифры в начале переменной нельзя ! ( 21age:= 21; ).
Переменные name и NaMe совершенно одинаковые , то есть паскаль не обращает внимания на регистр переменных.

Две переменные

Как видно из картинки выше , переменные могут нести в себе не только целые значения ( integer ), но и вещественные и строковые и некоторые другие.

a:= 3.5; — Вещественная переменная real
b:= «Hello»; — Строковая переменная string

Целочисленный тип переменной

Целочисленные переменные это переменные , которые несут в себе значение целых чисел например :
3 , 17 , 10 , -5 , 0
Пример объявления такой переменной ( переменные объявляются в блоке var ) :
var
x,y:integer;

Вещественный тип переменной

Вещественные переменные несут в себе нецелые числа . Например 3.5 , 2.7 . 1/2 тоже является вещественным значением и равна 0.5

Пример объявления такой переменной :

var
x,y:real;

Строковой тип переменной

Строковые переменные несут в себе символы или последовательность символов. Значение такой переменной строго записывается в кавычках. Например b:= «hello»;

Пример объявления такой переменной :

var
t,t1:string;

Существуют ещё два типа переменных . Логический ( boolean ) и символьный ( char ).
Переменные логического типа имеют только два значения true и false , а переменные символьного типа несут в себе только один символ. ( Явная схожесть с строковых типом , однако в строковой переменной можно использовать сразу несколько символов , в отличии от символьного , в котором можно использовать только один символ )

Пример объявления символьной переменной :

var
a:char;

Пример объявления логической переменной :
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);.

Остальные операции и функции с переменными вы можете посмотреть здесь.

Отличие writeln() от write()

Многие задаются таким вопросом : В чем отличие команды writeln() от команды write(). Отличий совсем немного , но они есть.

Команда writeln() — выводит определенную информация на экран ( текст, переменную и т.п ) и при этом переводит последующий текст на следующую строку ( линию ). Проще говоря , текст внутри writeln() занимает всю строку , а остальной текст будет печататься на следующей строке.

В случае , когда мы используем команду write() , последующий текст не переводится.

Наглядный пример работы данных команд :

program mypascal;
begin

write(‘Привет ‘);
writeln(‘ друг !’);
write(‘Как твои дела ?’);

На экран будут выведены две строчки. В первой строке будет написано » Привет друг ! «. Во второй строке будет написано «Как твои дела ?».

Отличия команды readln() и read() аналогичны.
Write — писать ; ln ( line ) — линия.

Переменные и типы данных

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

В языке Паскаль переменные объявляются в блоке var. Несколько переменных одного типа могут быть объявлены одной строкой, при этом имена разделяются запятыми.

var variableName : variableType; x, y, z : integer; 

Пример программы с использованием переменных:

 program Variables; var userName : string; x, y, z : integer; begin write('Enter your name: '); readln(userName); writeln('Hello ', userName); write('x = '); readln(x); write('y = '); readln(y); z := x + y; writeln('z = ', x,' + ', y, ' = ', z); writeln('Press Enter to Exit. '); readln; end. 

Для чтения данных из консоли используется процедура readln.

Основные типы данных Pascal

  • boolean — логический тип, может принимать значение True(Истина) или False(Ложь);
  • integer — целое число;
  • real — вещественное число или число с плавающей точкой;
  • char — символьный тип данных, может содержать один символ;
  • string — строка, последовательность символов.

Целые типы данных в языке Free Pascal

Тип Диапазон значений Размер в байтах
Byte от 0 до 255 1
ShortInt, Int8 от -128 до 127 1
SmallInt, Int16 от -32768 до 32767 2
Word от 0 до 65535 2
Cardinal от 0 до 4294967295 4
Integer, LongInt, Int32 от -2147483648 до 2147483647 4
LongWord от 0 до 4294967295 4
Int64 от -9223372036854775808 до 9223372036854775807 8
QWord от 0 до 18446744073709551615 8

Числа с плавающей точкой

Тип Диапазон Значащих цифр Размер в байтах
Single от 1.5e-45 до 3.4e38 7-8 4
Real, Double от 5.0e-324 до 1.7e308 15-16 8
Extended от 1.9e-4932 до 1.1e4932 19-20 10
Comp от -2e64+1 до 2e63-1 19-20 8
Currency от -922337203685477.5808 до 922337203685477.5807 8

“E” — показатель степени в числах с плавающей точкой. Выражение 3.6e5 эквивалентно математической записи 3.6*10 5 .

Символьные и строковые типы данных

Тип Диапазон значений Размер в байтах
Char 1 символ 1
WideChar 1 символ Unicode 2
String, ShortString строка длиной до 225 символов зависит от длины
AnsiString не ограничена по длине зависит от длины
WideString не ограничена по длине Unicode строка зависит от длины

Для строки можно не указывать длину, тогда она принимает значение 255 символов:

var s1 : string[12]; // строка длиной 12 символов s2 : string; // строка длиной 255 

Логические типы

Тип Размер в байтах Значение для True Значение для False
Boolean 1 1 0
ByteBool 1 Любое не нулевое значение 0
WordBool 2 Любое не нулевое значение 0
LongBool 3 Любое не нулевое значение 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *