> -- Vlad писал(а):
> 1) Почему граница индекса задается одной сущностью (c0), а индексируется другая (c0.outs)? В смылсе я понимаю, что такого не всегда можно избежать, но только руки сразу чешутся - влепить туда ASSERT(c0.outCount == c0.outs.size()).
Потому что студент не заморачиваецца и использует массив статического предельного размера (динамически созданный под указанную максимальную степень графа) + его размер рядом. И правильно в данном случае делает.

> -- Цитата:
> 2) c0.outs[i] я бы хотел видеть в отдельной локальной переменной с говорящим названием. Глядишь и условие стало бы не таким "мясным" и ошибиться в нем было бы труднее.
И будем писать лишнюю строку до цикла и в теле для выборки текущего out? Лишняя контекстность и удлиннение. Какие проблемы прочитать нормальное логическое выражение - не представляю. Непривычка - только и всего.

> -- Цитата:
> 3) Таки for по индексу + проверка условия внутри нагляднее вот такого трехэтажного условия. Это как раз тот случай, когда Дейкстру можно принести в жертву практике.
Это тот случай, когда со студенческой скамьи надо натаскать на мат. логике и выражению мысли с помощью её предикатов. А иначе конечно - проще пытаться шаг за шагом проверять, не пора ли "спрыгнуть с поезда". Только где гарантии, что цепь таких проверок реально соответствует условию окончания итерационного процесса.

> -- Цитата:
> Вот именно это меня в VAR и бесит - подъем глаз  Разрыв с контекстом. Вообще я уже все сказал, что думаю по поводу этой вредной секции в соответствующей теме, не буду повторяться
Да не поднимайте... Сначала прочтите соглашение "пусть будем обозначать то-то и так-то...", а потом 7-8 строк кода в теле процедуры.