История
Версия для печати

Архив форума

Илья Гофман 08.04.2004 14:32
Итак, как я понял, за пределами школьных соревнований эпоха TP70 давно окончена. в связи с этим хочется задать несколько вопросов.
1)кто какие компиляторы использует для посвседневных тренировок?
2)как можно присмпособить Дельфи под АСМ? Ввод-вывод через файл? но для отладки - крайне неудобно. делать форму для каждой задачи - геморрой...
3)на кого рассчитан дистрибутив FreePascal? я его скачал, посмотрел на него и не понял, как его нужно сконфигурировать, чтобы что-нибудь запустилось.:)) может, конечно я тупой...
4)На финале ЧМ, похоже, используют Kylix 3.0 - *nix версию Delphi - чем она отличается?
хех вроде все
Олег Кац 08.04.2004 16:57
Цитата:
кто какие компиляторы использует для посвседневных тренировок?
пошутил, да? :lol:
Цитата:
как можно присмпособить Дельфи под АСМ? Ввод-вывод через файл? но для отладки - крайне неудобно
А чем тебе не понравился ввод-вывод через файл в Delphi? Вроде бы там есть такой тип проекта как "Консольное приложение". Чем отладка этой штуки принципиально отличается от отладки в Borland Pascal?
Цитата:
на кого рассчитан дистрибутив FreePascal? я его скачал, посмотрел на него и не понял, как его нужно сконфигурировать, чтобы что-нибудь запустилось.
С FreePascal в своё время у меня проблем не было. Даже один раз тренировались с этим компилятором. Если найду дистрибутив - подскажу.
Цитата:
На финале ЧМ, похоже, используют Kylix 3.0 - *nix версию Delphi - чем она отличается?
Можно считать, что ничем :)
Илья Тетерин 08.04.2004 16:57
Цитата:
1)кто какие компиляторы использует для посвседневных тренировок?
gnu c compiler 3.2 (когда дома), ms vc 7 (когда в гостях у Андрея)
Цитата:
2)как можно присмпособить Дельфи под АСМ? Ввод-вывод через файл? но для отладки - крайне неудобно. делать форму для каждой задачи - геморрой...
Спроси у гугля delphi console, он тебе расскажет чего-нить
Цитата:
3)на кого рассчитан дистрибутив FreePascal? я его скачал, посмотрел на него и не понял, как его нужно сконфигурировать, чтобы что-нибудь запустилось.:)) может, конечно я тупой...
да у них просто руки кривые. например, в зависимости от скорости твоего компа и удачливости, ты имеешь шанс получить инсталляцию, котоаря не сможет скомпилировать ничего. выкинь каку.
Den Raskovalov 08.04.2004 17:00
Илья Гофман:
Итак, как я понял, за пределами школьных соревнований эпоха TP70 давно окончена. в связи с этим хочется задать несколько вопросов.
1)кто какие компиляторы использует для посвседневных тренировок?
VC 6.0
Илья Гофман:
2)как можно присмпособить Дельфи под АСМ? Ввод-вывод через файл? но для отладки - крайне неудобно. делать форму для каждой задачи - геморрой...
Ты консольное приложение создаешь? File->New->Other->New->Console Application

Еще есть магическое для любого ACM-ера заклинание ;)
Assign(input, 'input.txt');
ReSet(input);
Assign(output, 'output.txt');
ReWrite(output);
Илья Гофман:
3)на кого рассчитан дистрибутив FreePascal? я его скачал, посмотрел на него и не понял, как его нужно сконфигурировать, чтобы что-нибудь запустилось.:)) может, конечно я тупой...
Его FIDO-шники делали. Знаем. Кто конфигурировал связку GoldEd+T-Mail+Partoss+TFix, тому нипочем 8)

Хотя я его помнится смотрел, там все понятно и просто было. Качал версию с IDE? Если будут проблемы, спрашивай лучше в ICQ.
Илья Гофман:
4)На финале ЧМ, похоже, используют Kylix 3.0 - *nix версию Delphi - чем она отличается?
Для консольных приложений, надеюсь, ничем.

PS А вообще ветка Delphi 1-7, Kylix 1-3 Borland признана устаревшей, совместимости с Delphi 8 нет никакой. Продукты с названием Kylix больше Borland'ом выпускаться не будут.
Павел 08.04.2004 17:01
Цитата:
1)кто какие компиляторы использует для посвседневных тренировок?
Delphi и VC++
Цитата:
2)как можно присмпособить Дельфи под АСМ? Ввод-вывод через файл? но для отладки - крайне неудобно. делать форму для каждой задачи - геморрой...
дробавляй вначале файла с программой вот такую штуку:
{$APPTYPE CONSOLE}
program MyProgram;
....
Будет консольное приложение.
Дальше ввод/вывод такой:
Assign(input, 'input.txt');
Reset(input);
Assign(output, 'output.txt');
//Rewrite(output);

Close(output);
Будет ввод из файла, вывод на консоль.
В конце отладки 4-ую строчку естественно надо раскоментирвать.
Цитата:
3)на кого рассчитан дистрибутив FreePascal? я его скачал, посмотрел на него и не понял, как его нужно сконфигурировать, чтобы что-нибудь запустилось.:)) может, конечно я тупой...
Давно-давно я его пробовал ставить. Все работало вроде... Только тормозило почему-то до жути... И с ObjectPascal для Delphi не совместим... Дельфи всяко удобнее...
Илья Тетерин 08.04.2004 17:05
Цитата:
С FreePascal в своё время у меня проблем не было.
он при распаковке себя из дистрибутива ставит на файлы текущую дату. и если часики успевают тикнуть в процессе распаковки, то при попытке что-нибудь собрать компилятор будет испытывать потребность пересобрать файлы своих библиотек, у которых, естественно, исходников в дистрибутиве нет.

и эти люди разрабатывают компиляторы? :lol:
Илья Гофман 08.04.2004 18:05
Цитата:
пошутил, да?
Мда, Олег.. у тебя все "в свое время" а у нас еще, может быть, все впереди:))


Павел
что, прямо вот так, с С-щными комментариями?:)))

В общем, я для себя сделал следующие выводы.
1)FP и TP70- в помойку.
2)Kylix - то же что delphi.
3)Delphi рулит, использовать консольный режим.

всем спасибо :))
Сандро 08.04.2004 20:04
Всю жизнь писал на Паскале, радовался чувству свободного полета при владении этим языком. Потом жизнь связала одной командой с Деном Расковаловым - он сказал: все, ребята, будем переходить на Си. До этого Си знал хорошо, но не никогда не впечатлялся им. Познакомился с VC 6.0 - теперь пишу на нем. Чувство свободного полета опять изредка начинаю испытывать. Если пишу на Паскале теперь, забываю THENы ставить. А вообще BC 3.1 мне не нравился крайней нестабильностью. Там, где Паскалевская 7.0 программа вылетала вместе с Паскалем и окном: "ваша программа выполнила недопустимую операцию и будет завершена" (ну, если наврал, то все равно все поняли, с каким окном), аналогичная на Си 3.1 так вешала комп, что только RESET работал. VC такими глюками не страдает. Программы по курсу КГГ(Компьютерная геометрия и графика) я пишу на Паскале, поскольку смесь графики и работы с памятью в С 3.1 приводит к нажиманию Reset во время отладки по разу в 3-4 минуты.
Илья Тетерин 08.04.2004 20:12
Сандро:
Программы по курсу КГГ(Компьютерная геометрия и графика) я пишу на Паскале, поскольку смесь графики и работы с памятью в С 3.1 приводит к нажиманию Reset во время отладки по разу в 3-4 минуты.
Ох, поотбирать бы у людей отладчики - чтобы научились программы сразу без ошибок писать... Сколько бы времени сэкономилось... И не только на перезагрузку по резету.
Сандро 08.04.2004 20:14
Илья Гофман:
Цитата:
что, прямо вот так, с С-щными комментариями?:)))
А это комментарий, действительный в Delphi. Вместе со стандартными Паскалевскими.

Кстати, школьников, которые привычны к Delphi и непривычны к Паскалю, скоро будет все больше и больше. На Всероссийской в Питере школьники давно уже на 32-битники перешли. А наш софт позволяет играть на 16-битниках XOR 32-битниках. Переводить совсем на 32-битники наших школьников рано. Посему вопрос: возможно ли принципиально создание софта, чтобы играть одновременно на 16-битных и 32-битных компиляторах? И если да, то пытался ли кто-нибудь его создать? При задачах, решаемых как на тех, так и на других компиляторах, школьники имели бы равные преимущества, пользуясь более знакомой средой.
Павел 08.04.2004 23:06
Проблема в фенечках...
Фенечки Delphi:
- переменная Result.
- переменные цикла могут быть только локальными
- функции могут возвращать сложные типы
- длинные строки
- динамические массивы
- набор готовых классов, которые удобно использовать
- 32-битный Integer
- тип int64
- директивы компилятору, наконец!
Александр Мироненко 09.04.2004 10:13
Сандро:
Там, где Паскалевская 7.0 программа вылетала вместе с Паскалем и окном: "ваша программа выполнила недопустимую операцию и будет завершена", аналогичная на Си 3.1 так вешала комп, что только RESET работал. Программы по курсу КГГ(Компьютерная геометрия и графика) я пишу на Паскале, поскольку смесь графики и работы с памятью в С 3.1 приводит к нажиманию Reset во время отладки по разу в 3-4 минуты.
Это у тебя с компом (виндой) проблемы. Уже два года время от времени отлаживаю на работе немаленькую чисто графическую прогу на ВС3.1 + egavga.bgi - reset'a из-за них ни разу не нажимал. А вот Delphi+нити+какой-нибудь необработанный exception в нити - это да, reset единственное лекарство.
Павел 09.04.2004 10:26
Александр Мироненко:
Это у тебя с компом (виндой) проблемы. Уже два года время от времени отлаживаю на работе немаленькую чисто графическую прогу на ВС3.1 + egavga.bgi - reset'a из-за них ни разу не нажимал. А вот Delphi+нити+какой-нибудь необработанный exception в нити - это да, reset единственное лекарство.
Интересно! :) Интересно, что я могу сказать почти тоже самое, только с заменой ралей Delphi <-> BC :)
Нехватку стабильности в Delphi я жестко ощущаю только в одном случае: когда глючный компонент устанавливается в Delphi и активно используется на формочках/ДатаМодулях в Design-Time. Но даже в этом случае, самое страшное чем это грозит - это падение самой Delphi.
Перезапуск и все нормально...

С нитями тоже достаточно жесткое общение имел - проблем (доводящих до reset-а) не наблюдал. Может я просто аккуратно все exception-ы обрабатывал?.. Хотя это несколько на меня не похоже. :)

Возможно это зависит от операционки? С Delphi проблем не было на w2k или wXP. С BC проблемы были на w98. На 2k и XP вроде до reseta тоже никогда не доходило. Максимум сам BC жестко и быстро умирает.
Александр Мироненко 09.04.2004 10:43
Павел:
Но даже в этом случае, самое страшное чем это грозит - это падение самой Delphi.
Перезапуск и все нормально...
Конечно там все падает из-за моих собственных глюков в исходнике. Например главная нить скоропостижно хватает exception (файл не нашла), вываливается в IDE, там по привычке говоришь прекратить прогон - и остальные нити никто не убивает. Все, приплыли. delphi не работоспособна, самостоятельно грохнуть запущенную программу она не может, грохнуть саму delphi - нельзя (win 98 ) по той же причине (она послушно пытается умереть, но перед смертью пытается чистить за собой, но не может - остается жива), винда считает delphi живой (откликается), только не желающей выходить. Reset.
Илья Тетерин 09.04.2004 10:50
вот еще один пример, как ацм калечит будущих программистов. оно приучает их к отладчикам. а что делать потом, когда программа сглючивает у заказчика? ехать к нему в гости?
Павел 09.04.2004 10:57
Цитата:
Все, приплыли. delphi не работоспособна, самостоятельно грохнуть запущенную программу она не может, грохнуть саму delphi - нельзя (win 98) по той же причине
Вот чем я никогда не соглашусь заниматься, так это писать что-нибудь, работая под 98-ой :)
А у меня, вроде, стопая запущенное под Дельфи прилажение, все ее нити грохались... В общем таких проблем ТОЧНО не было... но опять же это была w2k.
Александр Мироненко 09.04.2004 11:14
Павел:
Вот чем я никогда не соглашусь заниматься, так это писать что-нибудь, работая под 98-ой :)
У меня инструкции вида IN ax,dx часто в коде встречаются :D
А драйвер к девайсу писать - некому да и некогда. Так что 98 здесь вне конкуренции.
Цитата:
А у меня, вроде, стопая запущенное под Дельфи прилажение, все ее нити грохались...
У меня тоже, если Ctrl-F2 не трогать, а дать программе еще чуток поработать - все выходит более или менее корректно. Максимум project.exe не разблокирует - ну да это лекго лечится.

И, кстати, из всех ACM-олимпиад я участвовал только в олимипиаде при УПИ, один раз да и то случайно :lol: .
ЛВ 09.04.2004 12:10
Цитата:
И, кстати, из всех ACM-олимпиад я участвовал только в олимипиаде при УПИ, один раз да и то случайно .
... и выиграл :-)
Den Raskovalov 09.04.2004 12:12
Павел:
Нехватку стабильности в Delphi я жестко ощущаю только в одном случае: когда глючный компонент устанавливается в Delphi и активно используется на формочках/ДатаМодулях в Design-Time. Но даже в этом случае, самое страшное чем это грозит - это падение самой Delphi.
Перезапуск и все нормально...
Неее.... Я, заметим, не разжигаю флэйм. Но лично для меня у Delphi статус - 'талантливая, но глубоко студенческая, поделка'. Кто-то скажет, что у меня руки кривые, но для моих проектов проработать в Delphi без аварийного закрытия оной полчаса - большая удача. Я просто, видимо, работаю в Delphi с пластом возможностей, которые Паша не использует.

Я уже молчу про то, что у Delphi (точнее у некоторых системных) есть несколько багов (именно багов), каждый из которых мне стоил день/два на исследование/обход. Могу список предоставить ;) Все бы ничего, но баги эти кочуют из версии в версию, хотя все форумы о них кричат.

Также я даже заикаться не буду, про то, что развитие Delphi зачастую шло по пути, который неприемлем для поддержки крупного проекта написанного на нем. (Пример если в 5-ой версии присвоение двух переменных типа OleVariant подразумевало VariantCopyInd, то в 6-ой и после VariantCopy, кто знает что это, поймет, сколь это серьезно) ;)

При всем при этом я признаю, что альтернативы Delphi для создания программ с развитым интерфейсом нет, или, по крайней мере, не было (C#). Я его интенсивно использую ;)

Насчет того, что юзать для олимпиадного программирования: Delphi или C++. Конечно C++. Почему? Да потому, что каждый элемент языка/библиотек с C++, как минимум, не хуже. Среда удобней. Дело, конечно, привычки. STL рулит, кто бы что ни говорил. Мне просто на C++ писать приятно, я получаю от этого удовольствие :lol:
Artem 09.04.2004 12:57
Сандро:
Илья Гофман:
Цитата:
что, прямо вот так, с С-щными комментариями?:)))
А это комментарий, действительный в Delphi. Вместе со стандартными Паскалевскими.

Кстати, школьников, которые привычны к Delphi и непривычны к Паскалю, скоро будет все больше и больше. На Всероссийской в Питере школьники давно уже на 32-битники перешли. А наш софт позволяет играть на 16-битниках XOR 32-битниках. Переводить совсем на 32-битники наших школьников рано. Посему вопрос: возможно ли принципиально создание софта, чтобы играть одновременно на 16-битных и 32-битных компиляторах? И если да, то пытался ли кто-нибудь его создать? При задачах, решаемых как на тех, так и на других компиляторах, школьники имели бы равные преимущества, пользуясь более знакомой средой.
А в чем вопрос? Подключить разные компиляторы к системе? Так это же не проблема или я не понял вопроса. :))
Александр Мироненко 09.04.2004 14:24
Сандро:
Посему вопрос: возможно ли принципиально создание софта, чтобы играть одновременно на 16-битных и 32-битных компиляторах? И если да, то пытался ли кто-нибудь его создать?
Об этом лучше поговорить с Клепининым. У него такой софт практически существет. Основная проблема - определить какой компилятор использовал участник для этого сабмита. Дальше вызвается нужная версия компилятора и проверяльщика.
Сандро:
При задачах, решаемых как на тех, так и на других компиляторах, школьники имели бы равные преимущества, пользуясь более знакомой средой.
Класс нетривиальных задач одинаково легко решаемых на любых компиляторах очень узок - и на ML не поймаешь, отсюда TL труднее жестко выставлять. В общем, проблемы больше организационные, чем технические.
Илья Тетерин 09.04.2004 14:25
ЛВ:
Цитата:
И, кстати, из всех ACM-олимпиад я участвовал только в олимипиаде при УПИ, один раз да и то случайно .
... и выиграл :-)
кстати, чем обусловлены столь выдающиеся выступления команд УПИ на фоне команд УрГУ?
Илья Гофман 09.04.2004 22:10
Господа, на правах автора темы:))) прошу перенести ваш флейм по поводу линукса в отдельную тему? например, в раздел Разное.
specially 2 Илья Тетерин
ты иногда начинаешь бесить своей склонностью 1)пофлеймить
2)склонностью в альтернативным решениям по принципу @стандартный вариант - ацтой@.
[off] ежу понятно, что linux - узкоспециализированная рабочая станция, по крайней мере на данном этапе[/off]
комметарии не принимаются, либо в приват. :))

насчет компиляторов - темы. павел, не могли бы вы подробнее объяснить каждый из пунктов вашего поста.
Цитата:
Фенечки Delphi:
- переменная Result.
это что такое?:))
Цитата:
- переменные цикла могут быть только локальными
в смысле, если в функции забыл задекларировать свою переменную i, то она не будет работать с глобальной, ломаю всю программу и заставляя тратить уйму времени на поиск "ошибки в алгоритме"?
Цитата:
- функции могут возвращать сложные типы
т.е. мождно использовать конструкции типа
function a(b:integer):array[1..1000] of char;
?
Цитата:
- длинные строки
что, в делфи нет 255-символьного ограничения на длину строки? клево! :))
Цитата:
- динамические массивы
это то же что в паскале?
Цитата:
- набор готовых классов, которые удобно использовать
так эти классы разве не в отдельных библиотеках, которые нужно подключать в uses, что делать на АСМе запрещено?
Цитата:
- 32-битный Integer
- тип int64
1 понятно - integer=longint
а int64 это то что в паскале - comp?
Цитата:
- директивы компилятору, наконец!
типа {$N+}? а что, это уникальное явление?

P.S. а насчет в АСМ в УПИ это мы еще посмотрим:)))
Александр Мироненко 10.04.2004 10:14
Илья Гофман:
Господа, на правах автора темы:))) прошу перенести ваш флейм по поводу линукса в отдельную тему? например, в раздел Разное.
Я его (флейм) сотру через некоторое время.
Илья Гофман:
Цитата:
Фенечки Delphi:
- переменная Result.
это что такое?:))
Штатная переменная результата функции. Вместо
function Test:boolean;
var res:boolean;
begin
res:=False;
// далее длинные мутные вычисления этой самой res
Test:=res;
end;
можно
function Test:boolean;
begin
Result:=False;
// далее длинные мутные вычисления Result
end;
Цитата:
Цитата:
- переменные цикла могут быть только локальными
в смысле, если в функции забыл задекларировать свою переменную i, то она не будет работать с глобальной, ломаю всю программу и заставляя тратить уйму времени на поиск "ошибки в алгоритме"?
Работать будет, но warning даст.
Цитата:
Цитата:
- функции могут возвращать сложные типы
т.е. можно использовать конструкции типа
function a(b:integer):array[1..1000] of char;
?
Можно так:
type TArray = array[1..100] of char;
function a(b:integer): TArray;
Цитата:
Цитата:
- длинные строки
что, в делфи нет 255-символьного ограничения на длину строки? клево! :))
Нет, кажется там есть ограничение, но 65500 точно можно.
Плюс система сама заботится об уборке мусора. Не знаю на сколько эффективно, но удобно очень.
Цитата:
Цитата:
- динамические массивы
это то же что в паскале?
var VeryLongArray: array of word;
В процессе выполнения можешь увеличивать и уменьшать длину массива произвольно. На тимусе - не работает :)
Цитата:
Цитата:
- набор готовых классов, которые удобно использовать
так эти классы разве не в отдельных библиотеках, которые нужно подключать в uses, что делать на АСМе запрещено?
Ну там не все библиотеки закрыты. Надо вопросы жюри задавать отдельно.
Цитата:
P.S. а насчет в АСМ в УПИ это мы еще посмотрим:)))
Посмотрим. Давным давно в УПИ были очень сильные команды, но давно это было.
Павел 10.04.2004 12:59
Result.
Я вот, например, функцию поиска в массиве пишу исключительно так
for Result:=0 to Count-1 do
if нашли что искали then
Exit;
Result := -1;
- длинные строки

Нет там никаких ограничений. Вернее есть что-то типа 4 гигабайта на строку. Короче ее длина хранится в 4 байтах.
Кроме того строки в Дельфи уменее всех самых умных массивов :)
В частности, они
- сами перевыделяют память, когда растут.
- когда одна строка присваивается другой, память, выделенная под строку, не копируется. Она копируется, только при самой крайней необходимости - когда одна из строк изменяется :)
- ну и подчищается память также умно.

В результате всей этой шелухи код
S := '';
for i:=1 to 1000000 do
S := S + 'a';
будет работать во много раз дольше такого кода:
SetLength(S, 1000000);
for i:=1 to 1000000 do
S[i] := 'a';
Логично вобщем-то. Но во всяком случае это надо понимать!

- динамические массивы

Та же история, что и со строками. И ведут они себя похожим образом...
Реально, то, что в 16-битном BP приходилось реализовывать с помощью динамических списков, теперь легко можно сделать на динамических массивах...

- набор готовых классов, которые удобно использовать

Почти все они лежат в Classes.pas или Contnrs.pas.
Еще есть корявенько написанный хэш, в IniFiles.pas кажется.
Вот вроде все интересное...

На тимусе их естественно нету...

Будут ли эти модули на ЧУ - выясняется :))
Цитата:
Ну там не все библиотеки закрыты. Надо вопросы жюри задавать отдельно.
Вернее, надо протестировать их наличие на пробном туре :)
Илья Гофман 10.04.2004 13:25
спасибо. буду разбираться и привыкать использовать:))
как я понял, где отдельно не оговорено, то на тимусе работает:)) особенно интересно Result - поддерживает ли его FreePascal.
Павел 10.04.2004 13:42
Нет, понял неправильно :)
Это же по определению были Фенечки Дельфи :))
Игорт 11.04.2004 15:24
Александр Мироненко:
Сандро:
Посему вопрос: возможно ли принципиально создание софта, чтобы играть одновременно на 16-битных и 32-битных компиляторах? И если да, то пытался ли кто-нибудь его создать?
Об этом лучше поговорить с Клепининым. У него такой софт практически существет. Основная проблема - определить какой компилятор использовал участник для этого сабмита. Дальше вызвается нужная версия компилятора и проверяльщика.
Не знаю, как в C, а в паскале легко отличить - *.pas - 16-битный, *.dpr - 32-битный... Сейчас же система разрешает посылать лишь *.pas...
penartur 11.04.2004 15:38
Забыл сказать...
Как минимум две школьных команды тоже используют Delphi... В нём и работать удобнее...
Илья Гофман 12.04.2004 17:56
кстати, забыл спросить, что такое перегрузка операторов? :))
Павел 12.04.2004 18:15
Илья Гофман:
кстати, забыл спросить, что такое перегрузка операторов? :))
Пример:
#include <stdio.h>

struct Point
{
int x, y;
Point()
{
};

Point(int ax, int ay)
{
x = ax;
y = ay;
}

Point operator+(Point p)
{
return Point(x + p.x, y + p.y);
}

Point operator-(Point p)
{
return Point(x - p.x, y - p.y);
}
};

int main()
{
Point p1(10, 20);
Point p2(10, 5);
printf("%d %d\n", (p1-p2).x, (p1-p2).y);
printf("%d %d\n", (p1+p2).x, (p1+p2).y);
return 0;
}
Обрати внимание на строчки
printf("%d %d\n", (p1-p2).x, (p1-p2).y);
printf("%d %d\n", (p1+p2).x, (p1+p2).y);
Тут мы вычитаем и складываем точки!
То есть операторы + и - были доопределены на объекты класса Point.
Это и называется перегрузкой операторов.

Надо сказать, что я такое умею вытворять и в Delphi :))
Интересно, кто-нибудь еще может этим похвастаться? ;)
Илья Тетерин 12.04.2004 21:57
Цитата:
Это и называется перегрузкой операторов.

Надо сказать, что я такое умею вытворять и в Delphi :))
Интересно, кто-нибудь еще может этим похвастаться? ;)
нет, ты один на всем белом свете просек эту недокументированную фичу. про нее даже разраьботчики языка не знают. :wink:
Илья Гофман 12.04.2004 22:05
а можно поподробнее насчет дельфи. я на С умею так же как по-испански - 10 слов и 2 выражения:)))))
Илья Гофман 16.04.2004 22:32
итак, возникают вопросы относительно дельфи.
использую delphi 7 + XP. запускаю console application.
если ввожу с клавы и что-то вывожу, то окошко закрывается с дикой скоростью, не дав прочитать что написано. приходится выводить в файл. это муторно и крайне не удобно при отладке задач где воод-вывод из 2-3 чисел. вопрос: как сделать, чтобы ввод и вывод был на экран?:))
penartur 16.04.2004 23:23
Ввод и вывод на экран используется по умолчанию... А вообще-то
assign(rhandle,'con');
reset(rhandle);
assign(whandle,'con');
rewrite(whandle)
//какой-то код
close(whandle);
close(rhandle);
Если надо, чтобы окно не закрывалось, вставляешь в конец readln
И ещё - вообще-то дельфи умеет не только запускать программы, но и компилировать ;-) Запускаешь готовый exe-шник в том самом фаре, про который была задача "пробелы", нажимаешь Ctrl+O и видишь всё, что ты вводил программе, и что она выводила.
Александр Мироненко 16.04.2004 23:25
Если просто надо прогнать программу, то обычно запукаю ее из Far-а.
Там Сtrl-O - и вывод перед глазами. А еще удобнее написать батник test.bat c содержимым
proga.exe <%1 >%1.ans
и запускать его с входным файлом по имени in1 (не набирать же ввод каждый раз с клавиатуры :) ):
test in1
В этом случае все, что сказала програма попадет в 01.ans, а ошибки выкинет на экран. Смотрим ответ тут же (F3 или Ctrl-Q), тут же правим вход (F4), вызываем предыдущую команду (Ctrl-E, Enter), получаем новый ответ.
Зануда 17.04.2004 18:08
Павел:
Проблема в фенечках...
Фенечки Delphi:
- переменная Result.
- переменные цикла могут быть только локальными
- функции могут возвращать сложные типы
- длинные строки
- динамические массивы
- набор готовых классов, которые удобно использовать
- 32-битный Integer
- тип int64
- директивы компилятору, наконец!
Присваивание значения переменной цикла
Комментарии //
Инициализация переменных конструктором