Turbo Pascal 5.5
Версия реализации Turbo Pascal языка программирования PascalTurbo 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.
Комментарии
]]>blog comments powered by Disqus
]]>