Изучение любого языка начинается из изучение алфавита — конечного множества символов, разрешенных для использования. Алфавит языка Turbo Pascal содержит:
• буквы {буквы) — большие и малые латинские А, В, … ,Z,a,b,…, z, а также символ подчеркивания _;
• десятичные цифры 0,1,2,…,9;
• специальные символы + -*/=><.,;:'()[]{} * @ $ #.
Из символов алфавита образовываются «слова» языка -лексемы (единицы). Это последовательности символов, которые рассматриваются как неделимые и сами по себе имеют некоторое содержание.
В языке Turbo Pascal есть четыре вида лексем:
• константы;
• имена;
• знаки операций;
• разделители.
Кроме них, в программах записывают еще комментарии и директивы компилятора.
Константа — это обозначение значения (числового или другого типа). Числовые константы имеют обычный для нас вид, например, 273,3.1415926, 2.71828, лишь обособление целой части от дробовой задается точкой, а не запятой. Булеві константы false и true обозначают то, о чем мы привыкли говорить, соответственно, «ошибочность» и «истина».
[smszamok]
Существуют также текстовые константы — последовательности любых ASCII-символов, ограниченных апострофами, например, ‘ Лицей’, ‘ 3.1415926’, ‘ -273’.
им ‘я — это последовательность букв алфавита и цифр, которые начинаются из буквы, например, A, xl, _1_2, jklmn. Большие и малые буквы в именах не различаются: Nam, nAM, nam — это одно и то самое имя. Имена могут иметь произвольную длину, но к вниманию берутся лишь первые 63 символа.
Имя всегда именует какой-либо объект; оно выделяет его из других, т.е. идентифицирует, поэтому имя еще называют идентификатором.
Некоторые имена (это английские слова или их сокращение) обозначают определенные составные части программы, например, program, const, var, begin, end. Они называются зарезервированными, ключевыми или служебными словами. Существуют также стандартные слова, например, integer, write, readln, sin, Pi и т.п., которые имеют определенное содержание, но его по желанию программиста можно изменить.
Автор программы также сам создает и использует користувацькі имена, обозначая за их помощью определенные объекты программы.
Знак операции — это обозначение операции, выполнение которой над числами и другими значениями порождает новое значение. Значение, к которым применяется операция, называются ее операндами, а порождаемое значение -результатом. Знаки операций записывают как отдельными символами, например + или -, так и именами или последовательностями других символов, например div или <=. Множество знаков уточняется в параграфах 5-9.
Разделителями являются дужки ( ) [ ], разделительные знаки , ; . : и пропуск. Ими отделяются лексемы и прочие, более сложные, элементы программы.
Комментарий — это вспомогательное объяснение, которое имеет целью помогать человеку понять программу, не задает никаких действий и при трансляции пропускается. Комментарий — это «почти» произвольная последовательность символов, которая начинается символом {и заканчивается ближайшим }, т.е. не содержит } внутри. «Почти» означает, что сразу за дужкой { не может быть символа $ (тогда это не комментарий, а так называемая директива компилятору). Вместо дужек { и } можно записывать пары символов (* и *). Например,
{ это комментарий } (* это тоже *) (и это }
а это уже не комментарий, а непонятно что}
Комментарии можно записывать между любыми в двух словах, тем не менее лучше располагать их по правую сторону от текста программы или в отдельных строках.
Директивы компилятора — это записи, которые задают те или другие режимы
компиляции программы и могут существенно влиять на содержание машинной программы. Как и комментарии, директивы записываются в дужках {}, однако сразу за дужкой { должны идти символ $. Конкретный вид и содержание некоторых директив будет рассмотрено ниже.
Сопредельные имена и константы отделяются так называемыми пустыми символами — символами, которые не имеют изображения и появляются в тексте программы, если при его создании нажимать клавиши Space (пропуск), Enter («конец строки») и Tab (символ табуляцїі). Пустые символы называются пропусками. Пропуск между соседними лексемами не обязательный, если хотя бы одна из них является разделителем, комментарием или знаком операции (но не именем). Например, знаки + или <= не являются именами, a div — есть. Поэтому 1+2, 1 div-2 или 1<=2 написать можно, a ldiv2 — ни (надо 1 div 2).
Программы обрабатывают данные в виде чисел, символов и других значений. Значения имеют определенное представление в компьютере и к значениям применяют некоторые операции. За способом представления и допустимыми операциями значения (данные) делятся на типы. Понятие типа данных есть одним из фундаментальных в программировании.
Тип данных — это множество значений (данных) вместе с множеством операций, примененных к этим данным. Множество значений называется носителем типа, а множество операций — сигнатурой.
В языках программирования используются числовые, символьные и бу-леві значения. Они рассматриваются как целостные элементы, которые не имеют отдельных составных частей, поэтому называются скалярными в отличие от структурных, составленных из отдельных компонентов. Типы скалярных данных называются скалярными.
Практически каждый язык программирования обеспечивает целое семейство скалярных типов. Они называются базовыми типами языка. Имена базовых типов можно употреблять, не объявляя в программе (они являются стандартными). Кроме того, языки имеют специальные конструкции для объявления собственных скалярных и структурных типов.
В базовых скалярных типах языка Turbo Pascal есть целые и действительные числа, булеві значение «истина» и «ошибочность», атакож символы.
Любой тип, базовый или созданный программистом, имеет свое имя и характеризуется множеством значений и набором возможных операций. Для представления целых чисел язык Turbo Pascal предоставляет пять типов:
Имя типа Длина, байт Диапазон значений
byte 1 0..255
word 2 0..65535
shortint 1 -128..127
integer 2 -32768..32767
longint 4 -2147483648..2147483647
Чему у целых типов такие диапазоны значений, висвітлено в разделе 1. Целая константа — это, как и в математике, последовательность десятичных цифр, возможно, со знаком «+» или «-» впереди: 0, +1024, -273 и т.п.. Диапазоны возможных констант разных целые типы приведены в таблице. Для наибольшего целого числа типа integer выделено имя maxint (типа longint — именем maxlongint). Более всего за модулем отрицательное число типа integer можно задать выражением -maxint-1.
Все целые типы имеют одинаковые наборы операций. Рассмотрим сигнатуру операций на примере типа integer.
Основные арифметические операции с целыми числами (добавление, отнимание, умножение, вычисление частицы и остатка от деления націло, а также деление) обозначают знаками. Большинство операций являются двухместными. Знак «-» задает применение как двухместной операции отнимания, так и одноместной операции «минус»: -32768, -(2+3). Знак <<+» также может задавать как двухместную, так и одноместную операцию.
Арифметические операции с целыми числами
Знак Примеры применения и результаты
+ 1+2 = 3
— 1-2 = -1
— (одноместный) -(1) = -1
* 2*2 = 4
div 7 div 3 = 2, -7 div 3 = -2, 7 div -3 * -2, -7 div -3=2
mod 7 mod 3 = 1, -7 mod 3 m -1, 7 mod -3 = 1, -7 mod -3 = -1
/ 7/3 = 2.3333333 (действительное), 6/3 =2.0 (действительное)
Булив тип имеет два логических (булевих) значение «ошибочность» и «истина», которые задано константами false (ошибочность) и true (истина). Этот тип имеет имя boolean в честь выдающегося англичанина Джорджа Буля, основателя математической логики.
К булевих значений применяют логические операции «и», «или», «не», которые называют, соответственно, булевим умножением (кон ‘юнкцією), булевим добавлением (диз ‘юнкцією) и возражением и обозначают как and, or и not. Еще одна операция называется «исключительное или» или «добавление за модулем 2» и обозначается знаком хог. Результаты применения этих операций к булевих значения приведены в таблице:
А В A and В A or В А хог В not A
false false false false false true
false true false true true true
true false false true true false
true true true true false false
Кроме булевих, есть еще операция «порядковый номер» ord: ord (false) = 0, ord (true) = 1. Порядковым номерам булевих значений отвечает результат их сравнения: false < true. Очевидным путем обозначено все другие сравнения =, ОБ, >, <=, >=.
Булеве значения представляется его номером в одном байте, т.е. Sizeof(boolean)=1.
Тип символов {буквенный тип) имеет имя char. В нем 256 значений, которые представляются в одном байте. Заметим, что в относительно новых языках программирования, например Java, символы занимают два байта, поэтому их количество — 65536.
Символ обозначается символьной константой, т.е. символом в апострофах: ‘А’, Ч’, ‘ . ‘ и т.п.. Сам символ «апостроф» задается символьной константой ‘ ‘ ‘ ‘ .Подчеркнем: символьная константа — это не символ, а его обозначение в языке программирования.
Символам взаимно однозначно отвечают номера от 0 до 25 5. Любое символьное значение можно задать выражением chr (и), где и имеет значение от 0 до 255, т.е. номер. Например, chr (48) обозначает то же, что и константа ‘ 0’, chr (48+1) — то же, что ‘ 1’, chr (65) является синонимом константы ‘ А’, chr (97) — ‘а’. Запись вида #і обозначает то же, что и chr (и); например, #48 = chr (48).
Соответствие символов и номеров от 0 до 127 зафиксировано в Американском стандартном коде для обмена информацией (ASCII), а номерам от 128 до 256 могут отвечать разные наборы символов.
Рассмотрим операции с символами. Целый номер символа порождается вызовом функции «порядковый номер», т.е. выражением ord (с), где значением с есть символ. Например, ord(‘ 0’) = 48, ord(‘ А1) = 65, ord (‘а’) =97.
За определением, функции chr и ord взаимно обратные, т.е. chr (ord (с)) = с за любого символа с, a ord (chr (n)) = п за любого п от 0 до 255.
Для символы обозначены все сравнения, причем символы упорядочены так же, как и соответствующие им номера. В частности, исполняются такие неровности. ‘ ‘ < ‘_’ < ‘0’ < Ч’ < … < ‘9’ < ‘А’ < ‘В’ < … < ‘Z’ < ‘а’ < ‘Ь’ < … < ‘z’
[/smszamok]
Результатом операции конкатенации (дописывание) со знаком «+» есть последовательность с двух символов, или строка. Например, ‘ 1′ +’ 2′ — это последовательность символов, которую можно задать также выражением 42 и.
Каждый элемент типа boolean, char или целое число, кроме наибольшего в своем типе, имеет элемент, следующий за ним, и каждый, кроме наименьшего, — предыдущий перед ним. Например, следующим за false есть true, за chr (0) —chr (1), за chr (254) —chr (255), а предыдущим перед true есть false. Кроме того, элементы этих типов можно пронумеровать последовательными целыми числами.
В языке Паскаль пересчитываемым называется тип, в котором обозначена операции succ (следующий), pred (предыдущий) и ord (порядковый номер). Пересчитываемые типы также называются дискретными.
Операции succ, pred, ord задают в виде вызовов встроенных функций: выражения pred (1), succ (‘ а’) и ord (true) имеют значение, соответственно, 0,’ b’ и 1. Для знаковых числовых типов операцию ord обозначено так, что ord (и) = и, т.е. ord (0) =0,ord(-l) = -1. Во всех пересчитываемых типах обозначено также сравнение =, ОБ, <, >, <=, >=.
Результат применения succ к наибольшему элементу типа и pred к наименьшему зависит от налаживания компилятора.
If you're looking to earn the best possible grade on your research paper, you need…
To write my essay, first you need to think of the major topic of your…
Writing term paper is not a simple endeavor. It involves huge efforts, that need to…
It's possible to purchase term papers and textbooks on the internet at a discount price,…
The main reason essay writing is so powerful is because it's a general subject and…
A couple of years ago I received an email from a student asking for information…