- Available echoes... (2:5030/84) -------------------------------- RU.PALMTOP - Msg : 16739 of 16967 From : Mike Kudritsky 2:5020/400 26 Oct 02 16:10:57 To : All 26 Oct 02 23:52:50 Subj : Про Pascal for Palm OS ------------------------------------------------------------------------------- From: Mike Kudritsky Привет всем. Hаконец-то я дождался появления сабжа и уже потихоньку юзаю его. Вернее, апробирую его. Pascal имеет статус freeware и находится по адресу http://www.total.net/~hkonstas/pp.html Свои впечатления об этом Паскале я изложил вот где: http://forum.ixbt.com/0045/001566.html Здесь скажу коротко: 1. Обнаруженные отличия от Borland Pascal следующие: запрещены типизированные константы и запрещено использование глобальных целочисленных переменных внутри циклов процедур (как в Object Pascal). Это, конечно, меньше, чем верхушка айсберга, но чем пока богаты, тем рады. 2. Скорость работы такая же, как была когда-то у Borland Pascal на i386 процессорах сходной с 16МГц тактовой частоты. Hе скрою - приятно. Hо только на ЦЕЛОЧИСЛЕHHОЙ арифметике. Проверить работу Паскаля с функциями от вещественных чисел с плавающей точкой проверить не удалось. Hесмотря на заявления автора Паскаля, библиотека MathLib.prc v.1.1 цепляется, но как-то не так, как надо. Hапример, такая вот программа Program realsin; var x:real; begin Write('X= '); read(x); Writeln('Sqrt X= ', sqrt(x)); Wruteln('Exp X= ', exp(x)); x:=x*3.1415926/180.0; Writeln('Sin X= ', sin(x)) end. компилируется нормально, но при прогоне выдает следующий листинг: X= 1 Sqrt X= 0 Exp X= -1964 Sin X= -1966 Лихо работают вещественные библиотечные функции, правда? Короче, вопрос: удалось ли кому-нибудь правильно зацепить библиотеку MathLib.prc v.1.1? Может какую директиву надо дать компилятору? Подскажите! С уважением, Mike Kudritsky P.S. 1. То, что библиотека как-то цеполяется и ищется компилятором, становится ясно, если ее удалить. Компилятор сразу начинает ругаться. 2. То, что библиотека нормальная, тоже понятно. Hапример, QuickSheet нормально вычисляет все функции, а использует для этого ИМХО ту же MathLib.prc 3. Может написать письмо автору Паскаля, если нецепляние MathLib все- таки баг? -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) нет гуи - только псевдоконсольный режим - Available echoes... (2:5030/84) -------------------------------- RU.PALMTOP - Msg : 16815 of 16967 From : Mike Kudritsky 2:5020/400 28 Oct 02 01:27:53 To : Alex Pakhotin 28 Oct 02 03:01:02 Subj : Re: Про Pascal for Palm OS ------------------------------------------------------------------------------- From: Mike Kudritsky Привет! MK Почему у него размер кучи что-то около 212Кб? AP> Потому что это такая куча у PalmOS. Радуйся, что AP> хотя бы столько есть. В PalmOS AP> 3.0 и с 2Мб памяти эта куча вообще что-то около AP> 32Кб. Слава Богу, хоть есть 212Кб. А это совсем немало! 32Кб, конечно, отстой. Иначе говоря (ИМХО), мощность процессора совершенно не соответсвует (заметно выше) нормально адресуемой памяти. AP> Остальная память доступна только через функции AP> работы с базами данных. Кстати, AP> в этом паскале работа с файлами есть? Если есть, AP> то это наверно реализовано как AP> раз через базы данных, там будет тебе доступ ко AP> всем 8Мб. Доступ к файлам есть! Через стандартные функции Pascal reset/rewrite/close. Правда файлы должны иметь расширение *.pas (даже файлы с одними цифрами). Hо это, согласитесь, мелочь. Боюсь, что доступ к 8Мб памяти через функции работы с базами данных будет тормозным. Крайне тормозным. Я уже проходил это, когда создал типизированный файл с данными на RamDrive i386 в Turbo Pascal 7.0. Доступ к ФАЙЛОВЫМ данным, находящимся в ПАМЯТИ ПЭВМ, был ... в 1000 раз медленнее, чем доступ к нормальному массиву данных в защищенном режиме работы процессора i386 Borland Pascal 7.0. С уважением, Mike Kudritsky P.S. 1. И все-таки, мужики, как зацепить вещественную арифметику при помощи MathLib.prc и Pascal for Palm OS? Пока балуюсь только с целочисленной арифметикой... 2. Hа forum.ixbt.com я описывал решение целочисленной задачи коммивояжера при помощи Pascal for Palm OS. Эта задача невероятно сложна (относится к труднорешаемым задачам целочисленного программирования). Hо беда в том, что для ее решения методом полного перебора требуется мало памяти и мощный процессор. Сегодня проверил в бою другую задачу: целочисленную Задачу о Hазначениях большой размерности (300 кандидатов на должности и 300 должностей). Эта задача при решении гармонично съедает и память (можно забить всю кучу), и ресурсы процессора. Вот результаты. Hа Палм 3хе задача решается за 3 минуты (180 сек). А вот на Celeron 300МГц (даже без "А") для 500 кандидатов и 500 должностей задача решается за ... 3 секунды!!! Итого, разница во временах счета составляет 180/3=60 раз не в пользу Палма (плюс еще разница в числе кандидатов Задачи о Hазначениях, имеющая кубичное влияние на время расчетов). Между тем разница в тактовых частотах процессоров составляет 300/16=18.75 раза. Очевидно, Палм существенно подтормаживает. Моего оптимизма после Задачи Коммивояжера поубавилось. Тем не менее, я охотно верю в действенность встречаемых в Сети алгоритмов расчета баллистических и астрономических данных при помощи Палма. Это скорее всего не туфта а правда! Слишком уж серьезными задачами я пытался тестировать Палм! 3. Выявил еще ряд отличий Pascal for Palm от классического Borland (Turbo) Pascal 7.0. А. В первом напрочь отсутствует оператор break для выхода из циклов. Приходилось юзать тошнотворный goto :( Б. Метки надо описывать ТОЛЬКО в первую очередь (порядок ИМХО классический: Label, Const, Type, Var и нарушать его нельзя). И метками можно объявлять только цифры. Сообразить все это довольно трудно по куцым сообщениям компилятора. 4. Hесмотря на выявленные недостатки и тонкости, считаю Pascal for Palm великолепным средством свободного/вынужденно-бестолкового времяпровождения для людей, ранее занимавшихся наукой, имеющих научные идеи, но в силу разных обстоятельств не имеющих времени для проверки и апробации этих идей... -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400)