[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 16
Описание файла
Файл "[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП" внутри архива находится в папке "Всякие мелочи". PDF-файл из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.
Просмотр PDF-файла онлайн
Текст 16 страницы из PDF
Более того, технология разработки блок-схем должна предусматривать последовательное раскрытие деталей алгоритма, постепенное уточнение действий и операций, выполняемых для решения задачи. Самый детальный способ описанияпрограммы – это описание на уровне команд или операций языка. Хотя этого не всегданужно, тем не менее, это возможный и самый низкий уровень описания, к которому нужно стремиться, в частности при документировании программ.Отмечу еще одну особенность блок-схем, которая иногда приводит к недоумению.17.2. Элементы блок-схем программБлок-схемы, как было уже отмечено, представляют собой ориентированный граф, ввершинах которого размещаются специфические элементы. Каждый элемент имеет особенную структуру, свое назначение и обозначение.
Самое существенное отличие элементов – число входящих и выходящих стрелок. Логика работы элемента блок-схемы в основном и определяется их числом. Основные элементы (их обозначения и назначение)представлены в таблицу расположенной ниже.№Обозначение элементаПроцесс1.0Условие12.3.0Условие1НазначениеЭлемент типа процесс описывает последовательностьдействий и операций. Операции выполняются одназадругой без условий.
Имеет одну входящую стрелкуи одну выходящую.Элемент ветвления, типаусловие. Если условие припроверке получает значениеистина (1, ДА, TRUE), тоделе выполняется переходпо стрелке помеченной 1.Если условие получает наконкретном шаге значениеложь (0, НЕТ, FALSE), товыполняется переход пострелке помеченной 0.Это вариант конструкцииусловие. Описание аналогично. Возможны и другиеварианты стрелок.
Самоеглавное: одна входит, а двевыходят.ПримечаниеИспользуетсякак элемент последовательнойдетализации.Можно использовать обозначения стрелок(1, ДА, Истина,FRUE) или (0,НЕТ,ЛОЖЬ,FALSE) соответственно.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”№Обозначение элементаНачало циклаКонеццикла4.ПараметрыциклаИз телациклаВ тело циклаНачало цикла5.Тело цикла74НазначениеДанный элемент, элементописания циклов, имеет двевходящие стрелки и две выходящие стрелки. Назначение стрелок показано на рисунке.
В поле данного блока записываются условияпродолжения цикла и изменяемые на каждом его шагепараметры.ПримечаниеДанныйэлемент рекомендуетсядляоформленияблок-схем лабораторных работ.Другой элемент для организации циклических фрагментов программ. Он соответствует ГОСТу.Этотэлемент состоит из двухчастей, в первой записываются начальные условияцикла, а во второй условияего продолжения.При организации вложенныхциклов не всегда является наглядным. Элемент не являетобязательсяным для ЛР.Конец циклаП ечать6.7.Элемент для обозначения В ЛР лучше исвывода информации, в ча- пользовать простности на печать.
Данный цесс.элемент похож на элементтипа процесс и во многихслучаях может быть им заменен.Ключевое условие12...NЭлемент типа переключа- Рекомендуетсятель. Имеет один вход и для выполнениямножество выходов. По ЛР по курсу.ключевому условию определяется (вычисляется) номер выхода, по которомупроизводитсяпередачауправления.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”№Обозначение элемента1Условие 128.Условие 275НазначениеПримечаниеЭто другая форма блока переключателя. Но есть и отличия, например, условия,могут быть разными и число выходов больше на единицу, так как предусмотренвариант, когда ни одно условие не сработало (поумолчанию - default).Применять разновидностиблоковпереключателя желательно на основе логики работы программы.Здесь представлена конструкция, которая не являетсяотдельным элементом блоксхемы, а состоит из трехважных блоков, которыедолжны присутствовать влюбом цикле: задание начальных условий цикла(НУ), тело цикла, проверкаусловиязавершения/продолжения цикла.Этупростейшую, но обобщенную блоксхему я включил для болеечеткого понимания циклов.Такуюконструкцию можноиспользовать соператором IF,if.Здесь также представленаконструкция, которая неявляется отдельным элементом блок-схемы, а состоит из трех важных блоков, аналогичных предыдущей конструкции.
Отличие заключается в том, чтотеоретическивозможенцикл без единого выполнения тела цикла (Сравниконструкции DO и WHILE).Этупростейшую, но обобщенную блоксхему я включил для болеечеткого понимания циклов.Такуюконструкцию можноиспользовать соператором IF,if.NУсловие NНУ цикла9.Тело циклаПродолжитьПроверказавершенияКонецНУ цикла10.ПроверказавершенияКонецПродолжитьТело цикла2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”№Обозначение элементаПроцедура11.Начало12.13.КонецА14.15.16.А76НазначениеТакой элемент используетсядля выделения в блоксхемах участков вызовапроцедур (функций, методов, подпрограмм и т.д.).Двойная стрелка показывает то, что выполняется возврат из процедуры.Данный элемент определяетначало алгоритма, началовыполненияпрограммы.Чаще всего в одной блоксхеме такой элемент один.Имеет одну выходящуюстрелку.Данный элемент определяетконец алгоритма, конец выполнения программы.
Таких элементов может бытьнесколько, в зависимости отлогики работы программы.Имеет однувходящуюстрелку.Данный (и следующий)элемент используется дляусловного разрыва соединяющих линий. В поле элемента записывается обозначение (чаще буква или цифра). Это обозначение должно соответствовать обозначению другой точки разрыва.Этот элемент является парным к предыдущему. Онипозволяюторганизоватьразрыв линий на одномлисте или на разных листах.Элементы в виде простыхлиний и линий со стрелками задают связи междублочнымиэлементамиблок-схем. Для линий безстрелокподразумеваетсястрелка: сверху - вниз ислева - направо. Линии сдвойными стрелками используются для обозначения вызова процедур.ПримечаниеНеобязательныйэлемент блоксхем.
В поляблока записывается названиепроцедуры.Для программ снесколькимивходаминачальныеэлементы должныбыть помечены.Элемент окончанияможетиметь один илинесколько входов.Линиимогутбыть ломаными,но только подпрямым углом(ГОСТ). Предпочтительнееиспользоватьлинии со стрелками.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”7717.3. Примеры блок-схем программВ данном разделе мы рассмотрим несколько примеров блок-схем для иллюстрациииспользования элементов и приемов построения алгоритмов.
Примеры простые и соответствуют программам, которые рассмотрены в других разделах настоящего пособия. Передблок-схемой дана ссылка на раздел, в котором описана программа ей соответствующая.Если щелкнуть мышкой на ссылку (с клавишей Ctrl) можно оперативно перейти к теступрограммы.Пример блок-схемы программы для командного файла, рассмотренного в разделе5.7. Примеры командных файлов. Данный командный файл соответвуют программе,которую нужно разработать в ЛР номер 2. В блок-схеме этого примерапродемонстрировано использование переключателя и элементов типа процесс. Отметим,Н ачалоО ч и с тка э кр а н аВы вод м еню(E C H O )З а п р о с кл а в и ш и(B E A S K )ERRORLEVEL = ?1Реж им 123Р еж им 2Конецчто переключатель в командном файле реализован с помощтю директив IF, поэтому,строго говоря, блок-схема не совсем точна, хотя полностью отражает алгоритмпрограммы.
Причина неточности данной блок-схемы заключается в том, не ясно куда мыбудем двигаться в том случае, когда будет получен результат ERRORLEVEL < 1.Вспомните, что сравнение выполняется по условию >=. При использовании BE ASKдопустимо назначить ключ возврата по умолчанию, например 3. Тогда программазавершиться даже при невозможности задания нужного номера с клавиатуры (отличными782009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”от 1, 2, 3). При использовании CHOICE такое невозможно, так как ключа по умолчаниюзадать нельзя.Когда выбран метод реализации алгоритма можно приступить к написаниюпрограммы. Если блок-схему для нашего командного файла построить после написанияпрограммы, то она может выглялеть так, как показано на следующем рисунке.Эта блок-схема является более точной, так как может правильно работать и в томслучае когда код возврата < 1.НачалоОчистка экранаВывод меню(ECHO)Запрос клавиши(BE ASK)ERRORLEVEL=3ДаНетERRORLEVEL=2ДаРежим 2НетERRORLEVEL=1ДаРежим 1НетКонецВ этой схеме переключатель построен на основе второй конструкции.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”79Пример блок-схемы алгоритма программы на языке Ассемблер с процедурами ( см.раздел 10.5.
Пример программы с процедурами ). Следующая блок-схема показывает какиспользовать блоки вызова процедур.НачалоЗагрузка DSВывод символаLETPUTCHПеревод строкиCRLFФормирование РА длинного адресаВывод символа ВTESTPПеревод строкиCRLFОжидание вводасимволаЗавершениепрограммыКонецДля отдельных процедур нужно разработать отдельные блок-схемы и представитьв отчете. В методических указаниях отмечено, что если Вы используете повторно одни ите же процедуры, то допускается не повторять в новых отчетах блок-схемы этих процедур. Программа для этой блок-схемы очень проста.
Однако, блок-схема нужна для детального описания шагов, которые нужно выполнить для решения задачи.В детальной блок-схеме мы можем расписать алгоритм работы программы вплотьдо отдельной команды. Это позволяет процедуру кодирования сделать простой и формализованной. Возможно в группах разработчиков и такое: один программист-аналитик разрабатывает алгоритмы и оформляет детальные блок-схемы, а другие, причем менее квалифицированные выполняют кодирование и отладку программ. Такое разделение возможно, так как процесс создания алгоритмов решения задач более трудоемок, требуетбольшего опыта и квалификации.
Часто бывает так, что начинающие программисты зани-2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”80маются кодированием программ до тех пор пока не получат достаточного опыта и знанийдля самостоятельной разработки сложных алгоритмов программ.Детальная блок-схема программы на Ассемблере для вывода 2-х символов приведена ниже.НачалоЗагрузка DSPUSH CSPOP DSВывод символа LETMOV DL , LETCALL PUTCHПеревод строкиCALL CRLFPUTCHCRLFФормирование РАLEA BX , TESTPMOV PA , BXMOV PA + 2 ,DSВывод символа ВMOV DL , 'B'PUSH DXCALL DWORD PTR CS:[PA]POP DXПеревод строкиCALL CRLFОжидание ввода символаMOV AH, 01HINT 021HЗавершение программыMOV AL, 0MOV AH, 4CHINT 21HКонецTESTPCRLF2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”81Ниже представлена блок-схема процедуры для программы печати символов и сканкодов клавиш ( см.
раздел 19.7. Программы для получения списка кодов ).НачалоУсловие концацикла не задано (1)КонецЧитать символ:key = getch()НетKey = 0ДаСимволпечатныйДаВыводсимволаВывод scanкодаНетААНетДаKey = 27(ESC)Вывод и запросподтвержденияkey = getch()Key = Y илиKey = 13 (Enter)НетДаКонецВ этой программе в интерактивном режиме считываются коды нажатых клавиш, ипроизводится их распечатка. Программа написана на языке СИ.
В данном примере проиллюстрировано: использование циклической конструкции. Использование условных элементов и применение элементов для разрыва линий связи в блок-схеме.В программе организован бесконечный цикл. Выход из цикла выполняется в телецикла при проверке нажатия клавиши ESC (код 27) и подтверждения клавишами Enter иликлавишей “Y”.