|
Инженер - программист МАЗ
|
||||||
Блок-схема: Как сделать нумерацию блоков14.02.2015, 01:15. Показов 4854. Ответов 6
Метки нет (Все метки)
Здравствуйте! Подскажите, пожалуйста какая блок-схема более правильная подходит к моей программе? И подскажите, как сделать нумерацию блоков-никак не пойму..
0
|
||||||
| 14.02.2015, 01:15 | |
|
Ответы с готовыми решениями:
6
блок-схема: как сделать? Редактор блок-схем, как сделать так, чтобы линии соединяющие блоки сохранялись при перемещении блоков как сделать нумерацию на форме |
|
Модератор
10431 / 5719 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
|
|
| 17.02.2015, 00:05 | |
Сообщение было отмечено zloy_developer как решение
Решение
Вторая, в ней предопределённый цикл в явном виде. В первой же цикл синтезирован из оператора присваивания и оператора выбора, что не вполне корректно по отношению к Вашему коду. Идентификаторы символов в блок-схеме по ГОСТ 19.701-90 проставляется слева сверху от символа, при необходимости описание символов проставляется справа сверху от символа, мало ли что пояснить надо (символами по этому ГОСТ называются отдельные элементы блок-схемы). Комментарии к какому-либо месту блок-схемы изображаются, как правило, справа от блок-схемы штриховой линией, начало которой упирается в нужное место блок-схемы, а конец - вот в такую [ скобку нужной высоты, справа от которой (как правило, справа) и пишется комментарий. Можете ГОСТ этот почитать, но скажу так: пишите числа слева сверху фигурок, нумерация сверху вниз - слева направо, пример:
37 ┌───┴───┐ │x:=555;│ └───┬───┘ Иногда (не по ГОСТу) идентификаторы пишут так: ┌37─┴───┐ │x:=555;│ └───┬───┘ Добавлено через 13 минут Да, чуть не забыл. Блок-схема у Вас неполная: на отдельных листах ещё следует привести блок-схемы Ваших подпрограмм (InPut, OutPut, Min), оформляются так же, как и основная программа, только в терминаторах перед словами "Начало" или "Конец" указывается имя подпрограммы, и, ещё, возможно, (зависит от требований заказчика/учебного заведения), в стартовом терминаторе указывается список формальных параметров подпрограммы.
1
|
|
|
Инженер - программист МАЗ
|
|
| 25.02.2015, 16:12 [ТС] | |
|
Cyborg Drone, возникла проблема мне сказали что нельзя использовать предопределенный процесс, так как все данные скрыты, а мне надо посчитать метрики маккейба, джилба и граничных значений...
0
|
|
|
Модератор
10431 / 5719 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
|
||
| 25.02.2015, 22:45 | ||
Сообщение было отмечено zloy_developer как решение
Решение
Вообще-то, насколько мне известно, такие метрики считаются не на всю программу целиком, а только на ту её часть, которая написана конкретным программистом (группой программистов). Действительно, несправедливо считать метрику в том числе и на встроенные в язык процедуры и функции, программист их не писал. Можно, конечно, в ассемблерном коде начать ковыряться, и высчитывать, сколько в коде этих процедур (не в Вашем коде, заметьте) циклов, условий, узлов и прочей шелухи. И по этому делу метрику и посчитать. Если бы было так, у Вас бы проблем не возникло: откомпилировать программу до ассемблерного листинга, и посчитать всё, что надо. Только вот получившаяся метрика к Вам, как к программисту, имела бы отношение весьма опосредованное. На фоне всего того, что включено в программу для обеспечения её работы, Ваша часть, ну например, составит процентов 30.
Начнём с мелочей. Во-первых, ошибка. inc не процедура, а просто оператор. Заключить это дело следовало бы в прямоугольник без украшений по бокам. Можно ещё для ясности заменить inc(count) на count := count + 1. Вы абсолютно правильно указали clrscr и readkey как процедуры (предопределённые процессы), однако, это встроенные в язык процедуры, и алгоритм их работы вот уж точно скрыт от пользователя. Ну, и не Вы их писали. Обычно, в ущерб соответствию кода и блок-схемы, подобные вещи в блок-схему не включаются вовсе. И ещё стандартный ввод-вывод учитывается как оператор, а не как предопределённый процесс (процедура), коим он, по сути, является. Ну, насчёт сокрытия данных верно было сказано... Я писал: В том, что нельзя использовать предопределённый процесс - требование глупейшее и вредное. Я краем глаза слышал, что при расчёте метрик вызов подпрограммы (тот самый предопределённый процесс) принимается за оператор, а тело подпрограммы (процедура или функция, отдельный алгоритм) при расчёте метрики учитывается один раз. Можно, конечно, вместо каждого вызова нарисовать тело подпрограммы целиком, в тех местах, где она вызывается, но тогда метрика будет неверна: для Вашего случая откуда ни возьмись появятся три лишних цикла, которых у Вас нет. Решений проблемы я вижу два: 1) Наглый. Полная блок-схема: 2) Честный. Блок-схема, как Ваша вторая, только убрать clrscr и readkey и заменить тип символа для inc(count), и изобразить, кроме основной блок-схемы, ещё три блок-схемы: В этом случае, несмотря на наличие предопределённых процессов, никакие данные скрыты не будут, так как процессы эти представлены. Какой вариант Вам подойдёт, не знаю. Думаю, можно посоветоваться с преподавателем. Мол, "Вот, наваял, а каковы у нас стандарты оформления?" Ну, найдёте, что спросить.
1
|
||
|
Инженер - программист МАЗ
|
|
| 28.02.2015, 18:50 [ТС] | |
|
Cyborg Drone, Преподаватель сказал :
"Объединяйте все свои фрагменты в единый алгоритм. Для представления циклов используйте не шестиугольник, а ромб с одним входом. Все объединения на уровне потоков".
0
|
|
|
Модератор
10431 / 5719 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
|
|
| 28.02.2015, 19:43 | |
|
Ну, тогда первый вариант алгоритма (там как раз ромб с одним входом), а вместо прямоугольников с полосатыми боками придётся вставить тела подпрограмм (input 2 раза вставить, min 1 раз, output 3 раза), заменив формальные параметры на фактические... Ну и, гробики по подобию на ромбики в них поменять... Ну, например, для самой первой процедуры вместо
придётся вставить В общем, понятно, критерии эти я малость подзабыл (30 лет прошло, как-никак), но, если считать по потоку данных, то все подпрограммы, получается, надо вставлять... Хотя, по-моему, можно и не вставлять, просто тело программы учитывать в критерии при каждом её вызове, а про сам прямоугольничек полосатый забыть. Но это дело вкуса. С другой стороны, с полной блок-схемы как-то приятнее и понятнее граф рисовать, если что...
1
|
|
|
Модератор
10431 / 5719 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
|
|
| 28.02.2015, 19:50 | |
|
Да, и выкиньте из блок-схемы clrscr и readkey, их Вы ничем не замените... Я бы ещё всякие сообщения повыкидывал, типа "Введите массив...", "Результирующий массив..."
0
|
|
| 28.02.2015, 19:50 | |
|
Помогаю со студенческими работами здесь
7
Как сделать нумерацию массива Как сделать сквозную нумерацию? Подскажите как сделать исправить нумерацию Как сделать нумерацию строк в TextBox? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|