| Altair |
11.12.2008 13:30
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Совершенно случайно наткнулся на инструкцию для студентов по оформлению текстов программ.
Не со всеми пунктами однозначно согласен, но думаю развивать культуру программирования необходимо. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
| Lapp |
12.12.2008 23:56
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
"короткая схема" вычисляет выражение всегда слева направо, но, возможно, будут вычислены не все его составляющие... Именно, короткая схема (то есть то же самое, что && и || в С). Меня всегда восхищало, что, при хорошо продуманной схеме, она практически всегда (за исключением ооочень редких случаев) очень органично встраивается в алгоритм. Фактически, это именно ТО, что привел adriano - тоже вычисляются не все составляющие. Помню, когда мне нужно было придумать пример (реальный, ненадуманный) необходимости использования "длинной" схемы, пришлось немало потрудиться.. Lapp, я надеялся, что наличие "лишних" begin/end наведут на мысль, что condition - это не один оператор, а несколько. ...Увы, не вышло. Не навело Но, опять же, во многих случаях имеет смысл организовать Булевы функции, чтоб всю логику собрать компактно в одном месте. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
| andriano |
13.12.2008 10:49
Сообщение
#3
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Помню, когда мне нужно было придумать пример (реальный, ненадуманный) необходимости использования "длинной" схемы, пришлось немало потрудиться.. По этому поводу хочу сразу заметить, что в расчете на короткую схему следовало бы писать так:Т.е. принципиально с пустым телом. Что наводит на мысль о введении в ЯВУ новой высокоуровневой конструкции с гарантированным условным выполнением в заданном порядке вне зависимости от компилятоа и его настроек. Цитата Не навело Но и вторая итерация также оказалась недостаточно полной. Подправил. Цитата Но, опять же, во многих случаях имеет смысл организовать Булевы функции, чтоб всю логику собрать компактно в одном месте. Я часто пользуюсь локальными булевыми переменными, но считаю, что в данном случае (линейный алгоритм с роверками) это нецелесообразно. Собственно, речь шла о записи алгоритмов. И на примере рекомендаций по ссылке я еще раз убедился, что break/exit - "вредные" операторы. А еще одно наблюдение - одни предпочтения неизбежно влекут за собой другие. Так, отказ о exit в подобных конструкциях автоматически потребовал бы пересмотра ограничения на вложенность, затем размера табуляции, а затем и самого применения символа табуляции вместо пробелов. PS. А насчет "На мой взгляд, чем короче, тем лучше" - полностью согласен. Из-за этого даже очень редко использую пустые строки - дабы разместить на экране максимальное количество "полезных" строк. Сообщение отредактировано: andriano - 13.12.2008 10:52 |
Altair Как оформлять тексты программ 11.12.2008 13:30
andriano Категорически не согласен с пунктом 10 (не совсем ... 12.12.2008 22:50
Lapp На мой взгляд, чем короче, тем лучше:
begin
if n... 12.12.2008 23:06
volvo Lapp, очень опасный код на самом деле: где гаранти... 12.12.2008 23:15
Lapp где гарантия, что вычисление Condition1 произойде... 12.12.2008 23:18
volvo Нет никакой гарантии... Паскаль не определяет поря... 12.12.2008 23:24
andriano Lapp, я надеялся, что наличие "лишних" b... 12.12.2008 23:44
Altair
Поддерживаю, тем более речь не только о Паскале, ... 26.01.2009 16:35![]() ![]() |
|
Текстовая версия | 1.11.2025 6:59 |