Component Pascal
Диалект языка программирования OberonС 1993 г. ученики Н. Вирта осуществляют успешный перенос технологий Оберона на наиболее популярные платформы Microsoft Windows, Apple Mac OS … В 1997 г. компания Oberon microsystems, Inc., отпочковавшаяся от ETH, сделала небольшие добавления к Oberon-2. При этом язык получил название Component Pascal (Компонентный Паскаль), чтобы подчеркнуть как прямую преемственность со всемирно известным Паскалем, так и ориентированность на поддержку современного компонентно-ориентированного программирования.
Примеры:
Hello, World!:
Пример для версий gpcp 1.3.4-JVM, gpcp 1.3.4-NET 1.1, gpcp 1.3.9-NETMODULE Hello;
IMPORT CPmain, Console;
BEGIN
Console.WriteString("Hello, World!");
END Hello.
Hello, World!:
Пример для версий BlackBox Component Builder 1.5О том как запустить программу на выполнение — см. Как запустить Блэкбокс и выполнить первую программу. Для запуска после конца описания модуля добавляется строка с коммандером и действием Hello.Do (см. скриншот). При нажатии на коммандер действие выполняется.
MODULE Hello;
IMPORT StdLog;
PROCEDURE Do*;
BEGIN
StdLog.String("Hello World");
END Do;
END Hello.
Запуск программы в BlackBox
Факториал:
Пример для версий BlackBox Component Builder 1.5Используется рекурсивное определение факториала.
О том как запустить программу на выполнение — см. Как запустить Блэкбокс и выполнить первую программу.
MODULE Example;
IMPORT StdLog;
PROCEDURE factorial(n: INTEGER): LONGINT;
BEGIN
IF n = 0 THEN
RETURN 1;
ELSE
RETURN n * factorial(n-1)
END;
END factorial;
PROCEDURE Do*;
VAR
n: INTEGER;
BEGIN
FOR n := 0 TO 16 DO
StdLog.Int(n);
StdLog.String('! = ');
StdLog.Int(factorial(n));
StdLog.Ln;
END;
END Do;
END Example.
Факториал:
Пример для версий gpcp 1.3.4-JVM, gpcp 1.3.4-NET 1.1, gpcp 1.3.9-NETИспользуется рекурсивное определение факториала.
MODULE Example;
IMPORT CPmain, Console, RTS;
VAR
n: INTEGER;
s: ARRAY 15 OF CHAR;
PROCEDURE factorial*(n: INTEGER): LONGINT;
BEGIN
IF n = 0 THEN
RETURN 1;
ELSE
RETURN n * factorial(n - 1)
END;
END factorial;
BEGIN
FOR n := 0 TO 16 DO
Console.WriteInt(n, 2);
Console.WriteString('! = ');
RTS.LongToStr(factorial(n), s);
Console.WriteString(s);
Console.WriteLn;
END;
END Example.
Числа Фибоначчи:
Пример для версий BlackBox Component Builder 1.5Используется рекурсивное определение чисел Фибоначчи.
MODULE Fibonacci;
IMPORT StdLog;
PROCEDURE fibonacci(n: INTEGER): INTEGER;
BEGIN
IF n < 3 THEN
RETURN 1;
ELSE
RETURN fibonacci(n-1)+fibonacci(n-2)
END;
END fibonacci;
PROCEDURE Do*;
VAR
n: INTEGER;
BEGIN
FOR n := 1 TO 16 DO
StdLog.Int(fibonacci(n));
StdLog.String(', ');
END;
StdLog.String('...');
StdLog.Ln;
END Do;
END Fibonacci.
Fibonacci.Do
Комментарии
]]>blog comments powered by Disqus
]]>