]]> ]]>

Turbo Pascal 5.5

Версия реализации Turbo Pascal языка программирования Pascal

Turbo Pascal 5.5 — версия Turbo Pascal, выпущенная 2 мая 1989 года.

Реализованный язык получил очередное серьезное улучшение — поддержку объектно-ориентированного программирования, включая само понятие класса, статические и динамические объекты, конструкторы, деструкторы и принцип наследования.

Что же до интерфейса, в этой версии он приобрел наконец привычные синие тона и выпадающие меню, использующиеся в более поздних продуктах серии Turbo. Среда разработки впервые предоставила две новые важные возможности — пошаговый отладчик и контекстно-зависимую помощь с описанием всех встроенных функций языка и возможностью копирования фрагментов кода из окна помощи в код разработчика.

Примеры:

Факториал:

Используется рекурсивное определение факториала.

Этот пример работает как в Turbo Pascal, так и в Free Pascal, но с несколько разным результатом. В обеих реализациях возникает арифметическое переполнение при вычислении факториалов 13-16, но Free Pascal сообщает об ошибке:

13! = Runtime error 215 at $004013C7
$004013C7
$00401449
$004063E0

в то время как Turbo Pascal не обнаруживает ошибку и просто выводит неправильные значения:

13! = 1932053504
14! = 1278945280
15! = 2004310016
16! = 2004189184

Следует отметить, что в версиях Turbo Pascal 3.0 и младше этот пример не работает из-за отсутствия типа данных longint.

program factorial;

function fact(n: integer): longint;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n));
end.

Числа Фибоначчи:

Этот пример использует рекурсивное определение чисел Фибоначчи.

program fibonacci;

function fib(n:integer): integer;
begin
    if (n <= 2) then
        fib := 1
    else
        fib := fib(n-1) + fib(n-2);
end;

var
    i:integer;

begin
    for i := 1 to 16 do
        write(fib(i), ', ');
    writeln('...');
end.

Hello, World!:

program helloworld;

begin
    writeln('Hello, World!');
end.

Факториал:

Этот пример работает точно так же, как основной рекурсивный пример для Pascal, но использует тип real для хранения значений факториала. Команда writeln(f:-1:0) выводит дробное число f с 0 цифр после десятичной запятой и выравнивает его по левому краю.

program factorial;

function fact(n: integer): real;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n):-1:0);
end.

В закладки: ]]> Пиктограмма del.icio.us Пиктограмма БобрДобр.ru Пиктограмма Memori.ru Пиктограмма МоёМесто.ru ]]>