Отправляет email-рассылки с помощью сервиса Sendsay

[TC] программирование. техника отслеживания и проверки логических блоков

Здравствуйте, уважаемые!

Взялся проверить пример из учебника, в котором 15 пар операторных скобок.
даже прокомментировав каждую скобку столкнулся со сложностью отслеживания
какая ветка закрывается, какая открывается, а точнее сказать, запутываюсь к
какой логической части сценария относятся эти операторные скобки. Когда
операторов if и else несколько, достаточно легко держать логику в голове, но
когда их переваливает за 10, моя голова начинает опухать :-)
Знаю, что зрячие программисты отслеживают вложенность и последовательность
операций с помощью отступов. Но мне показалось это сложным и не удобным для
использования незрячему. Может быть есть какие-то методики отслеживания
вложенности, например, с помощью нумерации, но как это выглядит? Не хочу
изобретать велосипед, который наверняка уже кто-нибудь изобрел или даже
усовершенствовал.
Интересует именно техника отслеживания, а не сама методика.

p.s. Буду очень рад либо примеру, либо статье в интернет.

Ответить   "eastreb" Mon, 26 Sep 2011 17:04:26 +0400 (#1907309)

 

Ответы:

Vande omentaina, eastreb!

e> Интересует именно техника отслеживания,
а не сама методика.

Гм... ну 15 это, конечно, реально много, но вообще нужно просто комментировать
каждую скобочку или номерами, или, что лучше, парой слов о том, куда оно относится.

Ответить   Mon, 26 Sep 2011 17:32:28 +0300 (#1907351)

 

Привет Александр!
как то однажды Сергей Туманян совершенно справедливо заметил,
зачем что то придумывать
когда есть отступы и в визуал студии после настроек JAWS это замечательно работает.
конечно потребовалась некоторая работа над собой,
зато теперь меньше путаюсь.

в JAWS скриптах я постепенно пробую применять отступы но привычка вторая натура
и привыкание проходит сложно.
впрочем в первую очередь по причине того что там не часто бывает 15 вложений.
а ранее просто делал так:
;1
;2
;3
;...
;3
;2
;1

или почти то же самое но значками
только тут наоборот
главное условие
;младший блок
;~~
и отдельные блоки
;~

Виктор

Ответить   Mon, 26 Sep 2011 18:42:46 +0400 (#1907438)

 

Здравствуйте, друзья!

Спасибо всем кто откликнулся. Прочитал лекцию по условным операторам языка
Python и был поражен, насколько отступы эффективно использовать при
написании кода!
Попробовал применить в своем примере - и чудо! сразу стало видно где какой
уровень и какой уровень разветвляется. Супер!

Кстати, используя для чтения и написания кода языка PHP текстовый редактор
AkelPad 4.3.5 и скринридер nvda 2011.2 увидел, что скринридер проговаривает
количество табуляций очень удобно, а именно:

до трех - обычным способом (таб таб таб)
начиная с трех - сначала говорит количество, а потом количество символов, в
частности, табуляции.

Еще раз всем большое спасибо за подсказку! Все гениальное, часто бывает
простым!

Телепрограмма для кабельных каналов:
http://samaraobs.ru/UserFiles/tv.html
Грызунов Александр. Самара.

Ответить   "eastreb" Mon, 26 Sep 2011 21:20:12 +0400 (#1907837)

 

Vande omentaina, eastreb!

e> Python и был поражен, насколько
отступы эффективно использовать при

А меня именно это в Питоне дико бесит. Непонятно, где _конец_ того или иного
ветвления или цикла.

Ответить   Mon, 26 Sep 2011 21:03:57 +0300 (#1907971)

 

Приветствую всех.

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

Плагин coder::Code Fold, coder::Setting сворачивает /разворачивает блоки кода,
что позволяет видеть их логическую организацию. Для фигурных скобок работает
неплохо.

Успехов. Анатолий.

Ответить   "i_chay" Tue, 27 Sep 2011 00:14:09 +0400 (#1908444)

 

Vande omentaina, i_chay!

i> Плагин XBracket... (отображается
как несколько плагинов) дает возможность перемещаться

А можете объяснить, плиз,как для идиота, как с ними работать? Так и не понял
:-(.

Ответить   Tue, 27 Sep 2011 00:03:58 +0300 (#1908671)

 

Приветствую всех.

Как для идиота? Не могу, не силен в этой области педагогики.

1. Открываете akelpad, меню Настройки - Плагины.
2. В открывшемся диалоге, в списке плагинов находите плагины и делаете:
XBrackets::Main -- отметить;
XBrackets::GoToMatchingBracket -- назначить комбинацию клавиш
XBrackets::SelToMatchingBracket -- назначить комбинацию клавиш.
XBrackets::Settings - можно назначить комбинацию клавиш, а можно не назначать
и вызывать плагин из диалога "Плагины" (это плагин настройки поведения вышеперечисленных
плагинов). Однако при вызове плагина окно со списком плагинов закрывается.
3. Для сворачивания блоков:
Coder::Code Fold -- отметить;
Coder::Settings -- вызвать. Там будут вкладки Code Fold1 и Code Fold2 -- на второй
можно назначить комбинации клавиш или посмотреть те, что по умолчанию.
Опять же, при вызове плагина список плагинов закрывается, поэтому убедитесь потом,
что все отметки остались на своих местах.
Перезагрузите akelpad (т.к. отметки означают, что плагины будут загружаться при
старте редактора).
Пользуйтесь.
Насколько я помню, folding не будет работать, пока у файла не появится расширение,
по которому плагин определяет язык разработки.

Успехов. Анатолий.

Ответить   "i_chay" Tue, 27 Sep 2011 01:57:56 +0400 (#1908817)

 

Здравствуйте, eastreb.

Лучший вариант - это всё-таки отступы. Здесь и не будет проблем с
корпоративной работой совместно со зрячими программистами.
Для наиболее удобной работы с отступами без зрения следует использовать
соответствующие функции программы экранного доступа. Правда в
малофункциональных screenreader'ах с ними бывают проблемы.
Идеальный же вариант - это брайлевский дисплей.
Ну а так ещё можете просто писать соответствующий комментарий перед каждым
оператором, начинающем новую ветвь, например:
; Вложение 1 функции расчёта
; Вложение 4 функции переноса
Однако визуально это не очень удобно воспринимать. Так что вряд ли имеет
смысл набивать на это руку, так как когда-нибудь может понадобиться работать
в команде.
Успехов. Никита.

Ответить   Mon, 26 Sep 2011 19:21:35 +0400 (#1907461)

 

вы сами ответили на свой вопрос:
голову надо тренировать и держать там структуру.
я пишу коментарии ..
// проверяем содержимое
if content= true then begin
if r<> count then begin
..

else begin
..
end; // r<> count
end; // проверяем содержимое

--
вообщем примерно так..
другое дело смотреть чужой код..
но было бы желание.

Ответить   "kogerer" Wed, 28 Sep 2011 09:54:33 +0300 (#1912851)