Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> If THEN ELSE, максимальное количество вложений 
:(
    Опции темы
December
  Дата 11.10.2003, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Блииииииииин! bored.gif hmmm.gif
1. Джентльмены, не говорите, что вы не в состоянии представить случай, когда программёру проще написать кучу ифов чем создавать целую интерпретирующую систему.
2. Я не говорю, что так должно быть - так ИНОГДА БЫСТРЕЕ.
3. Ну, не настройки, представьте интерпретатор скрипта, где ты получаешь в основном строки (с параметрами, возможно). Сначала у тебя в скрипте может быть два слова. Потом тебе нужно добавить ещё два (три, четыре). И так далее. Что, для такого простого случая будем делать хитрые системы с кодировкой допустимых операторов? Классы создавать да иерархии выстраивать? Да проще лишний раз copy'n'paste, чем ради дохлой утилитины время на обдумывание тратить!
hmmm.gif


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
&-ray
Дата 11.10.2003, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Согласен.
У меня бывает не один десяток if'ов выстраивается.
А в отдельные процедуры и функции вывожу код, который много раз повторяется в программе или же очень длиный, который для понимания лучше разбить на отдельные процедуры.


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
Fedor
Дата 12.10.2003, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



December
Здаюсь... Ты прав smile.gif


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
var-alex
Дата 12.10.2003, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.10.2003
Где: Коломна, MCK

Репутация: 1
Всего: 1



Цитата(December @ 11.10.2003, 17:56)
Блииииииииин! bored.gif    hmmm.gif
3. Ну, не настройки, представьте интерпретатор скрипта, где ты получаешь в основном строки (с параметрами, возможно). Сначала у тебя в скрипте может быть два слова. Потом тебе нужно добавить ещё два (три, четыре). И так далее. Что, для такого простого случая будем делать хитрые системы с кодировкой допустимых операторов? Классы создавать да иерархии выстраивать? Да проще лишний раз copy'n'paste, чем ради дохлой утилитины время на обдумывание тратить!
hmmm.gif

Для построения комполяторов-интерпритаторов есть своя теория, и свои алгоритмы. И большим ко-вом вложеных if-ов там не пахнет, при верной реализации!

Это сообщение отредактировал(а) var-alex - 12.10.2003, 09:16
PM MAIL   Вверх
neutrino
Дата 12.10.2003, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



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


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Black_Joker
Дата 12.10.2003, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



Этот вопрос был по поводу написания переводчика html -> txt (часть проги для диссера)

Анализ текста:

Тег - не тег? (<)
Если тег - нужный ли тег? (есть ли полезая информация или просто украшатесьства и структура)
Если не тег - какая буква или символ (русс - не русс. - по аська-коду) + &#***
Если русс - переводить по кодировкам.
И т.д. просто перебором реализовать давольно напряжно.
PM   Вверх
Vit
Дата 13.10.2003, 04:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Black_Joker
Дата 13.10.2003, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 ...
PM   Вверх
x77
Дата 13.10.2003, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



Код
case I of
 1..5: Caption := 'Low';
 6..9: Caption := 'High';
 0, 10..99: Caption := 'Out of range';
else
 Caption := '';
end;



--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Maverick
Дата 13.10.2003, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



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


--------------------
smile
PM ICQ GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0798 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.