Название: Programming Отправлено: WinKiller от 07 Марта 2002, 20:09 Пишу все на Делфях и Си
-------------------- Недорого (http:////forum.murman.ru/images/smilies/smile.gif) Быстро Качественно -------------------- Вопросы -> в мыло Название: RE: Programming Отправлено: Аспирант Василий от 29 Марта 2002, 10:55 WinKiller >>
А ник зачем такой? Кстати, разве не сложно использовать два противоречивых языка - ObjectPascal и C(с плюсами или без) Название: Programming Отправлено: Never от 17 Апреля 2002, 13:44 Аспирант Василий >> Хороший программист должен знать как минимум 2 языка программирования. (исключая родной и иностранные!)
Название: Programming Отправлено: WinKiller от 18 Апреля 2002, 21:20 Аспирант Василий, #2 >>
Какой есть... Не сложно, а языки - почти одинаковые... Название: Programming Отправлено: JBee от 22 Апреля 2002, 09:46 WinKiller >>
Нда... Судя по ответу, программер ты просто дикий! Название: Programming Отправлено: WinKiller от 24 Апреля 2002, 15:13 JBee, #5 >>
Cудя по нику, ты пчела с о.Ява... (http:////forum.murman.ru/images/smilies/smile.gif) Ну что же, приятно, что насекомые интересуются программингом (http:////forum.murman.ru/images/smilies/smile.gif) Я говорю не о синтаксисе, а о самой философии объектно-ориентированного программирования. Согласись, и в Си, и в Паскале она присутствует - это и роднит эти, казалось бы, непохожие языки. Оба - высокого уровня, объектно-ориентированные и т.д. ИМХО - если умеешь писать на одном, то на другом - без проблем, главное - не писать := в Си и == в Паскале (http:////forum.murman.ru/images/smilies/smile.gif) Название: Programming Отправлено: JBee от 27 Апреля 2002, 09:59 WinKiller, #6 >>
Ну, во-первых я не пчела, а шмёль, а во-вторых, я не с острова Ява, а из Джунглей. Jungle-Bee, прошу любить и жаловать. Эта ошибка еще простительна (хотя мог бы и догадаться), а насчет остального... пожалуй, можно и поспорить. Я видел людей, помежанных на Builder'е, они творили просто невероятные вещи с OpenGL, писали всякую системную гадость на WinAPI, разные сетевые клиент-серверные приложения, но просто входили в ступор при виде Delphi. При мне человек получил письмо от какого-то зарубежного разработчика с ответом на какой-то вопрос по Netware (он писал программу, отслеживающую пользователей сети с возможностью удаленного доступа на любой из хостов). Ответ пришел на Delphi, и хотя Паскаля там было минимум, в основном какие-то системные функции и процедуры, он парился как последний чайник, ковыряя этот текст. И такая ситуация не единственная. Есть люди, серьезно работающие на Delphi, но посади ты их на какой-нибудь WatcomC, они не смогут даже текстовый редактор написать. Так что, напрашивается вывод: как бы ты хорошо не знал суть ООП, но без синтаксиса ты дальше MDIApplication не уедешь. Кстати, раз ты так хорошо пишешь, как ты утверждаешь "все на Делфях и Си", ответь ка мне на простенький вопрос: что можно написать на С, и нельзя на Delphi? Хотя бы один примерчик! Название: Programming Отправлено: Аспирант Василий от 29 Апреля 2002, 13:25 WinKiller, #6 >>
Разница, все-таки, более существенная. Фигурные скобки и т.п. Плюс эти хедеры вместо модулей. Итд итп. Да и скорость компиляции под си бесит. Кстати, гляньте мой RED - http://www.ussr.to/Russia/vvi/red.tgz. Правда, для Kylix, но должен пойти в Делфях 6. С минимумом переделок - в других! Название: Programming Отправлено: Never от 29 Апреля 2002, 13:51 Аспирант Василий, #8 >> С и С считаются языком программирования для профессионалов, да и поклонников этого языка больше, нежели у Паскаля (и его родственников). Если не брать в расчет синтаксис, то разница не такая уж и большая (как между собакой и котом).
Название: Programming Отправлено: Аспирант Василий от 30 Апреля 2002, 09:54 Never, #9 >>
Мало ли что считается. Про поклонников - это еще вопрос (см. Download.ru). А про си с плюсами я вот что скажу: если файл в 200 килобайт компилируется больше минуты, то зачем такой компилятор? Естественно, разница (кроме синтаксиса) небольшая - откуда ей быть-то? Только... Язык С - неоднозначный, непонятный язык (не мое мнение). Про С-билдер - вообще что это за уродство? Это - вторичный С, через тот же Паскаль, тогда как по своей структуре С более низкого уровня и более машинно зависим, чем Паскаль. Да, еще Паскаль более строгий - если уж действительно надо преобразовать тип, это сделать можно, а если по ошибке что-то не то сделал, компилятор сразу скажет. В С этого нет - и возможны десятки глупостей, которые придется ловить уже в работающей программе. Еще. Программа на Паскале самодостаточна. Для С надо писать makefile или скрипт (такое можно сделать и для Паскаля, но НЕ НУЖНО), т.е. нужно знать хотя бы еще один язык, нужно знать тонкости вызова компилятора и линкера. А вообще - слишком разная идеология. Название: Programming Отправлено: WinKiller от 23 Мая 2002, 20:53 JBee, #7 >>
Такого просто нет... Абсолютно одинаковые возможности, просто в Си проще делается одно, а в Делфах - другое... Название: Programming Отправлено: Baby от 25 Мая 2002, 04:38 Паскаль - для реализации пробной алгоритмов, когда надо только их проверить, он для этого подходит лучше всего, С для всего остального, я хоть и в 9ом классе но пишу только на си, и разницу между ними вижу немаленькую
Название: Programming Отправлено: Аспирант Василий от 25 Мая 2002, 13:29 >>С для всего остального
Если У Вас большое желание ждать, пока 200кб файл откомпилирует С минуты (на Паскале - секунды и меньше), то пожалуйста. Название: Programming Отправлено: Andrews от 08 Июля 2002, 14:31 Спасибо...
Название: Programming Отправлено: Baby от 11 Июля 2002, 03:34 Пусть каждый пишет на чём хочет, но в С благодаря так называемой "неоднозначности", появляеться большая гибкость, чем в паскале, и более красивый код, да и в сях, по-моему, удобней значительно работать с памятью чем в Пасе, к примеру, DLL, которую я щас пишу, синтаксически анализирует строки, а потом вызывает необходимые функции с аргументами разных типов, и процесс конвертации типов занимает всего две инструкции! Я просто в функции передаю обычный указатель на войд, а потом уже копирую в необходиму переменную в самой функции, а так как юзаю указатели на функции и их список динамичен, то этот способ очень удобен, хотя может есть и лучше, но это первая моя реализация.
Название: Programming Отправлено: Аспирант Василий от 08 Октября 2002, 18:39 > а потом вызывает необходимые функции с аргументами разных типов, и процесс конвертации типов занимает всего две инструкции!
Не думаю, что в Паскале будут б`ольшие проблемы с этим. > Я просто в функции передаю обычный указатель на войд, а потом уже копирую в необходиму переменную в самой функции, а так как юзаю указатели на функции и их список динамичен, то этот способ очень удобен, хотя может есть и лучше, но это первая моя реализация. "Указатель на войд" есть и в Паскале - тот же pointer, а если хотите - вообще procedure Proc(var A); С указателями на функции еще проще - есть специальные процедурные типы. Хотя в таких случаях, пожалуй, лучше будет перейти к классам - в Object Pascal и его реализациях: Delphi, Kylix, FreePascal. Что же касается красоты кода и преобразования типов, фраза unsigned char (если перевести - беззнаковый символ) сильно уж режет глаз. Куда лучше просто byte. Не очень хорошо складывать указатель и целое (а забыть про указатель легко) - и получать какой-то warning. Если действительно надо сложить - так и писать надо var P:pointer; i:integer; begin ............... i:=i longint(p); .............. Или p:=pointer(longint(p) i); А если вдруг в С {char *p; int i; ......... p = p i;/*А имелся в виду индекс от p, в форуме он не работает*/ ...... /*а потом (память была выделена вначале)*/ i = (p[100])*10; /*И получи на выбор Segmentation fault. Core dumped. или Программа выполнила недопустимую операцию и будет закрыта. */ } . Название: Programming Отправлено: DMD от 14 Октября 2002, 19:15 А я пишу на C /C, Basic, ASM(16/32), Java (MS/SUN/ESL), SmallTalk, Perl, Cobol, Delphi. Если что надо написать (бесплатно) то обращайтесь.
Название: Programming Отправлено: Proud от 14 Октября 2002, 19:18 DMD, #17 >>
а стихи могёшь? Название: Programming Отправлено: DMD от 17 Октября 2002, 18:29 Неа, стихи не могу. Если человек - талант, то только в одном.
Название: Programming Отправлено: terrrorrr от 18 Октября 2002, 16:46 Pascal .... C
east or west asm is BEST! вот и все ;р Название: Programming Отправлено: Аспирант Василий от 18 Октября 2002, 16:48 > east or west asm is BEST!
И много на asmе в защищенном режиме, желательно под GUI, попишешь? Название: Programming Отправлено: terrrorrr от 18 Октября 2002, 16:51 Достаточно напишу
особенно под винду, т.к. с ихними импортами/експортами получается не асм а просто сказка (http:////forum.murman.ru/images/smilies/smile.gif) Название: Programming Отправлено: Антихрист от 22 Октября 2002, 10:15 DMD, #19 >>Ну почему же - я например умею не только программировать, но и рисовать, и писать стихи и рассказ тоже могу написать
Название: Programming Отправлено: PrintF от 19 Ноября 2002, 23:03 На Паскаль и Дельфи просто смотреть не могу.
Только С/С (а там можно и на OWL, и на MFC, и на VCL (Builder)), но только не Дельфи. Название: Programming Отправлено: Аспирант Василий от 20 Ноября 2002, 18:04 PrintF, #24 >>
Аналогично, с точностью до наоборот. А вообще, билдер выглядит ... странновато: Си (язык более низкого уровня) имеет доступ к паскалевской VCL. Название: Programming Отправлено: PrintF от 20 Ноября 2002, 20:21 В Билдере даже можно писать одновременно прогу на OWL, MFC, и Дельфи.
Имхо, это даже плюс. Пришлось здесь юзать библиотеку (на Дельфи написанную) - для работы с MetaFile'ами (поворот, увеличение, вывод на экран и т.д.) - в Билдере это без проблем. Да и любая библиотека написанная на Дельфи, подключается к Билдеру - для доступа через С . Притом именно через возможности VCL, а не DLL или LIB. Да и вообще что спорить? Паскаль очень похож на Си, ObjectPascal похож на Си , Дельфи на Билдер - каждый пишет на том, что ему больше нравиться. Название: Programming Отправлено: Аспирант Василий от 21 Ноября 2002, 14:35 В Delphi при большом желании можно писать на OWL и VCL.
Название: Programming Отправлено: DMD от 21 Ноября 2002, 17:04 Мужики, а кто-нить так вот серьёзно программит? Не так чтобы там под Win в VB, а в реале под *nix'ы (но не Kilix)- просто охота присоединиться /Win к чему-нить стоящему, чем писать очередной "Блокнот". Знаю много - ну скучно всё время писать вирусы (хотя и получается неплохо 8о) ). Может кто работает над чем-нить сложным, системным - я с удовольствием.
Дмитрий. Название: Programming Отправлено: Аспирант Василий от 21 Ноября 2002, 18:21 DMD, #28 >>
Не только и не столько Kylix, сколько FreePascal lazarus (http:////forum.murman.ru/images/smilies/laugh.gif). Но ничего серьезного. Название: Programming Отправлено: PrintF от 21 Ноября 2002, 23:50 DMD
Мы только серьезное и программим, всегда. (http:////forum.murman.ru/images/smilies/wink.gif) А откуда ты взял что круто программят только под *nix'ами? Думаешь это очень сложно? Не сложнее, чем было раньше писать под DOS. Всё приходилось делать почти с нуля и ручками. Да и написать большую прогу под Виндами тоже не просто, даже на Билдере или ВизуалС. Название: Programming Отправлено: Аспирант Василий от 22 Ноября 2002, 17:09 Ну что я могу сказать?
http://www.linux.org.ru/gallery/bigaJZK7q.png (http://www.linux.org.ru/gallery/bigaJZK7q.png) Название: Programming Отправлено: Diam = DMD от 22 Ноября 2002, 21:26 Вы не правы - пои иксами программить даже проще (хотя что сравниться с ДОС по простоте ...). Но суть не в этом.
Писать _большие_ проги под C Builder не просто, а очень просто 8о). А вот нормальное написать - это да. Что за язык программирования, который вместо адресов переменных сохраняет их имена? Так делают и Делфи и Билдер и Бейсик ... И ещё: будучи совсем закрытой системой с кучей backdoor'ов и багов, Windows тормозит развитие программистов именно из-за вседозволенности - что хошь то и делай и как делай. И главное - всё как конструктор. У меня давно была идея написать 2 вещи, но однако людей, чтобы разбирались в таких вещах я не нашёл. Ну пришлось забить: а что делать, раз основные увлечения современной молодежи не программирование (да хоть бы и на Визуал Бейсик), а игры, да такие, что вызывают психический заболевания? Или я не прав? Название: Programming Отправлено: PrintF от 24 Ноября 2002, 19:09 Аспирант Василий
А на сколько этот Лазарюс похож на Дельфи внутренне? По навзанию объектов, классов и т.д. и т.п. Сколько придется менять в Дельфи (Вин)-коде для компиляции в Лазарюсе? Diam = DMD хотя что сравниться с ДОС по простоте И что ты много писал под ДОСом? Писать _большие_ проги под C Builder не просто, а очень просто И насколько большие проги ты писал на Билдере? (в кол-ве строчек кода, набитых собственными руками). Windows тормозит развитие программистов именно из-за вседозволенности - что хошь то и делай и как делай. И главное - всё как конструктор. А ты не тормозись. Изучай Линукс, если тебе он нравиться. а игры, да такие, что вызывают психический заболевания? Или я не прав? Ну, если брать повальное увлечение Квакой3, Каунтер-Страйк, УТ, и т.д. и т.п., то я согласен. Название: Programming Отправлено: Аспирант Василий от 25 Ноября 2002, 14:36 PrintF, #33 >>
> А на сколько этот Лазарюс похож на Дельфи внутренне? По навзанию объектов, классов и т.д. и т.п. По структуре/названию объектов, модулей он гораздо ближе к Delphi (скорее, 3, чем 5), чем Kylix. Более того, даже часть winapi реализована (правда, модуль называется не Windows, а LCLLinux). Проблемы возникают в языке. Хотя структура lfm практически полностью соответствует структуре текстового dfm, во FreePascal под линукс не работает директива {$R *.res}. Поэтому она заменена на {$I....} в разделе initialization. Плюс немного изменен основной файл (*.lpr по типу *.dpr). > Сколько придется менять в Дельфи (Вин)-коде для компиляции в Лазарюсе Смотря какой код брать... И из какой Delphi. Название: Programming Отправлено: PrintF от 29 Ноября 2002, 05:33 Аспирант Василий
А есть что-то вроде Лазарюса, только для Си/Си ? (ака Билдер для Линукса) Лазарюс наша (российская) разработка или западная? P.S. В принципе если в коде (виндовом под Дельфи) к системным функциям обращений нет, то кол-ве изменений должно быть минимальным.... Название: Programming Отправлено: Аспирант Василий от 29 Ноября 2002, 14:22 PrintF, #35 >>
> А есть что-то вроде Лазарюса, только для Си/Си ? (ака Билдер для Линукса) Билдер для Linux уже появился в самом прямом смысле (Kylix 3 = Паскаль С , как я понял) Есть качаемая версия, но она больше 100 М. Мне такое, разумеется, не надо. Тем более, что сам Kylix ориентирован на патчнутый libqt, который будет конфликтовать с обычным... Т.е. очень много проблем для тех, у кого самого kylixа нет. Подобных же систем полно (Glade, KDevelop Qt Designer), но меня как паскалиста они не особо интересуют. Да и тормозят ужасно (любая пересборка пустого приложения на athlonе порядка минуты). > Лазарюс наша (российская) разработка или западная? Если быть точным, всемирная (open source). Но проект держится, в общем, на немцах. Хотя немецкая локализация пока отстает от русской. Русскую, правда, ввел я... Как и поддержку русских букв в OnKeyPress (правда, только две строчки кода). > P.S. В принципе если в коде (виндовом под Дельфи) к системным функциям обращений нет, то кол-ве изменений должно быть минимальным.... Очень часто используются сообщения (messages). Это полностью "выводит из себя" программу на Kylix, но не должно мешать Lazarus. Кроме того, там есть и DC со всеми рисовательными апишными функциями. Название: Programming Отправлено: Xtrain от 03 Декабря 2002, 00:55 Winkillera не трогать в компах он
рубит. А ващето некторых ПОд ВижуалАсемблер радует писать, А кто в БорДеле париться Ващето не тормозите народ, хорош програмист тот кто парит хоть на одном языке высокого уровня и на асме, в наше время и на бейсике можно сложные системные программы писать. Название: Programming Отправлено: Never от 19 Декабря 2002, 13:32 Аспирант Василий, #10 >> "Ничто так не ограничивает полет мысли программера, как компилятор" (народная мудрость). Спор о языках, а не о компиляторах.
ИМХО: проблема видимо в психологической совместимости, я даже видел как-то тест, где отвечая на вопросы можно определить подходящий язык. Название: Programming Отправлено: Аспирант Василий от 19 Декабря 2002, 13:52 Объективно язык C сложнее (и противоречивее) Паскаля. Поэтому почти любой компилятор С будет медленнее Паскаля. Кстати, билдеровский С медленнее Delphi/Kylix.
Название: Programming Отправлено: Never от 19 Декабря 2002, 13:54 Аспирант Василий, #39 >>комп помощнее и no ploblem!
Название: Programming Отправлено: R.I.P. от 23 Декабря 2002, 11:14 Аспирант Василий, #21>>
Из меня, конечно, программист посредственный, но нельзя ли пояснить, что сие означает: >И много на asmе в защищенном режиме, желательно под GUI, попишешь? Вообще-то, даже я знаю, что защищённый режим - это режим работы процессора и к программированию под ОС (напр. под GUI Windows) он имеет весьма отдалённое отношение. Вот мне хотелось бы увидеть перевод процессора из RM в PM (и V86) на C или пасКАЛЕ(пускай даже через DPMI, но лучше напрямую, через разблокирование процессорной линии А20 (http:////forum.murman.ru/images/smilies/smile.gif) ). И если в PM писать не на Ассемблере, то тогда на чём? Название: Programming Отправлено: Аспирант Василий от 23 Декабря 2002, 13:22 > И если в PM писать не на Ассемблере, то тогда на чём?
В PM писать не обязательно надо на ассемблере. А вот сам менеджер памяти (он же DPMI) - там действительно совсем без ассемблера не обойтись. А теперь о чем вообще речь: в защищенном режиме давать обычные вызовы int, которые так любят досовские ассемблисты (а куда там без них ?!!), не всегда корректно (хотя под некоторыми расширителями DOS для DPMI и под Win9x это возможно, но под NT и Linux это в принципе недопустимо, особеннно в посл. случае - там для таких фокусов нужен доп. патч к ядру - ни больше, ни меньше). Стало быть, нужно подключаться к соотв. системным вызовам или, как минимум, быть очень осторожным с int (и вообще с вызовами BIOS/DOS). Я уж не говорю о работе с системной областью памяти. А вызывать системные функции из dll(в Windows)или .so или даже ядра (Linux) на ассемблере, как я понимаю, достаточно хлопотно. Делать же ассемблерные вставки для оптимизированного алгоритма умножения можно везде, и они не сильно зависят от режима. Под V86 виндов или dosemu linuxа на асме можно работать также, как и с DOS. Название: Programming Отправлено: R.I.P. от 24 Декабря 2002, 09:19 >>PM писать не обязательно надо на ассемблере.
А на чём же тогда? >>в защищенном режиме давать обычные вызовы int, которые так любят досовские ассемблисты (а куда там без них ?!!) 1. Вы смешиваете программирование в PM и программирование под ОС. 2. А кто это вызывает int в PM? Если вы имеете ввиду DOS-сессии Windows(а это всё равно программирование под ОС), то это эмуляция RM. 3. Под Win9x можно, кстати, запустить и программу выполняющюю перекл. в PM, но Win это просто проэмулирует и даст ей минимальный уровень привелегий. 4. Если вы считаете, что в PM можно писать не на Ассемблере, то приведите пожалуйста пример на С или пасКАЛЕ перевода в PM или загрузки какой-нибудь таблицы дескрипторов в PM. Название: Programming Отправлено: Аспирант Василий от 25 Декабря 2002, 14:09 > 1. Вы смешиваете программирование в PM и программирование под ОС.
Программирование под ОС, работающей в PM и есть программирование в PM (если, конечно, программировать не на интерпретаторе типа BASIC, bash, Perl, VM типа Java и т.п.). Ведь на низком уровне мы работаем с селекторами/дескрипторами и т.п. А то, что Вы предлагаете написать (переключалку RM<->PM) - лишь драйверы защищенного режима. Их собственно и программами в PM назвать полностью нельзя - они же работают наполовину в RM. > Если вы имеете ввиду DOS-сессии Windows(а это всё равно программирование под ОС), то это эмуляция RM. Имеется в виду, например, вызов прерываний из DPMI. Скажем, расширителя DOS DPMI. Правда, есть целый ряд GUIшных программ под винду, вызывающих int. Примеры Sandra, FineReader 4-5. Название: Programming Отправлено: R.I.P. от 02 Января 2003, 14:07 Аспирант Василий, #44 >>
> Программирование под ОС, работающей в PM и есть программирование в PM Если следовать этой логике, то "Hello world" - кроссплатформенная, кросспроцессорная, "кроссрежимная" программа. > Ведь на низком уровне мы работаем с селекторами/дескрипторами и т.п. С селекторами/дескрипторами работает ОС и практически ни одна ОС защищённого режима не даст простой смертной программе что-то там делать с ними. Win9x, например, работает в нулевом кольце защиты - ring0, а приложения только в ring3. В win9x для работы в ring0 нужно писать свой VxD (используя asm) - а это одно из самых сложных и нетривиальных занятий под винду, а в NT не проканает и это. > А то, что Вы предлагаете написать (переключалку RM<->PM) - лишь драйверы защищенного режима. PM - режим работы процессора. Собственно, перевод процессора из RM в PM (из PM в RM) - это установка (сброс) бита PE регистра управления процессора cr0. Грубо говоря, перевод в PM выглядит так: mov eax, cr0 or eax, 1 mov cr0, eax И мы в PM! > Имеется в виду, например, вызов прерываний из DPMI. Скажем, расширителя DOS DPMI. Правда, есть целый ряд GUIшных программ под винду, вызывающих int. В PM запрещены вызовы функций DOS/BIOS т.к.: 1. Формат int: int xx. Где 0<=xx<=FFh номер прерывания в таблице векторов прерываний, котороя расположена начиная с адреса 0000h:0000h. В PM же первые 20h вектора зарезервированны под исключения. Кстати, в PM также другой базовый адрес контроллера прерываний - ещё одна причина несовместимости двух режимов. 2. Самое главное! В PM совершенно другая (чем в RM) несегментная организация памяти множество моделей адресации в ней. Программы реального режима (напр. обработчики прерываний int) считают, что в сегментных регистрах - сегментные адреса, а на самом деле в PM в них хранятся селекторы! Вызовы же int виндовскими программами (если они вообще есть) ЭМУЛИРУЮТСЯ виндой. Название: Programming Отправлено: Аспирант Василий от 03 Января 2003, 13:59 R.I.P., #45 >>
> ни одна ОС защищённого режима не даст простой смертной программе что-то там делать с ними Так вот в том-то все и дело! Между тем, в той же винде достаточно функций API, использующих их в качестве аргумента. > Грубо говоря, перевод в PM выглядит так: И что? Если подходить к этому формально, то Ваш код не является программой защищенного режима. Т.к. это ЕЩЕ реальный режим. А собственно в защищненном режиме будет то, что идет после Вашего кода. А вообще - Ваш код - действительно часть драйверов. Тогда как собственно программы защищенного режима должны вести себя соотв. образом. Пусть этот образ проявляется не в том, чтобы что-то делать отдельно, а чтобы чего-то НЕ делать (а именно - лазать по таблице векторов прерываний, сканнировать чужую память). Или даже делать это СПЕЦИФИЧЕСКИМ образом (например, знаменитый 0040h в Win16). > В PM запрещены вызовы функций DOS/BIOS т.к.: Так или иначе, они производятся. Либо эмулируются, либо на время производится переключение из защ. режима 386 в реальный и т.п. > Если следовать этой логике, то "Hello world" - кроссплатформенная, кросспроцессорная, "кроссрежимная" программа. Само собой разумеется! Скажем, вот так program Hello; {$ifdef win32} {$apptype console} //FPC в win32 принимает AppType, //Delphi требует //Kylix понимает, но не требует, поэтому здесь его не будет //А BP7- - не знает про win32 и здесь не будет {$endif} begin writeln('Hello, World!'); end. Вот такая штука - отнюдь не кроссплатформенная program Hello; {$apptype GUI} uses Windows, Messages; begin MessageBox(0,'Hello, World!', 'Hello',mb_OK mb_IconInformation) end. А вот такая, пожалуй, будет program Hello; {$ifdef Win32} uses windows; {$else} {$ifdef FPC} {$ifdef unix} uses LCLLinux; {$else} {$fatal Lazarus doesn't support platforms other than Windows and Linux, at least,yet} {$endif} {$else} {$Fatal Kylix, VP, etc doesn't supported, sorry} {$endif} {$endif} begin MessageBox(0,'Hello, World','Hello',0); end. > если они вообще есть Они есть. См. Sisoft Sandra, FineReader. И, скажем, попытку эмулятора wine выполнять такие программы и его ругательства. А эмулируются или нет - не важно (хотя, конечно, да). Название: Programming Отправлено: R.I.P. от 03 Января 2003, 16:34 Аспирант Василий, #46 >>
Очевидно, мы уклонились от темы. Вопрос стоит так: начём программировать в PM? IMHO на Ассемблере т.к. PM - это режим работы процессора, а Ассемблер - его [процессора] язык. Под PM, кстати, я подразумеваю именно PM, а, например, не ОС, работающюю в нем. IMHO самый "чистый" PM - это PM, полученный самостоятельным переводом процессора в защищёный режим из ОС реального режима (напр. DOS). Простой пример: Вы из доса перевели процессор в PM, тогда для поддержания работы процессора в этом режиме нужно фактически писать небольшую ОС. Когда же Вы "программируете в PM" из-под ОС защищёного режима то, во-первых, это всё уже написанно (на Ассемблере, кстати), а, во-вторых, очень многих вещей Вы сделать просто не сможете. Название: Programming Отправлено: Аспирант Василий от 04 Января 2003, 10:31 R.I.P., #47 >>
> Под PM, кстати, я подразумеваю именно PM, а, например, не ОС, работающюю в нем. ОС не есть PM, но ОС работает в РМ. Программа, работающая под эту ОС, работает в РМ, как ни крути. Другое дело, что эта же программа, возможно, где-то может быть собрана и не для РМ, но в данном случае она собирается для работы в РМ, и все! А "Чистый РМ" - это что-то новое. > (на Ассемблере, кстати), И на нем тоже, но на нем как раз мало. См. ядро (www/kernel.org) Название: Programming Отправлено: DevilFuzzer от 13 Апреля 2004, 18:33 Внимание! Собираю группу программистов работующих на Ассемблере для создания ОС. По вопросам обращайтесь по моему e-mail'у.
Название: Programming Отправлено: br.less от 14 Апреля 2004, 18:12 хм. а поподробней? что за ОС то будет?
стоит ли вообще начинать? (http:////forum.murman.ru/images/smilies/smile.gif) Название: Programming Отправлено: Dilan от 27 Апреля 2004, 15:24 DMD, #28 от 21-11-2002 17:04 >>
> Мужики, а кто-нить так вот серьёзно программит? Не так чтобы там под Win в VB, а в реале под *nix'ы (но не Kilix)- просто охота присоединиться /Win к чему-нить стоящему, чем писать очередной "Блокнот". Знаю много - ну скучно всё время писать вирусы (хотя и получается неплохо 8о) ). Может кто работает над чем-нить сложным, системным - я с удовольствием. Дмитрий. Я пишу под *nix'ы давно уже. Дело это неблагодарное - прибыли никакой... Open Source все-таки. (http:////forum.murman.ru/images/smilies/sad.gif) Название: Programming Отправлено: Dilan от 27 Апреля 2004, 15:29 DevilFuzzer, #49 от 13-04-2004 18:33 >>
> Внимание! Собираю группу программистов работующих на Ассемблере для создания ОС. По вопросам обращайтесь по моему e-mail'у. Что, батенька, Биллом Гейтсом себя вообразили, али Линусом Торвальдсом? Кому это надо??? До тебя уже многие постарались - Linux, Unix, *BSD, винды, QNX и т.д. Название: Programming Отправлено: Нори от 24 Декабря 2004, 20:25 Люди, подскажите ВБ может работать с объектами из 3D Studio Max функции, без использования DirectX и ActiveX
Название: Programming Отправлено: br.less от 25 Декабря 2004, 19:13 vb идет лесом
Название: Programming Отправлено: Павел от 09 Января 2005, 22:02 нужны проги по с сортировка (метод шейкера)!!
Срочно!!!!!!!!! Название: Programming Отправлено: Hipo от 29 Марта 2005, 10:43 Oleg, cachaj!
Program ColorTable; Uses Crt; {Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄЁ Crt} Const P = ' '; {4 Їа®ЎҐ« } Var i,j : Integer; BEGIN ClrScr; {®зЁбвЄ нЄа } Window(1,1,80,7); {®ЇаҐ¤Ґ«ҐЁҐ ®Є ¤«п § Ј®«®ў®з®© з бвЁ в Ў«Ёжл} TextColor(Yellow); {гбв ®ўЄ ¦Ґ«в®Ј® 梥в бЁ¬ў®«®ў} GoToXY(24,1); WriteLn('’…Љ‘’Ћ‚›‰ ‚›‚Ћ„ ЌЂ ќЉђЂЌ „?‘Џ‹…џ'); GoToXY(30,2); WriteLn('’ЂЃ‹?–Ђ –‚…’ЌЋ‘’?'); TextColor(LightCyan); {гбв ®ўЄ паЄ®Ј®«гЎ®Ј® 梥в бЁ¬ў®«®ў} WriteLn(' 0-—Ґал© ',P,'4-Ља бл© ',P,' 8-’Ґ¬®бҐал© ',P,'12-ђ®§®ўл©'); WriteLn(' 1-‘ЁЁ© ',P,'5-”Ё®«Ґв®ўл© ',P,' 9-џаЄ®бЁЁ© ',P,'13-Њ «Ё®ўл©'); WriteLn(' 2-‡Ґ«Ґл©',P,'6-Љ®аЁзҐўл© ',P,'10-џаЄ®§Ґ«Ґл©',P,'14-†Ґ«вл©'); Write (' 3-ѓ®«гЎ®©',P,'7-‘ўҐв«®бҐал©',P,'11-џаЄ®Ј®«гЎ®©',P,'15-ЃҐ«л©'); TextColor(3 128); WriteLn(' i 128-ЊҐаж ЁҐ'); TextColor(White); For i := 0 to 9 do {жЁЄ« Ї® 梥⠬ д® в Ў«Ёжл 梥в®бвЁ} begin Window(i*8 1, 7, i*8 8, 25); {oЇаҐ¤Ґ«ҐЁҐ ®Є ¤«п бв®«Ўж в Ў«Ёжл } GoToXY(1,1); {Єгаб®а ў ўҐа奬 «Ґў®¬ гЈ«г ®Є } TextBackGround(Black); {гбв ®ўЄ зҐа®Ј® 梥в д® } WriteLn(' ”®', i:2); WriteLn('ДДДДДДД'); TextBackGround(i); {гбв ®ўЄ ⥪г饣® 梥в д® ®Є } For j := 0 to 15 do begin TextColor(j); {гбв ®ўЄ ⥪г饣® 梥⠤ЇЁбҐ© ў ®ЄҐ} WriteLn('梥в',j:2) end end; NormVideo; ReadLn END. Название: Programming Отправлено: Hipo от 29 Марта 2005, 10:51 Cachaj!{ ‚Ё¬ ЁҐ! „«п а Ў®вл нв®© Їа®Ја ¬¬л Ґ®Ўе®¤Ё¬®, зв®Ўл:
1) Turbo Pascal Ўл« гбв ®ў«Ґ ў Є в «®Ј C:\TP; 2) Є в «®Ј C:\TP\BGI ᮤҐа¦ « д ©« egavga.bgi ; 3) ў ¬Ґо Options/Directories Ўл« гЄ § Їгвм Є д ©«г graph.tpu, ЇаЁ¬Ґа, ‘:\TP\UNITS. …б«Ё Turbo Pascal гбв ®ў«Ґ ў ¤агЈ®¬ Є в «®ЈҐ, 㦮 Ё§¬ҐЁвм Їгвм Є Ґ¬г ў Їа®жҐ¤гॠInitGraph (10-п бва®Є Їа®Ја ¬¬л). } Program Lines; Uses Graph, Crt; {Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄ Crt Ё Graph} Var Key : Char; LineStyle : Word; { ®¬Ґа бвЁ«п аЁб®ў Ёп «ЁЁЁ } Style : String; { §ў ЁҐ бвЁ«п } GrDriver, GrMode : Integer; { вЁЇ Ё ०Ё¬ а Ў®вл Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } GrError : Integer; { Є®¤ ®иЁЎЄЁ Ја дЁЄЁ } BEGIN GrDriver := Detect; { ўв®®ЇаҐ¤Ґ«ҐЁҐ вЁЇ Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); { гбв ®ўЄ Ја дЁзҐбЄ®Ј® ०Ё¬ } GrError := GraphResult; If GrError<>GrOk then begin Writeln('ЋЎ а㦥 ®иЁЎЄ !'); Halt end; SetBkColor(LightGray); SetColor(Red); { 梥в д® Ё 梥в аЁб®ў Ёп } {------------------------------------------------------------} OutTextXY(120, 100, 'ђЁб㥬 «ЁЁо ®в в®зЄЁ (200,200) Є в®зЄҐ (400,280)'); Line(200, 200, 400, 280); Key:=ReadKey; { ЇаЁ®бв ®ў«ҐЁҐ ЁбЇ®«ҐЁп Їа®Ја ¬¬л } ClearViewPort; { ®зЁбвЄ ®Є } {-----------------------------------------------------------} OutTextXY(240, 80, 'ђЁб㥬 «®¬ го'); Rectangle(110, 120, 520, 400); { аЁб®ў ЁҐ а ¬ЄЁ } MoveTo(Round(GetMaxX/2), Round(GetMaxY/2)); { гЄ § вҐ«м ў жҐвॠ®Є } Repeat {жЁЄ« ЇаҐалў Ґвбп ¦ вЁҐ¬ «оЎ®© Є« ўЁиЁ} LineTo(Random(GetMaxX-250) 120, Random(GetMaxY-210) 120); Delay(100); until KeyPressed; Key := ReadKey; ClearViewPort; {-----------------------------------------------------------} OutTextXY(190, 80, 'MҐпҐ¬ бвЁ«Ё аЁб®ў Ёп «ЁЁ©'); For LineStyle := 0 to 3 do begin SetLineStyle(LineStyle, 0, 1); Case LineStyle of 0: Style:='‘Ї«®и п'; 1: Style:='’®зҐз п'; 2: Style:='?ваЁеЇгЄвЁа п'; 3: Style:='ЏгЄвЁа п' end; Line(120, 150 LineStyle*50, 430, 150 LineStyle*50); OutTextXY(450, 145 LineStyle*50, Style); end; Key:=ReadKey; ClearViewPort; {®зЁбвЄ ®Є } {-----------------------------------------------------------} OutTextXY(180, 80, 'ЊҐпҐ¬ в®«йЁг аЁб®ў Ёп «ЁЁ©'); SetLineStyle(0, 0, 1); {в®«йЁ 1 ЇЁЄбҐ« } Line(140, 200, 430, 200); OutTextXY(450, 195, 'Ќ®а¬ «м п'); SetLineStyle(0, 0, 3); {в®«йЁ 3 ЇЁЄбҐ« } Line(140, 250, 430, 250); OutTextXY(450, 245, '’а®© п'); ReadLn; CloseGraph; {§ ЄалвЁҐ Ја дЁзҐбЄ®Ј® ०Ё¬ } END. { ‚Ё¬ ЁҐ! „«п а Ў®вл нв®© Їа®Ја ¬¬л Ґ®Ўе®¤Ё¬®, зв®Ўл: 1) Turbo Pascal Ўл« гбв ®ў«Ґ ў Є в «®Јe C:\TP; 2) Є в «®Ј C:\TP\BGI ᮤҐа¦ « д ©« egavga.bgi ; 3) ў ¬Ґо Options/Directories Ўл« гЄ § Їгвм Є д ©«г graph.tpu, ЇаЁ¬Ґа, ‘:\TP\UNITS. …б«Ё Turbo Pascal гбв ®ў«Ґ ў ¤агЈ®¬ Є в «®ЈҐ, 㦮 Ё§¬ҐЁвм Їгвм Є Ґ¬г ў Їа®жҐ¤гॠInitGraph (10-п бва®Є Їа®Ја ¬¬л). } Program Symbols; Uses Graph, Crt; { Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄ Crt Ё Graph } Var Key : Char; Font : String; { §ў Ёп иаЁдв®ў } Size, MyFont : Word; GrDriver, GrMode : Integer; { вЁЇ Ё ०Ё¬ а Ў®вл Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } BEGIN GrDriver := Detect; { ўв®®ЇаҐ¤Ґ«ҐЁҐ вЁЇ Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {гбв ®ўЄ Ја дЁзҐбЄ®Ј® ०Ё¬ } If GraphResult <> GrOk then Halt; {-----------------------------------------------------------} SetTextStyle(DefaultFont, HorizDir, 2); OutTextXY(140, 80, 'ЊҐпҐ¬ а §¬Ґа бЁ¬ў®«®ў'); OutTextXY(220, 100, 'Ё 梥в д® '); For Size := 0 to 13 do {Size - 梥в д® Ё а §¬Ґа бЁ¬ў®«®ў} begin SetBkColor(Size); { Ё§¬ҐҐЁҐ 梥в д® } Rectangle(135, 425, 470, 450); { аЁб®ў ЁҐ а ¬ЄЁ } SetTextStyle(DefaultFont, HorizDir, 1); OutTextXY(150, 435, '„«п Їа®¤®«¦ҐЁп ¦¬ЁвҐ «оЎго Є« ўЁиг !'); SetTextStyle(DefaultFont, HorizDir, Size); OutTextXY(250-Size*15, 200, 'HELLO'); Key := ReadKey; ClearViewPort; end; ReadLn; {-----------------------------------------------------------} SetBkColor(LightGray); SetColor(Red); { 梥в д® Ё 梥в аЁб®ў Ёп } SetTextStyle(DefaultFont, HorizDir, 2); { гбв ®ўЄ иаЁдв , Їа ў«ҐЁп Ё а §¬Ґа бЁ¬ў®«®ў } OutTextXY(70, 100, 'ђ бЇ®« Ј Ґ¬ бва®Єг Ј®аЁ§®в «м®'); SetTextStyle(DefaultFont, VertDir, 2); OutTextXY(310, 150, 'Ё ўҐавЁЄ «м®'); Key:=ReadKey; ClearViewPort; {-----------------------------------------------------------} SetTextStyle(DefaultFont, HorizDir, 2); { гбв ®ўЄ иаЁдв , Їа ў«ҐЁп Ё а §¬Ґа бЁ¬ў®«®ў } OutTextXY(220, 30, 'ЊҐпҐ¬ иаЁдвл'); For MyFont := 0 to 9 do { жЁЄ« Ї® ®¬Ґа ¬ иаЁдв®ў } begin Case MyFont of 0: Font:='0 - ’®зҐзл© (Default)'; 1: Font:='1 - “ва®Ґл© (Triplex)'; 2: Font:='2 - “¬ҐмиҐл© (Small)'; 3: Font:='3 - Џаאַ© (SansSerif)'; 4: Font:='4 - ѓ®вЁзҐбЄЁ© (Gothic)'; 5: Font:='5 - ђгЄ®ЇЁбл©'; 6: Font:='6 - ЉгамҐа'; 7: Font:='7 - Ља бЁўл© (T ©¬б Italic)'; 8: Font:='8 - ’ ©¬б Roman'; 9: Font:='9 - ЉгамҐа 㢥«ЁзҐл©'; end; SetTextStyle(MyFont, HorizDir, 2); OutTextXY(40, 70 MyFont*35, 'abcdfxyz 0123456789'); { ўлў®¤ ⥪бв } SetTextStyle(DefaultFont, HorizDir, 1); OutTextXY(410, 80 MyFont*35, Font) { ўлў®¤ §ў Ёп иаЁдв } end; OutTextXY(380, 60, 'N иаЁдв ЋЇЁб ЁҐ'); ReadLn; CloseGraph; { § ЄалвЁҐ Ја дЁзҐбЄ®Ј® ०Ё¬ } END. { ‚Ё¬ ЁҐ! „«п а Ў®вл нв®© Їа®Ја ¬¬л Ґ®Ўе®¤Ё¬®, зв®Ўл: 1) Turbo Pascal Ўл« гбв ®ў«Ґ ў Є в «®Ј C:\TP; 2) Є в «®Ј C:\TP\BGI ᮤҐа¦ « д ©« egavga.bgi ; 3) ў ¬Ґо Options/Directories Ўл« гЄ § Їгвм Є д ©«г graph.tpu, ЇаЁ¬Ґа, ‘:\TP\UNITS. …б«Ё Turbo Pascal гбв ®ў«Ґ ў ¤агЈ®¬ Є в «®ЈҐ, 㦮 Ё§¬ҐЁвм Їгвм Є Ґ¬г ў Їа®жҐ¤гॠInitGraph (7-п бва®Є Їа®Ја ¬¬л). } Program MusicColor; Uses Crt, Graph; { Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄ Crt Ё Graph } Var GrDriver, GrMode: Integer; { вЁЇ Ё ०Ё¬ а Ў®вл Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } BEGIN GrDriver := Detect; { ўв®®ЇаҐ¤Ґ«ҐЁҐ вЁЇ Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {гбв ®ўЄ Ја дЁзҐбЄ®Ј® ०Ё¬ } SetColor(White); { гбв ®ўЄ ЎҐ«®Ј® 梥в а ¬ЄЁ } Rectangle(130, 130, 460, 370); { аЁб®ў ЁҐ а ¬ЄЁ } Randomize; { ЁЁжЁ «Ё§ жЁп ¤ взЁЄ б«гз ©ле зЁбҐ« } Repeat { жЁЄ« ЇаҐалў Ґвбп ¦ вЁҐ¬ «оЎ®© Є« ўЁиЁ } Sound(Random(2000)); { Ё§¬ҐҐЁҐ ўлб®вл §ўгЄ } Delay(Random(1000)); { § ¤Ґа¦Є } SetFillStyle(Random(4), Random(16)); { ᬥ вЁЇ иваЁе®ўЄЁ Ё 梥в } Bar(140, 140, 450, 360); { аЁб®ў ЁҐ § Єа 襮Ј® Їаאַ㣮«мЁЄ } until KeyPressed; NoSound; { ®в¬Ґ §ўгЄ } CloseGraph; ReadLn; { § ЄалвЁҐ Ја дЁзҐбЄ®Ј® ०Ё¬ } END. { ‚Ё¬ ЁҐ! „«п а Ў®вл нв®© Їа®Ја ¬¬л Ґ®Ўе®¤Ё¬®, зв®Ўл: 1) Turbo Pascal Ўл« гбв ®ў«Ґ ў Є в «®Ј C:\TP; 2) Є в «®Ј C:\TP\BGI ᮤҐа¦ « д ©« egavga.bgi ; 3) ў ¬Ґо Options/Directories Ўл« гЄ § Їгвм Є д ©«г graph.tpu, ЇаЁ¬Ґа, ‘:\TP\UNITS. …б«Ё Turbo Pascal гбв ®ў«Ґ ў ¤агЈ®¬ Є в «®ЈҐ, 㦮 Ё§¬ҐЁвм Їгвм Є Ґ¬г ў Їа®жҐ¤гॠInitGraph (9-п бва®Є Їа®Ја ¬¬л). } Program Star; Uses Crt, Graph; { Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄ Crt Ё Graph } Const { ¬ ббЁў Є®®а¤Ё в ўҐаиЁ ¬®Ј®гЈ®«мЁЄ (§ўҐ§¤л) } TopsStar: Array[1..18] of Integer = (300, 125, 325, 225, 425, 250, 325, 275, 300, 375, 275, 275, 180, 250, 275, 225, 300, 125); Var i, j, GrDriver, GrMode : Integer; BEGIN GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {гбв ®ўЄ Ја дЁзҐбЄ®Ј® ०Ё¬ } SetTextStyle(DefaultFont, HorizDir, 2); {гбв ®ўЄ иаЁдв , Їа ў«ҐЁп} {Ё а §¬Ґа бЁ¬ў®«®ў } OutTextXY(220, 60, 'S T A R '); SetTextStyle(DefaultFont, VertDir, 2); OutTextXY(140, 150, 'S T A R '); SetTextStyle(DefaultFont, VertDir, 2); OutTextXY(500, 150, 'S T A R '); i:=0; Repeat j:=i mod 12; { j - ®бв в®Є ®в ¤Ґ«ҐЁп i 12 } SetFillStyle(j, Random(13)); { иваЁе®ўЄ Ё д® } FillPoly(9, TopsStar); { аЁб®ў ЁҐ Ё иваЁе®ўЄ §ўҐ§¤л } Inc(i); { 㢥«ЁзҐЁҐ i 1 } Delay(500) until KeyPressed; { § ўҐа襨Ґ жЁЄ« ¦ вЁҐ¬ «оЎ®© Є« ўЁиЁ } CloseGraph END. { ‚Ё¬ ЁҐ! „«п а Ў®вл нв®© Їа®Ја ¬¬л Ґ®Ўе®¤Ё¬®, зв®Ўл: 1) Turbo Pascal Ўл« гбв ®ў«Ґ ў Є в «®Ј C:\TP; 2) Є в «®Ј C:\TP\BGI ᮤҐа¦ « д ©« egavga.bgi ; 3) ў ¬Ґо Options/Directories Ўл« гЄ § Їгвм Є д ©«г graph.tpu, ЇаЁ¬Ґа, ‘:\TP\UNITS. …б«Ё Turbo Pascal гбв ®ў«Ґ ў ¤агЈ®¬ Є в «®ЈҐ, 㦮 Ё§¬ҐЁвм Їгвм Є Ґ¬г ў Їа®жҐ¤гॠInitGraph. } Program Sight; Uses Crt, Graph; { Ї®¤Є«о票Ґ Є Їа®Ја ¬¬Ґ ЎЁЎ«Ё®вҐЄ Crt Ё Graph } Const Step = 5; { и Ј Ё§¬ҐҐЁп Є®®а¤Ё в жҐва ЇаЁжҐ« } Instr = '“ЏђЂ‚‹…Ќ?… „‚?†…Ќ?…Њ Џђ?–…‹Ђ - ‘’ђ…‹Љ?, ‚›•Ћ„ - ESC'; Var GrDriver, GrMode : Integer; {вЁЇ Ё ०Ё¬ а Ў®вл Ја дЁзҐбЄ®Ј® ¤а ©ўҐа } X, Y : Integer; { Є®®а¤Ё вл жҐва ЇаЁжҐ« } XStr, YStr : String; Ch : Char; {-----------------------------------------------------------} Procedure MakeSight(X, Y : Integer); { Їа®жҐ¤га аЁб®ў Ёп ЇаЁжҐ« } Begin SetColor(White); Circle(X, Y, 80); SetColor(LightGreen); Line(X-80, Y, X 80, Y); Line(X, Y-63, X, Y 63); { ўлў®¤ ®бҐ© ЇаЁжҐ« } SetColor(LightRed); Circle(X, Y, 2); { ®Єа㦮бвм ў жҐвॠЇаЁжҐ« } Str(X, XStr); Str(Y, YStr); { ЇҐаҐў®¤ Є®®а¤Ё в ў бва®Є®ўл© вЁЇ } SetColor(Yellow); OutTextXY(X 5, Y-35, 'x=' XStr); { ўлў®¤ Є®®а¤Ё в жҐва ЇаЁжҐ« } OutTextXY(X 5, Y-20, 'y=' YStr) End; {-----------------------------------------------------------} BEGIN GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); SetColor(LightGray); X := GetMaxX div 2; Y := GetMaxY div 2; { Є®®а¤Ё вл жҐва нЄа } Rectangle(50, 425, 600, 460); { аЁб®ў ЁҐ а ¬ЄЁ } OutTextXY(120, 440, Instr); MakeSight(X, Y); { аЁб®ў ЁҐ ЇаЁжҐ« ў жҐвॠнЄа } While TRUE do { жЁЄ« а Ў®вл Їа®Ја ¬¬л ¤® ЇаҐалў Ёп Ї® Є« ўЁиҐ ESC } begin Ch := ReadKey; Case Ch of #27: begin CloseGraph; Halt(1) end; { ўл室 Ї® Є« ўЁиҐ ESC } #75: X := X-Step; {Ё§¬ҐҐЁҐ Є®®а¤Ё в x, y ¦ вЁҐ¬ бв५®Є} #77: X := X Step; {"ў«Ґў®", "ўЇа ў®", "ўўҐае", "ўЁ§" } #72: Y := Y-Step; #80: Y := Y Step end; ClearViewPort; { ®зЁбвЄ Ја дЁзҐбЄ®Ј® нЄа } SetColor(LightGray); { ў®ббв ®ў«ҐЁҐ а ¬ЄЁ б ¤ЇЁбмо } Rectangle(50, 425, 600, 460); OutTextXY(120, 440, Instr); MakeSight(X, Y) { аЁб®ў ЁҐ ЇаЁжҐ« ў ⥪гйЁе Є®®а¤Ё в е } end; CloseGraph; END. |