// Использование ассоциативного массива Dictionary<string,integer> uses System.Collections.Generic; begin var d := new Dictionary<string,integer>; d['бегемот'] := 2; d['крокодил'] := d['бегемот']; d['крокодил'] += 1; d['жираф'] := 1;
var k: KeyValuePair<string,integer>; foreach k in d do writeln(k.Key:9,k.Value:3); end.
Баннеры
Гостевая книга
Комментарии, пожелания и замечания пользователей
Джон
(ПРОДОЛЖЕНИЕ, Т.К. НЕ ВМЕСТИЛОСЬ В ПРОШЛОЕ СООБЩЕНИЕ)Ошибка при загрузке плагина из Compiler.dll : System.Reflection.ReflectionTypeLoadException: Не удается загрузить один или более запрошенных типов. Обратитесь к свойству LoaderExceptions для получения дополнительных сведений. в System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) в System.Reflection.RuntimeModule.GetTypes() в System.Reflection.Assembly.GetTypes() в VisualPascalABCPlugins.PluginsController.AddPlugins(String DirectoryName)
02.02.2012
Джон
кто знает, что за ерунда. только установил паскаль и сразу в окне "сообщения компилятора" какая то ошибка при загрузке плагина, вот посмотрите всё сообщение
[local]Загружаю ядро... [local]Подключен парсер Documentation Comments Tag Parser v0.9 (PascalABCParser.dll) [local]Подключен парсер PascalABC.NET Language Parser v2.1 (PascalABCParser.dll) [local]Подключен парсер PABCPreprocessor2 v0.1 (PascalABCParser.dll) [local]Подключен парсер (PascalABCParser.dll) [local]Подключено преобразование "Optimizer" [local]Подключены входные языки: [local]Язык PascalABC.NET (*.pas) [local]Готов [pabcnetc.exe]Загружаю ядро... [pabcnetc.exe]Подключен парсер PascalABCParser.dll [pabcnetc.exe]Подключен парсер PascalABCParser.dll [pabcnetc.exe]Подключен парсер PascalABCParser.dll [pabcnetc.exe]Подключен парсер PascalABCParser.dll [pabcnetc.exe]Подключено преобразование "Optimizer" [pabcnetc.exe]Подключены входные языки: [pabcnetc.exe]Язык PascalABC.NET (*.pas) Загружаю плагины... [pabcnetc.exe]Готов InternalError Report Genegator v1.2 PT4 Provider v1.1 При загрузке плагинов произошли ошибки: Ошибка при загрузке плагина из Compiler.dll : System.Reflection.ReflectionTypeLoadException: Не удается загрузить один или более запрошенных типов. Обратитесь к свойству LoaderExceptions для получения дополнительн
02.02.2012
Настя
Помогите Написать алгоритм к заданию Minimax 1.
02.02.2012
Владимир262
Косяк с комментариями внутри комментариев
Например следующая строка не будет компилироваться.
{count:=count+1;{увеличение на 1}}
31.01.2012
Apromix
Здраствуйте! Спасибо за PascalABC.NET. Прикольная система Заинтересовали плагины, их написание. Сколько плагинов существует для среды сейчас и где их взять? Где можно выложить свой плагин, чтобы и другие им пользовались? Спасибо
25.01.2012
miks
1. Сделайте
type TRec = Record name : ShortString; End;
И всё заработает. Читайте документацию. Во Free Pascal устаревшие строки.
2. Доступ к элементам строк через указатель работать не будет. Это - ограничение .NET. Пользуйтесь более высокоуровневыми средствами. Для иллюстрации низкоуровневых используйте Free Pascal или C.
30.12.2011
Boris
Здравствуйте. В PascalABC.NET не компилируется следующий несложный код:
program test;
type
pchar=^char;
var
s:string;
ch:char;
pc:pchar;
begin
readln(s);
pc:=@s[2];{нельзя получить адрес выражения}
ch:=pc^;
writeln(ch);
readln;
end.
В это же время тот же самый код идеально работает в Borland Pascal 7. Надеюсь в дальнейших версиях данный недостаток будет устранен, поскольку он делает нереализуемыми целое множетсво задач на указатели и строки. Спасибо.
23.12.2011
Alexey
Program rec;
type TRec = Record name : String; End;
var f : File of TRec; Begin End.
Должно работать, но выдает ошибку при компиляции
FreePascal не жалуется
20.12.2011
Коваль Александр
Здравствуйте mklokov! Вы спрашивали:
Код: for i:=1 to 3 do begin b:=random; writeln(b:6:4) end; работает.
Код : for i:=1 to 3 do writeln(random:6:4) даёт ошибку компиляции в выделенной строке: "Данный формат вывода может быть применен только к вещественному типу"
Планирую со школьниками проходить функцию random, ожидаю соответствующего вопроса.
Отвечаю. Дело в том, что формат применяют к переменной, а не к функции.
09.12.2011
Коваль Александр
Здравствуйте! Извините за беспокойство и нелепый вопрос. Сам разобрался: для ввода строк нужно писать не
read
а
readln
и все работает.
09.12.2011
Коваль Александр
Вот такая простенькая программка не работает. Первая строка вводится и переход на конец программы. В чем причина?
Здравствуйте! У вас случаем нет решебника для задач в PABC. Хотелось бы проверять правльность написатния алгоритма, а негде.
06.12.2011
miks
Надо дать имя типу массива:
type Arr = array[1..10] of integer;
var a,b: Arr;
Тогда всё будет работать.
25.11.2011
egorka13
Этот фрагмент кода должен копировать случайно сгенерированный массив a в массив b.
var a: array[1..10] of integer;
b: array[1..10] of integer;
begin
for var i := 1 to 10 do
begin
a[i] := Random(10);
end;
b := a;
end.
При попытке его выполнения в WDE компилятор выдаёт ошибку "Нельзя преобразовать тип array [1..10] of integer к array [1..10] of integer".
В справке написано: "Статические массивы одного типа можно присваивать друг другу, при этом будет производиться копирование содержимого одного массива в другой:
a1:=a2;"
Что делать?
25.11.2011
mklokov
Здравствуйте!
Код: for i:=1 to 3 do begin b:=random; writeln(b:6:4) end; работает.
Код : for i:=1 to 3 do writeln(random:6:4) даёт ошибку компиляции в выделенной строке: "Данный формат вывода может быть применен только к вещественному типу"
Планирую со школьниками проходить функцию random, ожидаю соответствующего вопроса.
22.11.2011
miks
Регистрацию исправили
18.11.2011
miks
Регистрацию - в ближайшее время исправим
16.11.2011
Ceridan
Вопрос по регистрации в WDE. Не отображает картинку с проверочным кодом. Пробовал из под разных браузеров, нигде не показывает.
Подскажите пожалуйста, можно ли как-то зарегистрироваться с такой проблемой?
16.11.2011
dima1204123
var fi,fo:text;
a,b:array [1..100]of integer; s,p,i,j:integer; begin assign(fi,'n'); assign(fo,'.\pesok.out.bat'); reset(fi); rewrite(fo); for i:=1 to 3 do read(fi,a[i]); for i:=1 to 3 do read(fi,b[i]); for i:=1 to 2 do for j:=i+1 to 3 do begin if a[i]if b[i]end; s:=0; for i:=1 to 3 do s:=s+a[i]*b[i];writeln(fo,s);close(fo); close(fi);
end.
кокда я создал сам файл я не могу его открытьбвыдает ошибку Ошибка времени выполнения: Файл 'c:\PABCWork.Net\aaa.dat' не найден.
15.11.2011
book
сделайте плиз выделение парных скобок более ярким. очень-очень надо . заранее благодарю
11.11.2011
Деркач Даниил
подскажите пожалуйста: какие адреса оперативной памяти паскаль использует под видео-буфер. хочу использовать его для ускоренмя отрисовки графики в паскале
30.10.2011
Дмитрий Александрович Луи
Здраствуйте не подскажите что за проблема,дело в том что в модуле uses graphabc; не работает процедура SaveWindow выдаёт ошибку даже на такой простой программе:
program test; uses graphabc; begin SaveWindow('1.png'); end.
выдаёт ошибку : ошибка времени выполнения:B GDI+возникла ошибка общего вида.
если запускать не с под оболочки а из системы то ошибка такая
Сигнатура проблемы: Имя события проблемы: CLR20r3 Сигнатура проблемы 01: program2.exe Сигнатура проблемы 02: 0.0.0.0 Сигнатура проблемы 03: 4ea7c0f0 Сигнатура проблемы 04: System.Drawing Сигнатура проблемы 05: 4.0.0.0 Сигнатура проблемы 06: 4ba1e086 Сигнатура проблемы 07: 3c Сигнатура проблемы 08: d2 Сигнатура проблемы 09: AMAG3AACMAWG2XAF344U21ACVE5PSTKL Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Помогите пожалусто.
26.10.2011
Almaz
Ошибка компиляции: Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.IO.DirectoryNotFoundException: Не удалось найти часть пути "C:\PABCWork.NET". в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) в System.IO.Directory.SetCurrentDirectory(String path) в PascalABCCompiler.Compiler.Compile()'
25.09.2011
Almaz
Добрый день! Кто знает как можно прописать в PascalABC.Net путь к задачнику и требуемым компонентам(не компилирует без них). Дело в том, что основная система у меня стоит на диске E, а задачник с модулями прописывается при установке на C. А диска C у меня нет при добавлении харда они смешались и на основной ОС осталась буква E. Я пробовал менять диски(хотя это опасно), в регистре переделывал не нашел пути задачника к диску C. Не хочется ставить два харда или форматировать или виртуальный диск устанавливать. Кто знает скажите пожалуйста, как решить.
25.09.2011
Max97
Добрый день. А есть ли возможность писать UnitTest для программ на PascalABC? Это современная тенденция (TestDrivenDevelopment). Хотелось бы сразу прививать эту практику.
25.09.2011
Orsker
Приятно удивлён Вашей разработкой. Для обучения программированию - самое то! Для более серьёзных работ неплохо было бы увидеть аналог Pascal Server Pages для разных платформ :)
25.08.2011
Фрол
Ещё раз здравствуйте! Поискал информацию самостоятельно и выяснил, что, вроде бы, разрабатывать плагины теоретически могут и сторонние разработчики. Но для этого нужна соответствующая документация! Полноценной документации так и не нашёл. Видел статью "Как создать компилятор", но она не закончена: 3 последних раздела не написаны. Планируется ли опубликовать информацию, которая позволила бы сторонним разработчикам создавать свои компиляторы, интегрированные в среду PascalABC.NET? Заранее благодарю за ответ.
10.08.2011
Фрол
Здравствуйте!
В разделе "Описание языка PascalABC.NET" упоминается поддержка плагинов. Как я понимаю, сторонним разработчикам их разработка недоступна?
10.08.2011
mikst
Регистрация участников открыта.
Просьба задавать последующие вопросы на форуме ИТ в топике:
Когда начнется регистрация участников на конурс Создание игрового приложения в pabc.net? Или организаторы про это дело забыли? Если регистрация уже идет, как это и должно по идее быть, ткните носом где.
25.07.2011
Casey
virtual world, mix911, Сайт выглядит Отлично. Ничего лишнего и со Вкусом, Приятная цветовая тема.
16.07.2011
sniper
нормально сайт выглядит, по сути важна начинка как в той пословице "встречают по одежке, провожают по уму"
10.07.2011
mix911
да, согласен с virtual world, и ещё вам нужны партнёры, требуется продвинуть этот сайт, или создать другой...
07.07.2011
virtual world
не уверен что туда пишу, но почему бы вам не заняться дизайном сайта: выглядит он не профессилнально...
07.07.2011
грэйс
Пожалуста, выпустите в июле новую версию с:
- яркое выделение парных скобок (раньше помнится была);
- по возможности, добавьте лёгкость создания вычислительных (и прочих тоже) готовых программ от языка Бэйсик;
пока всё спасибо жду
07.07.2011
mikst
Регистрация участников конкурса «Создание игрового приложения в среде PascalABC.Net» начнется примерно в середине июня.
20.05.2011
Гусейн
подскажите пожалуйста как здесь зарегистрироваться?
19.05.2011
Аляксей
Написал, посмотрите, пожалуйста
13.05.2011
mikst
Напишите проблему на форуме
13.05.2011
Аляксей
У меня в любой процедуре первый readln (и read) пропускается компилятором, т.е. его просто нет в выполняемой программе.
Что делать?
13.05.2011
mikst
Вызовы функций в константных выражениях запрещены. Представьте:
var a: array [1..Random(100)] of integer;
Или, что еще хуже, там будет стоять функция, написанная Вами.
11.05.2011
tima
ku!
const
v1 = 4;
v2 = round(v1/2);
var
a: array [1..v2] of integer; //ожидалось константное выражение
begin
end.
почему нельзя так?
10.05.2011
hu2
Тем более, мне кажется, что c# легче, чем pascal
03.05.2011
hu2
Все это детская фигня, если хотите писать программы, которые нестыдно запускать, то пишите, например, на visual c#
03.05.2011
Евгений2
Сейчас едет массовый переход на СПО(Линукс) у гос. структур и школ. Вопрос, можно сделать приложения(разработки ПаскалАБС) чтоб запускались в браузере linux (лисы или оперы без разницы). Нужна работа с простами базами из 3-5 таблиц, с выводом и редактированием, поиском в браузере. Среду компиляции и сервер в принципе можно в винде развернуть.... если возможно, то как, дайте ответ на 131516@mail.ru
16.04.2011
Tr0ll
В версии PascalABC.net исчезают такие функции как Readkey и Keypressed...
Как же делать чтоб программа во время цикла реагировала на нажатие клавиши?
26.03.2011
KenGOoOo
Хотелось бы,что бы в модуле CRT работали объявленные ранее процедуры по изменению окна,прокрутки.
В первом случае окно увеличивается,но рабочая часть остается прежней.
Спасибо.)
21.03.2011
Scout
Подскажите пожалуйста как быть!
Описание: ProcVars.pas(6) : Ошибка времени выполнения: Система конфигурации не прошла инициализацию
Фаил: ProcVars.pas
19.03.2011
ua3rad
Где найти описание модуля FormsABC!
15.03.2011
mikst
При вызове используется запятая, при описании - точка с запятой. всё правильно.
Сообщение об ошибке - компилятор не знает смысл assign, поэтому считает, что там может быть ).
Пишите правильно :)
23.02.2011
Тимур
В справке написанно: Assign(f: FileType; name: string);
Если написать например:
s1: file of integer;
...
assign(s1;'C:\PABCWork.NET\s1.save'); пишет что после s1 ожидалось ')' Если использовать запятую все прекрасно работает. Исправьте. И еще в справке написанно procedure readln(f: Text; a,b,...); Тот же случай... с запятой не работает. Не знаю как быть не удается считать из файла. Reset(s1) сделал.
21.02.2011
Безимени
Большое спасибо за Ваш труд ! Учить информатику стало куда как проще и интереснее.
12.01.2011
daesher
2 MozG
Строка имеет переменный размер, файл бы содержал не сами строки, а какие-то ссылки на них (думаю, Вам это не надо?)
Попробуйте так:
[code]
type uchenik = record n:shortstring; f:shortstring; k:integer; p:char; end;
my_file = file of uchenik; [/code]
06.01.2011
MozG
Проблемка с программкой. Нельзя работать с типизированными файлами записей.
Вот пример:
type uchenik = record n:string; f:string; k:integer; p:char; end;
my_file : file of uchenik;
Ругается: Типизированый файл не может содержать элементы такого типа.
Засада
06.01.2011
mikst
Да, исправили ошибку с простыми числами :)
13.12.2010
nord777
Pascal - это круто, сам начинал с Turbo Pascal.
Желаю всем новичкам удачи!!!
10.12.2010
nord777
Как мне кажится слишком громкий слогон сайта "обучениие современному программированию" слово современному можно зачеркнуть, будет правильнее
Предлагаю новый слоган:
PascalABC.NET Обучение современному программированию
10.12.2010
nord777
Ошибка в случайной программе "// Функция определения
// простоты числа".
1 - не относится к простым числам
10.12.2010
Степан
было бы хорошо добавить функцию печати кода.
09.12.2010
mikst
Например, как-то так:
{$reference 'System.Management.dll'}
uses System.Management;
begin var s := new ManagementObjectSearcher('SELECT * FROM Win32_DiskDrive'); foreach m: ManagementObject in s.Get() do writeln(m['Signature'].ToString()) end.
27.11.2010
Сафонов Анатолий
Добрый день.
PascalABC получил большую популярность в Беларуси. Учебники информатики "подогнали" под систему программирования PascalABC. Среда программирования PascalABC позволяет меньшими усилиями создавать неплохие программы и развивать алгоритмизацию. Меня интересуют, например, реализация некоторых системных функций, в частности, чтение серийного номера носителя информации. Как это реализуется на PascalABC? Заранее спасибо.
sad-bel@tut.by
Республика Беларусь
21.11.2010
mikst
А разве где-то было задумано иначе?
06.11.2010
TriniT
а так и было задумано, что в версии 1.5 синусы и косинусы по умолчанию считает в радианах??
04.11.2010
offside
Молодцы. Я и не знал о таком проекте. Случайно видеоурок смотрел по паскалю решил зайти. И не жалею теперь об этом.
31.10.2010
mikst
А какого характера видеоуроки Вас интересуют?
26.10.2010
baby
Писать программы видимо удобно! Однако у меня есть к вам пожелание, выпустить на свет полноценное учебное издание по работе в среде pascalabc.net, а также если можно организовать определённого характера видеоуроки, хотя бы и в режиме онлайна! Спасибо за внимание!
26.10.2010
mikst
Трудно сказать. Видимо, это особенность конкретного компьютера. А какая версия Windows?
25.10.2010
ната
почему в Справке не отображаются картинки .gif, .png...?
например в описании модуля Graph
Пробовала устанавливать разные версии
25.10.2010
mikst
Сами не знаем - вроде никогда ничто не ограничивало. Пишите по частям - если что - сольём
11.10.2010
Хм-м...
А у вас на объем сообщения в гостевой какое ограничение?
05.10.2010
Beltar
Вообще все это вызывает у меня ряд философских вопросов. Во-первых, я твердо убежден в том, что никакого специального языка для обучения быть не должно. Если язык труден для понимания в учебе, то, скорее всего, он и в серьезной работе будет вызывать множество проблем. C/C++ прекрасная иллюстрация к этому.
С другой стороны, я сам учился кодить на BP 7.1 с BC 3.1, и мне самому тогда было бы просто замечательно иметь подобный инструмент. Все-таки само по себе программирование начинается не с ООП, которое я сам для себя расшифровываю как "Объектно ориентированное проектирование", а со старого доброго структурного программирования алгоритмов. По сути любой программист большую часть времени занят именно структурным программированием внутренностей функций. Показать основы этого увлекательного занятия действительно проще на PascalABC, чем на Delphi, где даже для простейшего приложения надо создавать отдельный проект. А чтобы воспользоваться плюсами VCL надо опять-таки бросать на форму компоненты и объяснять, что бросьте на форму кнопку, которую взять оттуда-то, а потом 2 раза щелкнуть по н
05.10.2010
mikst
Цитата Algo
Разработчики - молодцы, проделали большой объём работы.
Только возникает серьёзный вопрос. В чём заключаются значительные особенности, отличия языка PascalABC ну, скажем от C#? Объявление переменных внутри блока, описание методов внутри записей, форма записи оператора new, модификатор internal, операторы +=, и т.п. - всё совпадает с C#. Остались косметические отличия, типа: begin ... end вместо { ... }, var i: integer вместо int i и т.д., плюс незначительная простота при написании самых простейших программ.
Получаем клон/аватар/аналог C# со всеми его плюсами и минусами, чуть более подходящий для начального обучения.
В чём же соль (идеология) проекта?
Итак, в чем соль. Говоря коротко: PascalABC.NET - аналог языка Delphi с простой и бесплатной средой разработки, ориентированной прежде всего на обучение. Мы очень педантично реализовали почти все конструкции Delphi Object Pascal, исключая лишь наиболее специфические для Delphi.
Вторая сторона PascalABC.NET - использование всех библиотек .NET и совместимость с .NET-языками.
Значительных особенностей, наверное, нет: это просто современный язык Object Pascal, очень близкий к Delphi, с возможностью свободного использования .NET-библиотек и качественной простой оболочкой. Если Вы программируете на Паскале, то PascalABC.NET - хороший выбор. Для обучения предоставляется несколько графических библиотек, пара школьных исполнителей и уникальный электронный задачник с возможностью самому разрабатывать автоматически проверяемые задания. Разве этого мало? Где Вы видели аналог такой среды, тем более сделанной с чистого листа?
Представление о PascalABC.NET как о клоне C# неверно и вытекает из внешнего сходства немногих конструкций: += (есть во Free Pascal), методы внутри записей (уже есть в современном Delphi), описание переменных внутри блока (очень востребовано при обучении, соблюдает принцип локальности и препятствует созданию длинного списка глобальных переменных), new в качестве вызова конструкторов воспринимается гораздо легче и присутствует в Delphi Prism, обобщенные классы (которые есть в .NET) были сделаны вначале в PascalABC.NET и лишь потом (в 2008 г.) появились в Delphi. Ну а то, что все типы - классы - это во всём .NET так - было бы странно запрещать.
Вообще, один из разработчиков языка C# проектировал в свое время Delphi, так что немудрено, что C# похож на Delphi. Но никак не наоборот.
На языке Pascal наработана масса методик начального обучения программированию, мы лишь предоставляем дополнительные средства, присущие множеству современных языков. То, что эти средства есть и в C#, говорит лишь о том, что C# - современный язык.
Если Паскаль лишь чуть более пригоден для начального обучения, чем C#, то учите на C#. Но уже в первой программе Вам потребуется рассказать, что такое
классы
функции
статические методы
пространства имен
подключение пространств имен
точечная нотация
тип void
тип string
тип string[]
За одно занятие мы такого делать не умеем. Потому и создали PascalABC.NET.
Теперь еще раз о соли. Соль проста: если используете Pascal для обучения, то выбирайте PascalABC.NET - он бесплатен, современен, непрерывно развивается, имеет простую русскую оболочку и позволяет использовать все .NET-библиотеки.
20.07.2010
ibond
PascalABC.NET со звуками работать умеет:
uses System.Media; begin var player := new SoundPlayer('c:\PABCWork.NET\test.wav'); player.Play; end.
15.07.2010
Shen
Я бы хотел, чтобы pascalABC.net поддерживал работу со звуками, а также модуль VCL был такой же, как и в PascalABC
07.07.2010
Algo
Разработчики - молодцы, проделали большой объём работы.
Только возникает серьёзный вопрос. В чём заключаются значительные особенности, отличия языка PascalABC ну, скажем от C#? Объявление переменных внутри блока, описание методов внутри записей, форма записи оператора new, модификатор internal, операторы +=, и т.п. - всё совпадает с C#. Остались косметические отличия, типа: begin ... end вместо { ... }, var i: integer вместо int i и т.д., плюс незначительная простота при написании самых простейших программ.
Получаем клон/аватар/аналог C# со всеми его плюсами и минусами, чуть более подходящий для начального обучения.
В чём же соль (идеология) проекта?
03.07.2010
mikst
Всё верно. Вы выводите данные в неправильном порядке.
Пишет что решение являеься не правильным хотя решение правильное. Нет проверки по условию.
05.06.2010
Flex24
Спасибо,сайт хороший. Очень помогает мне в учебе. Хотелось бы чтобы в разделе "Примеры программ" появились программы по работе с файлами.
23.05.2010
SSM
Примерно так:
uses System.IO;
procedure PrintFileTree(path,mask: string); begin var d := new DirectoryInfo(path); writeln('--',d.FullName); foreach fi: FileInfo in d.GetFiles(mask) do writeln(fi); foreach di: DirectoryInfo in d.GetDirectories do PrintFileTree(di.FullName,mask); end;
begin PrintFileTree('.','*.*'); end.
20.05.2010
Прохор
Подскажите, пожалуйста, как на PascalABC.Net сделать эффективный обход дерева каталогов.
19.05.2010
SSM
Спасибо за критику терминологии.
Пишите на форуме - в формате Гостевой книги невозможно обсуждать.
09.05.2010
Критика терминологии
Delphi Pascal - не существует такого языка программирования
Текущая релизация назывется "язык Delphi" (раньше это были Turbo Pascal, Borland Pascal, Object Pascal и Object Pascal 2.0)