Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
Инженер - программист МАЗ
 Аватар для zloy_developer
293 / 64 / 2
Регистрация: 05.12.2011
Сообщений: 392
Записей в блоге: 3

Блок-схема: Как сделать нумерацию блоков

14.02.2015, 01:15. Показов 4854. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста какая блок-схема более правильная подходит к моей программе? И подскажите, как сделать нумерацию блоков-никак не пойму..


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Program laba;
Uses crt;
Const n=8;
Type mas=array[1..n] of real;
Var A,B,C:mas;
    i,count:integer;
Procedure InPut(Var A:mas;ch:char);
Var i:integer;
Begin
    writeln('Введите ',n,' элементов массива ',ch);
    For i:=1 to n do
     read(A[i]);
End;
Procedure OutPut(A:mas;ch:char);
Var i:integer;
Begin
    writeln('Массив ',ch);
    For i:=1 to n do
     write(A[i]:8:2);
    writeln;
End;
Function Min(a,b:real):real;
Begin
    if a<b then Min:=a
     else Min:=b;
End;
Begin
    clrscr; 
    InPut(A,'A');
    InPut(B,'B');
    For i:=1 to n do
    Begin
      C[i]:=Min(4*A[i],sqr(B[i]));
      if C[i]=sqr(B[i]) then inc(count);
    End;
    OutPut(A,'A');
    OutPut(B,'B');
    OutPut(C,'C');
    writeln('Таких элементов = ',count);
    readkey;
End.
Миниатюры
Блок-схема: Как сделать нумерацию блоков   Блок-схема: Как сделать нумерацию блоков  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2015, 01:15
Ответы с готовыми решениями:

блок-схема: как сделать?
помогите составить блок-схему! program indidualnoe; uses crt; const nmax=10; var f:array of string; r:array of integer; ...

Редактор блок-схем, как сделать так, чтобы линии соединяющие блоки сохранялись при перемещении блоков
Здравствуйте! Сел за написание курсовой работы и сильно заинтересовал один вопрос: Каждый блок можно соеденить линией - двойным кликом...

как сделать нумерацию на форме
Как сделать автонумерацию на форме, отчете В форму выводится информация из базы, но нужно добавить номер по порядку

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
Инженер - программист МАЗ
 Аватар для zloy_developer
293 / 64 / 2
Регистрация: 05.12.2011
Сообщений: 392
Записей в блоге: 3
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 как процедуры (предопределённые процессы), однако, это встроенные в язык процедуры, и алгоритм их работы вот уж точно скрыт от пользователя. Ну, и не Вы их писали. Обычно, в ущерб соответствию кода и блок-схемы, подобные вещи в блок-схему не включаются вовсе. И ещё стандартный ввод-вывод учитывается как оператор, а не как предопределённый процесс (процедура), коим он, по сути, является.

Ну, насчёт сокрытия данных верно было сказано... Я писал:
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Блок-схема у Вас неполная: на отдельных листах ещё следует привести блок-схемы Ваших подпрограмм
Блок-схемы процедур Ваших к блок-схеме программы прилагаются?

В том, что нельзя использовать предопределённый процесс - требование глупейшее и вредное. Я краем глаза слышал, что при расчёте метрик вызов подпрограммы (тот самый предопределённый процесс) принимается за оператор, а тело подпрограммы (процедура или функция, отдельный алгоритм) при расчёте метрики учитывается один раз. Можно, конечно, вместо каждого вызова нарисовать тело подпрограммы целиком, в тех местах, где она вызывается, но тогда метрика будет неверна: для Вашего случая откуда ни возьмись появятся три лишних цикла, которых у Вас нет.

Решений проблемы я вижу два:

1) Наглый. Полная блок-схема:



2) Честный. Блок-схема, как Ваша вторая, только убрать clrscr и readkey и заменить тип символа для inc(count), и изобразить, кроме основной блок-схемы, ещё три блок-схемы:



В этом случае, несмотря на наличие предопределённых процессов, никакие данные скрыты не будут, так как процессы эти представлены. Какой вариант Вам подойдёт, не знаю. Думаю, можно посоветоваться с преподавателем. Мол, "Вот, наваял, а каковы у нас стандарты оформления?" Ну, найдёте, что спросить.
1
Инженер - программист МАЗ
 Аватар для zloy_developer
293 / 64 / 2
Регистрация: 05.12.2011
Сообщений: 392
Записей в блоге: 3
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 раза), заменив формальные параметры на фактические... Ну и, гробики по подобию на ромбики в них поменять... Ну, например, для самой первой процедуры вместо

Название: 5.png
Просмотров: 102

Размер: 912 байт

придётся вставить



В общем, понятно, критерии эти я малость подзабыл (30 лет прошло, как-никак), но, если считать по потоку данных, то все подпрограммы, получается, надо вставлять...

Хотя, по-моему, можно и не вставлять, просто тело программы учитывать в критерии при каждом её вызове, а про сам прямоугольничек полосатый забыть. Но это дело вкуса. С другой стороны, с полной блок-схемы как-то приятнее и понятнее граф рисовать, если что...
1
Модератор
10431 / 5719 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
28.02.2015, 19:50
Да, и выкиньте из блок-схемы clrscr и readkey, их Вы ничем не замените... Я бы ещё всякие сообщения повыкидывал, типа "Введите массив...", "Результирующий массив..."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2015, 19:50
Помогаю со студенческими работами здесь

Как сделать нужную нумерацию
Мне нужно чтобы страница с введением начиналось с 4 страницы а первая страница вообще не учитывалась так как хочу вставить Оглавление....

Как сделать нумерацию массива
есть код программы: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void pch (int i) // Ввод функци pch { ...

Как сделать сквозную нумерацию?
Есть список устройств. Вопрос таков - Создайте метод назначения уникальных идентификаторов для каждого устройства(подразумевается сквозная...

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

Как сделать нумерацию строк в TextBox?
Решил сделать программу, просто которая читает файлы .vbs, во многих программах редактирования кода, есть нумерация строк, а так как Visual...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru