Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.06;
Скачать: CL | DM;

Вниз

if или case   Найти похожие ветки 

 
SQLEXPRESS   (2011-07-14 17:28) [40]


> Что-то там не заметно, что он генерировал собственные исключения.


> "Ошибка! Обратитесь разработчику"


except
 тут что-то проверяет, пытается выкрутится
 и если не выкрутились то ShowMessage
end;


 
Dennis I. Komarov ©   (2011-07-14 18:02) [41]


> SQLEXPRESS   (14.07.11 17:28) [40]

И что? Исключение то не его (скорее всего), он его только обрабатывает...


 
Игорь Шевченко ©   (2011-07-14 18:42) [42]

Rouse_ ©   (14.07.11 16:07) [35]

VCL и без меня найдется, кому лечить, а вот местных - уж извини


 
Rouse_ ©   (2011-07-14 18:58) [43]

Дык вот тоже времени нет :)


 
_Юрий   (2011-07-16 00:46) [44]


> SQLEXPRESS   (14.07.11 11:25) [29]


> Дэн, читай все. Стрелять за
> except
>  on E: Exception do
>  begin
>    ToLog(E);
>    ToBuffer(E);  
>    ToXXX(E);
>  end;
> без перевозбуждения если. :)



> начинающий2   (13.07.11 16:15) [19]


> все функции должны возвращать целочисленный результат при
> успешном выполнении и при ошибке


Читайте все, SQLEXPRESS


 
Германн ©   (2011-07-16 02:49) [45]

Для Enumerated всегда предпочитаю case, если есть выбор из трех и более.
Ей-богу гораздо нагляднее (по крайней мере при моем типе форматирования кода). Да и комментарии для вариантов удобно вставлять.


 
sniknik ©   (2011-07-16 14:02) [46]

> Это правила предметной области, он тут спец.
а... ну, видел как математик пишет... (бывший препод), при полной уверенности в, и "пропаганде" лозунга - "только хороший математик может быть хорошим программистом".

уравнения переведенные в код буквально... на пять страниц, никакой оптимизации, разделения на блоки, или использования одного пред рассчитанного результата  в нескольких местах если нужно.
он как то нам дал задание "сделать хоть чуть лучше" за автомат по предмету (исходя из лозунга), я то как раз считаю "главное программистское мышление, и способность разбираться в том, что нужно для задачи... если она не математическая, то хоть всю жизнь пиши не зная математики".
ну вот тогда то и увидел, когда взялся...  автомат тогда не получил, наоборот... не, если бы сделал "на чуть лучше" получил бы, и даже если просто "покаялся, типа не могу, у вас идеал" то получил бы четыре. но я сделал лучше на порядок (у него массив считался 15 на 15, у меня 255 на 255, у него ~5 мин, у меня ~3 сек, результаты расчета в реальном времени, а он любил об этом поговорить типа "вот когда компы станут мощнее, мы все это будем видеть наглядно"). он в общем обиделся, сказал что надо быть математиком лучше него чтобы так сделать, я не лучше, и значит это не я делал... в общем  вместо автомата пришлось сдавать на комиссии (экзамен и пересдача у своего препода, а он сразу ставил 2 едва я входил в аудиторию, сильно видать обиделся, а вот на комиссии преподы чужие, могут быть даже с другого института. и вот другие поставили 4, ну как же комиссия, 5 нельзя. хотя и удивлялись как это студент с такими хорошими знаниями умудрился попасть на комиссию).


 
SQLEXPRESS   (2011-07-16 22:19) [47]


> sniknik ©   (16.07.11 14:02) [46]

гордыня, сударь :)
И, хоть и, как по-моему, заслуженная.  Но все таки
А в моем случае что то с деньгами связано. Что-то с законом, что-то с бизнес логикой.
т.е. человек подошел конкретно, взял закон, взял бух.пособие и накатал.
там такие if if if if - чтоо 100% можно оптимальнее, но надо понять!!! прежде все это..


> _Юрий   (16.07.11 00:46) [44]

Вы считаете, что один программист(группа) за короткий срок напишут обертку не уступающую исходному обработчику?


 
Sha ©   (2011-07-16 23:48) [48]

> sniknik

Также примерно было, только в школе.
В 9й класс пришлось уйти в мат. школу.


 
Юрий Зотов ©   (2011-07-17 08:42) [49]

У студента, с которым я когда-то занимался, тоже было подобное. В паскалевской программе под DOS было объявление массива  с максимально возможным размером, что-то вроде этого:

type
 TMyReal = real;  
 TMyRealArray = array[0..(65535 div SizeOf(TMyReal)] of TMyReal;

Препод начал возмущаться, что программа жрет огромную лишнюю память (хотя реально ни одной переменной такого типа в программе, конечно же, не было, этот тип использовался лишь для передачи параметра в подпрограмму). Студент начал ему доказывать, что никакой лишней памяти программе не жрет. Тот не верит. Тогда студент открывает книжку и тычет в нее пальцем - а в книжке показан этот самый прием с полным разжевыванием всей сути. Пришлось преподу согласиться, но на экзамене он отыгрался по полной. Трижды парень сдавал (хотя знал все на отлично, это уж можете мне поверить) - пока не упомянул, что придется ему идти к завкафедрой.


 
DiamondShark ©   (2011-07-18 11:30) [50]


> уравнения переведенные в код буквально... на пять страниц,
>  никакой оптимизации, разделения на блоки, или использования
> одного пред рассчитанного результата  в нескольких местах
> если нужно.

Оптимизация, в том числе выделение и предрасчёт инвариантов -- это задача компилятора.
Программисты очень любят побить себя пяткой в грудь на тему, как они доблестно сражались с деталями реализации компилятора, но нормальных оптимизирующих компиляторов как не было 50 лет назад, так и нет до сих пор. И никогда не будет. Потому что тогда 95% "квалифицированных" программистов должны будут пойти в дворники, потому что их т.н. "квалификация" и заключается в умении бороться с кривыми инструментами, созданными другими такими же "квалифицированными".

На программистов должен распространяться принцип коллективной ответственности, как на евреев в Риме. И если какой-то программист что-то там возвякнёт про то, как он героически побеждал реаллоки массивов и кеширование инвариантов, ему надлежит бить кованным самогом в хрюпло, потому что он хочет в этот момент получить второй раз бабло за то, что ниасилил его такой же наглый, ленивый и "квалифицированный" собрат -- автор компилятора.


 
DiamondShark ©   (2011-07-18 11:38) [51]

Ну а преподы -- да. Это такая же коррумпированная гнилая каста упырей, как и программисты.


 
Юрий Зотов ©   (2011-07-18 13:03) [52]

Другими словами, весь цирк в ... - и тут выхожу я в белом фраке.

var
 N: integer;

procedure P;
begin
  N := 1; // Больше N нигде не используется
end;

...

for i := 0 to 1000000 do P;

Особо умным предлагается написать компилятор, который распознает инвариант и вынесет вызов P из цикла, а сам цикл удалит. Хотя бы в этом, самом наипростейшем случае.

Фишка здесь в том, что компилятор не имеет права выносить вызовы подпрограмм из циклов, потому что он не искусственный интелллект и не может распознать, что эти подпрограммы делают. А делать они могут что угодно.

И подобных фишек - сколько хошь. Так что никакой компилятор не может оптимизировать программу так же, как это может сделать программист.


 
Rouse_ ©   (2011-07-18 13:49) [53]


> И если какой-то программист что-то там возвякнёт про то,
>  как он героически побеждал реаллоки массивов и кеширование
> инвариантов, ему надлежит бить кованным самогом в хрюпло,
>  потому что он хочет в этот момент получить второй раз бабло
> за то, что ниасилил его такой же наглый, ленивый и "квалифицированный"
> собрат -- автор компилятора.

Т.е. ты, стало быть, пишешь корявый и не оптимизированный код и при этом за эту лабуду мало того что получаешь деньги, так еще и как истину в последней инстанции толкаешь в массы?


 
sniknik ©   (2011-07-18 14:12) [54]

> как он героически побеждал реаллоки массивов и кеширование инвариантов
как всегда читаем одно понимаем то что хотим?

никаких "побежданий", просто приведен в порядок, убран дублирующийся и т.д код. часть формул вообще заменена на константы, формулы тоже были переделаны (но это я себе в заслугу не ставил, т.к. база все одно была его).
но никаких "тонких настроек", разве при них что-то говорилось.

а вот сказанное открытым текстом - профи в одном не обязательно профи, и даже скорее всего дилетант, если занимается этим любительски, в другом. это конечно лучше проигнорировать... ну ведь если понять написанное то гневных рецензий не получится, так ведь? и потролить не удастся... уже наркотик?


 
Юрий Зотов ©   (2011-07-18 14:58) [55]

Удалено модератором


 
DiamondShark ©   (2011-07-18 15:11) [56]


> Юрий Зотов ©   (18.07.11 13:03) [52]

Вот так:

for i := 0 to 1000000 do;

Круче.
И потом сказать, что компилятор не имеет права выкинуть цикл, потому что, возможно, программист был не пьян, а просто так временную задержку отмеряет.

А в чём, собственно, проблема определить, что "// Больше N нигде не используется", выкинуть присваивание и заменить вызов пустой процедуры на пустой оператор? Сейчас даже не самые крутые компиляторы умеют так делать.
А в исполняющей среде с динамической кодогенерацией сквозная оптимизация возможна даже через границы импорта/экспорта.


 
SQLEXPRESS   (2011-07-18 15:23) [57]

не-не, не надо умного компилятора :)
я вот писал программу для 3.11
repeat
until false;
ставил ей максимальный приоритет! Зачем? Чтоб ЦП загрузить :)

В другой очень удобно работать сразу становилось,
а иначе все летало, не успеваешь заметить


 
DiamondShark ©   (2011-07-18 15:23) [58]

Удалено модератором
Примечание: Правила читаем...


 
Rouse_ ©   (2011-07-18 15:26) [59]

Удалено модератором



Страницы: 1 2 вся ветка

Текущий архив: 2011.11.06;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.009 c
1-1271942672
Delpherrr
2010-04-22 17:24
2011.11.06
Как изменить TextHeight формы в RunTime?


6-1245670490
FireMan_Alexey
2009-06-22 15:34
2011.11.06
Как получить список открытых портов на локальной машине


6-1243782288
ikot
2009-05-31 19:04
2011.11.06
Intel Jpeg Library и сокеты


15-1310139238
Weei
2011-07-08 19:33
2011.11.06
Ротация бит


15-1310134286
Очень злой
2011-07-08 18:11
2011.11.06
Синхронизации папки пользователя при ее перенаправлении.