]]> ]]>

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

]]>

Работа программистам