Простыми словами
Господа хорошие!
Я всё по поводу своих тестов.
Вот скажите, среди вас есть много людей, которые сведущи в программировании.
Блок-схема, представленная на рисунке, представляет собой CASE-структуру, или это всего лишь несколько условных операторов?
И если ответ отрицателен, т.е. эта блок-схема не соответствует оператору case, то как этот самый case нарисовать блок-схемой?

Я всё по поводу своих тестов.
Вот скажите, среди вас есть много людей, которые сведущи в программировании.
Блок-схема, представленная на рисунке, представляет собой CASE-структуру, или это всего лишь несколько условных операторов?
И если ответ отрицателен, т.е. эта блок-схема не соответствует оператору case, то как этот самый case нарисовать блок-схемой?

Обычно, когда изображают case, конкретизируют условия, т.е. вместо Усл.1, Усл.2, Усл.3 пишут
имя_переменной1==значение1
имя_переменной1==значение2
имя_переменной1==значение3
паодчёркивая, что в case рассматриваются различные значения одной и той же переменной.
Иначе получается просто набор вложенных if.
А "по форме"?
Нету отдельно: не условных операторов, а именно case в виде какого-нибудь хитрого многоугольника?
Мне кажется, по форме все варианты должны располагаться параллельно на одном уровне
Если его представлять в виде таких "ифов", то исчезает нехорошая неоднозначность, которую я никогда не знала, с какой стороны обойти.
А "теориии" про это нигде не читала.
Хранитель печати, Dieter Zerium
Вот смотрите. Сейчас постараюсь слёту придумать что-нибудь не сильно убогое.
Код на псевдоязе ))
x=7
y=0
DO CASE
CASE x > 5
y=1
CASE x<12
y=2
CASE x#0
y=3
END CASE
Чему равен у, если выполняются условия и первого и второго пункта?
Если моя схема (не считая "усл") верна, то выполняется первый case, после чего дальнейшая проверка прекращается. Тогда у=1.
Если есть альтернативная запись, то возможно, что за первым условием проверятся все остальные.
Тогда у=3.
...
?
равенство ведь не обязательно?
Формально любые условия могут стоять. И формально же: не обязательно несовместные!
Вот два варианта:
и
Мне больше нравится второй, только его покрасивее надо бы нарисовать)
мне кажется, равенства необязательны, а вот перекрывание областей приведёт к ошибке.
Вот если наоборот: ничего не не будет выполняться, тогда пойдёт в обход
Блин!
Как многообразен мир! )))
*Это ГОСТовские обозначения?
Это ГОСТовские обозначения?
это ты у меня спрашиваешь?
Ой, теперь мне кажется, что там только равенства можно писать...
Вот пример нашёл, должен помочь) правда, не на русском))
www.rl.odessa.ua/_For_Lyceistu/Informatics/Uche...
АГА! Запутался!!! )))
Я "как рыба в воде" только в FoxPro. Все остальные языки я знаю как недоучка. Т.е. знаю, где посмотреть, в случае чего... Но вот так чтобы что-то утверждать железно... Могу только в Фоксе. И в нем как раз в CASE можно писать всё! Вплоть до РАЗНЫХ условий: не с одной переменной, а с разными. И всё будет работать (если логически непротиворечиво).
И чуток теории:
www.tspu.tula.ru/ivt/old_site/umr/delphi/delphi...
Стандарт блок-схем (в частности, ГОСТ) не предусматривает отдельного многоугольника для множественных ветвлений. Вместо этого рисуется ромб ветвления с множеством выходов:
(весь ГОСТ можно найти вот тут: http://cert.obninsk.ru/gost/282/282.html).
Вообще, мне кажется, для неясных случаев корректнее рисовать несколько ромбов "if". Хотя я думаю, что на блок-схеме не должно быть пересекающихся альтернатив в case, она же рисуется для специально подобранных учебных задач.
Да и вообще я считаю пересекающиеся альтернативы в case неправильными)
запутался, ага
))
в Си равенство обязательно
тот пример (с пересекающимися условиями), — это не порождение моего больного воображения. Это задание FEPO! Я вынуждена объяснять студентам, что будет при выполнении такого фрагмента кода ((((
Я говорю всегда, что первое истинное условие обрывает дальнейшую проверку.
Но на самом деле ни в чем не уверена.
Хотя, судя по всем блок-схемам, это действительно так!
что-то теперь мне еще хуже, чем было вначале ((((
я тоже запуталась (((
Посмотрела ссылку Dieter Zerium'а; почитала учебник по VB...
Понятно... ФоксПро меня полностью развратил... Это не язык, это пир духа какой-то на нем всё можно...
Ни в Паскале, ни в Бэйсике такие штуки тоже не пройдут!
Откуда же они это в ФЕПО взяли? ((((
вот эта схема из поста Dieter Zerium ближе всего к классическому определению switch
только оно что-то фигово вставляется ((
тот пример (с пересекающимися условиями), — это не порождение моего больного воображения. Это задание FEPO! Я вынуждена объяснять студентам, что будет при выполнении такого фрагмента кода ((((
вот так всегда: учат одному, а спрашивают другое((
Жизнь тяжела у всех ))))