Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
что грамотнее? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. или Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 11:51 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
А чем так не устраивает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 12:11 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
СаппортерА чем так не устраивает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. не устраивает. Речь в вопросе идет об упрощении и читабельности кода, а вы его пытаетесь усложнить. condition1,2,3,4 могут состоять из нескольких подусловий связанных "and" "or" "not" и групированных по смысловому признаку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 12:44 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Да нет, усложнить код пытаетесь вы. Длинные и сложные условия -- так выпишите вы их в несколько строк, какие проблемы? Но городить заборы операторных скобок... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 13:15 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Для особо упёртых можно сначала расчитать условия в нескольких строчках, а потом как Сапортер предложил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 13:38 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Sarin wrote: > Для особо упёртых можно сначала расчитать условия в нескольких строчках, > а потом как Сапортер предложил. угу... и потерять всю прелесть сокращенных булевских выражений? a and b and c где a - 10 секунд, b - 10 секунд, c - 30 секунд в худшем случае при сокращенном расчет будет 50 секунд, в лучшем - 10 секунд. при Вашем подходе всегда будет 50 секунд. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 13:43 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
locky Sarin wrote: > Для особо упёртых можно сначала расчитать условия в нескольких строчках, > а потом как Сапортер предложил. угу... и потерять всю прелесть сокращенных булевских выражений? a and b and c где a - 10 секунд, b - 10 секунд, c - 30 секунд в худшем случае при сокращенном расчет будет 50 секунд, в лучшем - 10 секунд. при Вашем подходе всегда будет 50 секунд. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 Э-э-э... А эт как? Я вообще с трудом представляю применение операторов AND , OR и NOT к небулевским типам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 14:31 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. вариант 1 будет проскакивать за время от 10 до 50, вариант 2 ВСЕГДА будет проходить за 50 так понятнее? -- There Ain't No Such Thing As A Free Lunch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 14:50 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
кроме того, не всегда можно заменить сокращенное вычисление на полное Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. во 2-м варианте будут ошибки. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 15:14 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
вариант с "and and and" не подходит. В этом случае или делаем лишние "движения" с промежуточными bool condition_result1 = condition1... или придется плодить четыре экстра-функции которые потом вставим в ваш and and and... Ну ладно, чтоб не заострять внимание на "and and and", возму немного измененный случай (камнями не кидаца): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. или Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 15:21 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
химик теоретиквариант с "and and and" не подходит. В этом случае или делаем лишние "движения" с промежуточными bool condition_result1 = condition1... или придется плодить четыре экстра-функции которые потом вставим в ваш and and and... Ну ладно, чтоб не заострять внимание на "and and and", возму немного измененный случай (камнями не кидаца): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Если еще немного подумать, то вопрос "Что грамотнее?" не корректен. Особенно в данном случае. Что Вас интересует, сокрость исполнения, количество занимаемой памяти, удобство чтения исходника? В разных улсовиях нужно писать по разному. Например, зачем нам каждый раз выполнять несколько InitN, а потом ничего не делать так как conditionN+1 = false? Возникает вопрос влияют ли InitN на conditionM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 15:46 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Саппортер химик теоретиквариант с "and and and" не подходит. В этом случае или делаем лишние "движения" с промежуточными bool condition_result1 = condition1... или придется плодить четыре экстра-функции которые потом вставим в ваш and and and... Ну ладно, чтоб не заострять внимание на "and and and", возму немного измененный случай (камнями не кидаца): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Если еще немного подумать, то вопрос "Что грамотнее?" не корректен. Особенно в данном случае. Что Вас интересует, сокрость исполнения, количество занимаемой памяти, удобство чтения исходника? В разных улсовиях нужно писать по разному. Например, зачем нам каждый раз выполнять несколько InitN, а потом ничего не делать так как conditionN+1 = false? Возникает вопрос влияют ли InitN на conditionM? не переходя к частностям и скорость и читаемость - правила грамотного кода. InitN подразумевает лишь промежуточные вычисления или инициализацию обьектов/параметров которые участвуют позднее в conditionN. Для общего случая, думаю, нет необходимости знать как влияют InitN на conditionM. Даже если зависят, порядок инициализации соблюден в обоих вариантах. Может я неправ, я букварь еще пока до конца не осилил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 16:34 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
2 всем для тех, кто еще не в танке - это VB|VBA код. в VBA нет "как класса" сокращенного выполнения логических операций. это вопрос про то, какой вариант "ручной" оптимизации "лучше" 2 химик теоретик внешне оба варианта выглядят абсолютно эквивалентно. (с поправкой Exit на Exit Function) может быть для первого варианта компилятор выдаст чуть более короткий код, чем для второго, а может быть и точно одинаковый - я не проверял. (у меня проверялки нет.) Фактический выбор произойдет тогда, когда в этой схеме появится обработка ошибок (если появится), или когда логическое условие будет сложнее, чем конъюнкия операндов. кстати, отсутствие короткого вычисления лог. операций иногда сознательно используется для получения побочных эффектов. Например, для установки глобальных переменных состояния приложения. (это не призыв, а просто информация). В исходном виде второй, на мой вкус, более читаемый. А что окажется в "живой" процедуре читаемей и/или пригодней для внесения изменений - покажет живая процедура. :) вот такое мое дураковатое мнение. 2 Sarin авторЯ вообще с трудом представляю применение операторов AND, OR и NOT к небулевским типам. В VBA они могут применяться для выполнения битовых операций на целочисленных типах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 19:08 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
"В исходном виде второй, на мой вкус , более читаемый." вот это первый ответ (8 предидущих больше как анекдот про Ватсона и Холмса с программистом на воздушном шаре) Код примера к VBA отношения не имеет. Синтакс близок к басику только для визуальной простоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 21:17 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
химик теоретик"В исходном виде второй, на мой вкус , более читаемый." вот это первый ответ (8 предидущих больше как анекдот про Ватсона и Холмса с программистом на воздушном шаре) Код примера к VBA отношения не имеет. Синтакс близок к басику только для визуальной простоты. тогда и данный мной ответ смысла не имеет. слова складываются в предложения только как демонстация возможностей клавиатуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 22:04 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
даже не буду говорить, как это на самом деле читается... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 22:05 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
Второй вариант лучше в плане "что грамотнее". Если exit понимать как выход из подпрограммы, то он и ещще быстрее чем ветвление имхо. Просто классика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 20:42 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
химик теоретик"В исходном виде второй, на мой вкус , более читаемый." вот это первый ответ (8 предидущих больше как анекдот про Ватсона и Холмса с программистом на воздушном шаре) Код примера к VBA отношения не имеет. Синтакс близок к басику только для визуальной простоты. В таком случае, на мой вкус, все варианты одинаково "грамотны". Вопрос применения одного из них определяется внешним контекстом решаемой задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 07:55 |
|
||
|
читаю букварь... есть вопрос
|
|||
|---|---|---|---|
|
#18+
применительно к первому вопросу о двух кусках кода - скорость исполнения во многом будет зависеть от выбора компилятора или транслятора. Если попытаться самостотельно перевести этот код в машинный, то количество переходов во втором куске будет меньшим и, следовательно скорость выполнения выше... но здесь не ясна природа условий (состояний - condition)... скорее всего такие компиляторы языка java приведут оба этих куска кода к схожему виду и оба они будут выполняться одиноково, если писать на бейсике то можно использовать критерий количества строк, в первом случае сторок больше - а значит код будет выполняться медленнее что косается читабельности - то второй кусок кода привычнее для пишущего программиста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 15:43 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=190&tid=1347170]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 361ms |

| 0 / 0 |
