Просто я обычно создаю массивы с параметрами, а код в процедурах одинаковый. Передаю в процедуру индекс массива (массивов). Уменьшается код, легче искать ошибки.
Вопрос же не в процедурах, а в том, чтобы это дерево if-ов записать,
как грозился Sart, без вложений.
В простейших случаях это, конечно, возможно. Но в общем случае
стремиться к этому ...
Я, например, не испытываю по отношению к таким структурам никаких
предубеждений. Наоборот, грамотно записанная такая структура
отлично проявляет логику. И отлаживать ее - никаких проблем.
И исполняется быстрее чем сложные логические выражения или,
тем более, процедуры в одну строку.
Вопрос же не в процедурах, а в том, чтобы это дерево if-ов записать,
как грозился Sart, без вложений.
В простейших случаях это, конечно, возможно. Но в общем случае
стремиться к этому ...
Я, например, не испытываю по отношению к таким структурам никаких
предубеждений. Наоборот, грамотно записанная такая структура
отлично проявляет логику. И отлаживать ее - никаких проблем.
И исполняется быстрее чем сложные логические выражения или,
тем более, процедуры в одну строку.
Sart:
На мой взгляд, тут нужно переделывать логику. Программа не должна
быть такой сложной.
На самом деле, если вникнуть, все программы довольно просты
по своей логике.
С уважением - С.Д.
Вы еще не знаете задачу, а уже считаете, что надо переделывать
логику ? То есть сложность логики задается желанием программиста,
а не задачей ? Интересно, а я всегда считал, что логика должна
адекватно отражать задачу и при этом должна быть оптимальна
с точки зрения экономии ресурсов, быстродействия и прозрачности.
А уж сложная она или простая - не от нас зависит.
Если все программы, которые вы писали в своей жизни, просты по
своей логике, то это не значит что просты ВСЕ программы. :-))
Mathemat:
Нет, Yurixx, логику переделывать не обязательно. Но разбить всю программу
на блоки (функции) размером не более 30-50 строк каждая вполне
можно.
Совершенно верно. Когда-то очень давно я работал в военной конторе
и там одно из требований к исходным текстам программ заключалось
в слудующем-
- исходный текст любой функции должен умещаться на странице
А4.
А программы были не простыми , с нашими экспертами их не сравнить.
..
Mathemat:
Нет, Yurixx, логику переделывать не обязательно. Но разбить всю программу
на блоки (функции) размером не более 30-50 строк каждая вполне
можно.
А разве я когда-то говорил обратное ?
Кстати, пример, который я привел, всего лишь пример. Просто стоит
избегать необоснованных обобщений. Не правда ли ?
Это вы все, господа, о совершенно простом выражении Integer'a
А как быть в советнике, который реализует более сложную логику, например, такого бинарного дерева:
if (x1>A) { if (x2>B) { if (x3>C) { if (x4>D) procedure_1(....); else procedure_2(....); } else { if (x5>E) procedure_3(....); else procedure_4(....); } } else { if (x6>F) { if (x7>G) procedure_5(....); else procedure_6(....); } else { if (x8>H) procedure_7(....); else procedure_8(....); } } } else { if (x9>I) { if (x10>J) { if (x11>K) procedure_9(....); else procedure_10(....); } else { if (x12>L) procedure_11(....); else procedure_12(....); } } else { if (x13>M) { if (x14>N) procedure_13(....); else procedure_14(....); } else { if (x15>O) procedure_15(....); else procedure_16(....); } } }Это вы все, господа, о совершенно простом выражении Integer'a
А как быть в советнике, который реализует более сложную логику, например, такого бинарного дерева:
На самом деле, если вникнуть, все программы довольно просты по своей логике.
С уважением - С.Д.
Вопрос же не в процедурах, а в том, чтобы это дерево if-ов записать, как грозился Sart, без вложений.
В простейших случаях это, конечно, возможно. Но в общем случае стремиться к этому ...
Я, например, не испытываю по отношению к таким структурам никаких предубеждений. Наоборот, грамотно записанная такая структура отлично проявляет логику. И отлаживать ее - никаких проблем. И исполняется быстрее чем сложные логические выражения или, тем более, процедуры в одну строку.
Вопрос же не в процедурах, а в том, чтобы это дерево if-ов записать, как грозился Sart, без вложений.
В простейших случаях это, конечно, возможно. Но в общем случае стремиться к этому ...
Я, например, не испытываю по отношению к таким структурам никаких предубеждений. Наоборот, грамотно записанная такая структура отлично проявляет логику. И отлаживать ее - никаких проблем. И исполняется быстрее чем сложные логические выражения или, тем более, процедуры в одну строку.
Я использую такой вариант.Простейший вариант
ПризнАюсь честно, связи с моим примером не вижу.
В вашем случае если (X1>A && X1>B && X1<C) и если (X1>A && X1<B && X1>C) все равно i=2. И как же различить эти два варианта ?
На мой взгляд, тут нужно переделывать логику. Программа не должна быть такой сложной.
На самом деле, если вникнуть, все программы довольно просты по своей логике.
С уважением - С.Д.
Вы еще не знаете задачу, а уже считаете, что надо переделывать логику ? То есть сложность логики задается желанием программиста, а не задачей ? Интересно, а я всегда считал, что логика должна адекватно отражать задачу и при этом должна быть оптимальна с точки зрения экономии ресурсов, быстродействия и прозрачности. А уж сложная она или простая - не от нас зависит.
Если все программы, которые вы писали в своей жизни, просты по своей логике, то это не значит что просты ВСЕ программы. :-))
Нет, Yurixx, логику переделывать не обязательно. Но разбить всю программу на блоки (функции) размером не более 30-50 строк каждая вполне можно.
- исходный текст любой функции должен умещаться на странице А4.
А программы были не простыми , с нашими экспертами их не сравнить. ..
С уважением - С.Д.
Нет, Yurixx, логику переделывать не обязательно. Но разбить всю программу на блоки (функции) размером не более 30-50 строк каждая вполне можно.
А разве я когда-то говорил обратное ?
Кстати, пример, который я привел, всего лишь пример. Просто стоит избегать необоснованных обобщений. Не правда ли ?