![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Блииииииииин!
![]() ![]() 1. Джентльмены, не говорите, что вы не в состоянии представить случай, когда программёру проще написать кучу ифов чем создавать целую интерпретирующую систему. 2. Я не говорю, что так должно быть - так ИНОГДА БЫСТРЕЕ. 3. Ну, не настройки, представьте интерпретатор скрипта, где ты получаешь в основном строки (с параметрами, возможно). Сначала у тебя в скрипте может быть два слова. Потом тебе нужно добавить ещё два (три, четыре). И так далее. Что, для такого простого случая будем делать хитрые системы с кодировкой допустимых операторов? Классы создавать да иерархии выстраивать? Да проще лишний раз copy'n'paste, чем ради дохлой утилитины время на обдумывание тратить! ![]() |
|||
|
||||
&-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Согласен.
У меня бывает не один десяток if'ов выстраивается. А в отдельные процедуры и функции вывожу код, который много раз повторяется в программе или же очень длиный, который для понимания лучше разбить на отдельные процедуры. -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
December
Здаюсь... Ты прав ![]() -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
var-alex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.10.2003 Где: Коломна, MCK Репутация: 1 Всего: 1 |
Для построения комполяторов-интерпритаторов есть своя теория, и свои алгоритмы. И большим ко-вом вложеных if-ов там не пахнет, при верной реализации! Это сообщение отредактировал(а) var-alex - 12.10.2003, 09:16 |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Если интерпретатор не особо навороченный (Простой скриптовый язык), то все December сделал правильно. Если писать по этим хитрым алгоритмам, то надо будет и книженцию читать по написанию парсеров и еще хрен знает чего. Если нужна скорость, то вложенные ифы намного быстрее сделают работу, нежели там всякие множества и их переборы.
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Black_Joker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 9.11.2002 Где: Таганрог Репутация: нет Всего: нет |
Этот вопрос был по поводу написания переводчика html -> txt (часть проги для диссера)
Анализ текста: Тег - не тег? (<) Если тег - нужный ли тег? (есть ли полезая информация или просто украшатесьства и структура) Если не тег - какая буква или символ (русс - не русс. - по аська-коду) + &#*** Если русс - переводить по кодировкам. И т.д. просто перебором реализовать давольно напряжно. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Да нет, всё понятно - этот подход ясен, собственно многие так и поступаю, особенно молодые и неопытные программисты - есть 2 if добавим ещё 2, при необходимости добавим ещё 2 и т.д.... Хоть интерпретатор, хоть что угодно - через пол года работы над кодом упираемся в тупик - по-тихоньку по-маленьку у нас процедура на 2000 строк кода с 40 вложенными циклами с 40 вложенными if, бессчётным количеством break, а ещё через пару месяцев код пестрит уже и многочисленными Goto... А начиналось всё так невинно, всё так просто и ясно... Знаем, плавали. В этом и состоит отличие кода новичка от кода опытного программиста - при внешней громоздкости и избыточности кода на первых этапах этот код легко расширяем и легко дополняем, причём не за счёт вложенности if и циклов. "Мозги" программы инкапсулированны в один или несколько классов, а добавление новой функциональности происходит путём добавления маленькой процедуры/метода и добавление нескольких констант/переменных в массив и т.п. Мораль такова - при написании программы в первую очередь думать о возможной дальнейшей модификации и дополнения каждой детали проекта и даже если вы не планируете это делать сейчас, архитектура должна быть такой чтобы модернизация была простой и лёгкой, а не перелопачиванием всего кода... Особенно в скриптовых языках - сам с таким сталкивался - именно скриптовые языки как ни что другое требует очень частого добавления новых лексем и вложенные if там подходят меньше всего.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Black_Joker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 9.11.2002 Где: Таганрог Репутация: нет Всего: нет |
я пересмотрел код и решил перейти к case ** of
Подскажите модно ли писать r:= case r of 1 OR 2: begin ... end 3 OR 4 OR 5: begin ... end else ... или только r:= case r of 1 : begin ... end 3 : begin ... end else ... |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Из собственного опыта - видел 11 вложенных уровней... Разобраться по-человечески не удалось - пришлось переписывать начисто... Так что в данном случае следует думать о большей читабельности, чтоб сопровождающий задачу после вас не поминал вас "добрым" словом...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |