W Cat - Описание языка PascalABC.NET
- Название:Описание языка PascalABC.NET
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Описание языка PascalABC.NET краткое содержание
PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.
Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
word
integer
integer
integer
integer
integer
longword
int64
uint64
BigInteger
single
real
integer
integer
integer
integer
integer
integer
int64
int64
uint64
BigInteger
single
real
longword
int64
longword
int64
longword
int64
longword
uint64
uint64
BigInteger
single
real
int64
int64
int64
int64
int64
int64
uint64
int64
uint64
BigInteger
single
real
uint64
uint64
uint64
uint64
uint64
uint64
uint64
uint64
uint64
BigInteger
single
real
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
BigInteger
-
-
single
single
single
single
single
single
single
single
single
-
single
real
real
real
real
real
real
real
real
real
real
-
real
real
То есть, если операнды - целые, то результатом является самый короткий целый тип, требуемый для представления всех получаемых значений.
При выполнении бинарной операции с uint64 и знаковым целым результирующим типом будет uint64, при этом может произойти переполнение, не вызывающее исключения.
Для операции / данная таблица исправляется следующим образом: результат деления любого целого на целое имеет тип real.
Для операций divи modвыполняются эти же правила, но операнды могут быть только целыми. Правила вычисления операций divи mod- следующие:
x divy - результат целочисленного деления x на y. Точнее, x divy = x / y, округленное до ближайшего целого по направлению к 0;
x mody - остаток от целочисленного деления x на y. Точнее, x mody = x - (x divy) * y.
Унарная арифметическая операция + для любого целого типа возвращает этот тип. Унарная арифметическая операция - возвращает для целых типов, меньших или равных integer, значение типа integer, для longword и int64 - значение типа int64, к uint64 унарная операция - не применима, для типов single и real - соответственно типы single и real. То есть так же результатом является самый короткий тип, требуемый для представления всех получаемых значений.
Логические операции
К логическим относятся бинарные операции and, orи xor, а также унарная операция not, имеющие операнды типа boolean и возвращающие значение типа boolean. Эти операции подчиняются стандартным правилам логики: a andb истинно только тогда, когда истинны a и b, a orb истинно только тогда, когда истинно либо a, либо b, a xorb истинно только тогда, когда только одно из a и b истинно, nota истинно только тогда, когда a ложно.
Выражения с andи orвычисляются по короткой схеме :
в выражении x andy если x ложно, то все выражение ложно, и y не вычисляется;
в выражении x ory если x истинно, то все выражение истинно, и y не вычисляется.
Побитовые операции
К побитовым относятся бинарные операции and, or, not, xor, shl, shr. Они производят побитовые манипуляции с операндами целого типа. Результирующий тип для and, or, xorбудет наименьшим целым, включающим все возможные значения обоих типов операндов. Для shl, shrрезультирующий тип совпадает с типом левого операнда, для not- с типом операнда.
Побитовые операции осуществляются следующим образом: с каждым битом (0 принимается за False, 1 - за True) производится соответствующая логическая операция. Например:
00010101 and00011001 = 00010001
00010101 or00011001 = 00011101
00010101 xor00011001 = 00001100
not00010101 = 11101010
(операнды и результат представлены в двоичной форме).
Операциии shl и shr имеют вид:
a shl n
a shr n
где n - целое положительное число, a - целое число.
a shl n представляет собой целое положительное, полученное из двоичного представления числа a сдвигом влево на n позиций. Добавляемые справа позиции заполняются нулями.
a shr n представляет собой целое положительное, полученное из двоичного представления числа a сдвигом вправо на n позиций.
Например:
3 shl 2 = 12
12 shr 2 = 3
поскольку 3=11 2, после сдвига влево на 2 позиции 11 2преобразуется в 1100 2=12, а 12=1100 2после сдвига вправо на 2 позиции преобразуется в 11 2=3.
Операции сравнения
Операции сравнения <, >, <=, >=, =, <> возвращают значение типа boolean и применяются к операндам простого типа и к строкам.
Операции = и <> также применяются ко всем типам. Для размерных типов по умолчанию сравниваются значения, для ссылочных типов - ссылки. Можно переопределить это поведение, перегрузив операции = и <>. Аналогично можно перегрузить все операции сравнения для типов записей и классов, вводимых пользователем.
Строковые операции
К строкам применимы все операции сравнения <, >, <=, >=, =, <>. Сравнение строк на неравенство осуществляется лексикографически: s1 < s2 если для первого несовпадающего символа с номером i s1[i]
Кроме этого, к строкам и символам применима операция конкатенации (слияния) +, ее результат имеет строковый тип.
Например, 'a'+'b'='ab'.
К строкам также применима операция +=:
s += s1; // s := s + s1;
Строка может складываться с числом, при этом число предварительно преобразуется к строковому представлению:
s := 'Ширина: '+15; // s = 'Ширина: 15'
s := 20.5+''; // s = '20.5'
s += 1; // s = '20.51'
Над строками и целыми определена операция *: s*n и n*s означает строку, образованную из строки s, повторенной n раз:
s := '*'*10; // s = '**********'
s := 5*'ab' // s = 'ababababab'
s := 'd'; s *= 3; // s = 'ddd'
Операции с указателями
Ко всем указателям применимы операции сравнения = и <>.
К типизированным указателям применима операция разыменования ^: если p является указателем на тип T, то p^ - элемент типа T, на который указывает p. Указатели pointer разыменовывать нельзя.
Операции с множествами
К множествам с базовыми элементами одного типа применимы операции + (объединение), - (разность) и * (пересечение), а также операторы +=, -= и *=:
vars1,s2,s: set ofbyte;
begin
s1 := [1..4];
s2 := [2..5];
s := s1 + s2; // s = [1..5]
s := s1 - s2; // s = [1]
s := s1 * s2; // s = [2..4]
// s += s1 эквивалентно s := s + s1
Читать дальшеИнтервал:
Закладка: