Extended Pascal
Диалект языка программирования PascalДиалект языка Pascal, определенный в стандарте ISO 10206 (1990 год).
Отличия от Standard Pascal:
-
добавлены операторы
**
(возведение в степень),><
(симметричная разность) и=>
(переименование переменных при импорте/экспорте). -
добавлены ключевые слова
AND_THEN, BINDABLE, EXPORT, IMPORT, MODULE, ONLY, OR_ELSE, OTHERWISE, POW, PROTECTED, QUALIFIED, RESTRICTED, VALUE
(относящиеся в основном к модульности и сокращенному вычислению логических выражений). - модульность и раздельная компиляция. Каждый модуль экспортирует интерфейс, делающий ряд сущностей из этого модуля доступными из других модулей.
- схемы — коллекции похожих типов.
- расширенные возможности работы со строками.
- связанные переменные.
- работа с файлами по прямому доступу, возможность дописывать данные в конец существующего файла.
- константные выражения.
- конструкторы для составных типов данных (массивов, множеств и записей).
- обобщенные результаты функций.
- возможность задавать начальное значение переменной.
- ослабление ограничений на порядок объявления элементов программы.
- запрос типа: переменную или параметр можно объявить как имеющую тип другой переменной.
-
константы
maxchar, minreal, maxreal
иepsreal
дают информацию об особенностях реализации типовchar
иreal
. -
изменение формата оператора
case
: варианты могут быть диапазонами значений,otherwise
описывает все значения, не заданные явно. -
расширение возможностей структуры данных множество: симметричная разность
><
, количество элементовcard
, циклfor
для итерации по всем элементам. -
тип данных
TimeStamp
и функции для работы со временем. - стандартный ввод числовых данных.
- представление чисел, отличное от десятичного.
-
в названиях переменных может использоваться нижнее подчеркивание (
_
). -
в параметрах функции
write
ширина полей может быть нулевой. -
процедура
halt
останавливает выполнение программы. - комплексные числа.
- сокращенное вычисление логических выражений.
-
параметры
protected
(не могут изменяться внутри функции). -
возведение в степень (
**
иpow
). - совместимые массивы.
Примеры:
Квадратное уравнение:
Пример для версий Free Pascal 2.2.0, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 6.0, gpc 20070904В Pascal есть встроенный комплексный тип данных complex
, но команда writeln
не работает с ним напрямую (только через функции Re
и Im
), поэтому существенного удобства от его использования нет. Вычисления проводятся в типе real
. Библиотечная функция halt
, введенная в Extended Pascal, позволяет выйти из текущего блока (в более поздних версиях заменена на exit
).
program Quadratic;
var
A,B,C,D: integer;
begin
write('A = ');
readln(A);
if (A=0) then
begin
writeln('Not a quadratic equation.');
halt;
end;
write('B = ');
readln(B);
write('C = ');
readln(C);
D := B*B-4*A*C;
if (D=0) then
begin
writeln('x = ',-B/2.0/A);
halt;
end;
if (D>0) then
begin
writeln('x1 = ',(-B+Sqrt(D))/2.0/A);
writeln('x2 = ',(-B-Sqrt(D))/2.0/A);
end
else
begin
writeln('x1 = (',-B/2.0/A,',',Sqrt(-D)/2.0/A,')');
writeln('x2 = (',-B/2.0/A,',',-Sqrt(-D)/2.0/A,')');
end;
end.
Комментарии
]]>blog comments powered by Disqus
]]>