Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Основные концепции функционирования




Как было сказано в разделе 3.1, действиями компьютера управляют инструкции. Для выполнения конкретной задачи в память записывается соответствующая программа, состоящая из множества команд. Команды по очереди пересылаются из памяти в процессор, который их выполняет. Данные, используемые в качестве операндов команд, также хранятся в памяти. Вот пример типичной команды:

1) Add R0,LOCA

Эта команда складывает операнд, хранящийся в памяти по адресу LOCA, с операндом, хранящимся в регистре R0 процессора, и помещает результат в этот же регистр. Исходное содержимое памяти по адресу LOCA не меняется, а содер­жимое регистра R0 перезаписывается. Данная команда выполняется в несколько этапов. Сначала она пересылается из памяти в процессор. Затем операнд коман­ды считывается из памяти по адресу LOCA и складывается с содержимым регист­ра R0, после чего результирующая сумма записывается в регистр R0.

В описанной команде Add объединяются две операции: доступ к памяти и опе­рация АЛУ. Во многих современных компьютерах эти два типа операций выпол­няются с помощью отдельных команд. Такое разделение основывается на сообра­жениях производительности, о которых мы поговорим ниже. Приведенная выше команда может быть реализована и в виде двух команд:

1) Load R3,LOCA для Intel Architecture (IA-32): mov bx,loca

Add R0,R3 add ax,bx

Первая из этих команд копирует содержимое памяти по адресу LOCA в ре­гистр процессора R1, а вторая команда складывает содержимое регистров R1 и R0 и помещает сумму в регистр R0. Обратите внимание, что в результате выполне­ния двух команд исходное содержимое обоих регистров уничтожается, а содер­жимое памяти по адресу LOCA сохраняется.

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

На рис. 3.2 показано, как соединяются между собой память и процессор. Кро­ме того, рисунок иллюстрирует несколько важных особенностей функционирова­ния процессора, о которых мы с вами еще не говорили. На нем не показана реаль­ная схема соединений этих компонентов, поскольку пока мы обсуждаем только их функциональные характеристики. Более детально соединение компонентов описывается в разделе 8 при рассмотрении конструкции процессора.

Кроме АЛУ и управляющих схем процессор содержит множество регистров, предназначенных для разных целей. В регистре команды (Instruction Register, IR) содержится код выполняемой в данный момент команды. Ее результат доступен управляющим схемам, которые генерируют сигналы для управления различными элементами, участвующими в выполнении команды. Еще один специализирован­ный регистр, называемый счетчиком команд (Program Counter, PC), служит для контроля за ходом выполнения программы. В нем содержится адрес следующей команды, подлежащей выборке и выполнению. Пока выполняется очередная ко­манда, содержимое регистра PC обновляется — в него записывается адрес следую­щей команды. Говорят, что регистр PC указывает на команду, которая должна быть выбрана из памяти. Кроме регистров IR и PC на рис. 3.2 показано n регистров общего назначения, от R0 до R„-i. Для чего они нужны, объясняется в главе 2.

Наконец, еще два регистра обеспечивают взаимодействие с памятью. Это ре­гистр адреса (Memory Address Register, MAR) и регистр данных (Memory Data Register, MDR). В регистре MAR содержится адрес, по которому производится обращение к памяти, а в регистре MDR — данные, которые должны быть записа­ны в память или прочитаны из таковой по этому адресу.

Рассмотрим типичный процесс выполнения программы компьютером. Про­грамма располагается в памяти, куда обычно попадает через входное устройство. Ее выполнение начинается с записи в регистр PC адреса первой команды. Содер­жимое этого регистра пересылается в регистр MAR, а в память направляется управляющий сигнал Read. Когда истекает время, необходимое для доступа к па­мяти, адресуемое слово (в данном случае — первая команда программы) считыва­ется из памяти и загружается в регистр MDR. Затем содержимое регистра MDR пересылается в регистр IR. Команда готова к декодированию и выполнению.

Если команда требует, чтобы АЛУ выполнило определенную операцию, для нее необходимо получить операнды. Операнд, располагающийся в памяти (он может находиться и в регистре общего назначения), нужно сначала из таковой извлечь, переслав его адрес в регистр MAR и инициализировав цикл Read. После пересыл­ки из памяти в регистр MDR операнд будет направлен в АЛУ. Аналогичным обра­зом туда же будут переданы и остальные необходимые команде операнды, после чего АЛУ сможет выполнить требуемую операцию. Если результат должен быть сохранен в памяти, он будет записан в регистр MDR. Затем адрес, по которому его нужно записать в память, будет помещен в регистр MAR, после чего будет иниции­рован цикл Write. В какой-то момент в ходе выполнения текущей инструкции со­держимое регистра PC увеличивается, и он начинает указывать на следующую подлежащую выполнению инструкцию. Другими словами, как только завершится выполнение текущей инструкции, можно будет приступать к выборке следующей.

Рис. 3.2. Соединения между процессором и памятью

Компьютер не только пересылает данные между памятью и процессором, но и принимает их от входных устройств, а также отсылает выходным устройствам. Поэтому среди машинных команд имеются и команды для выполнения операций ввода-вывода.

Если возникает необходимость срочно обслужить некоторое устройство (на­пример, когда устройство мониторинга в автоматизированном промышленном процессе обнаружит опасную ситуацию), нормальное выполнение программы может быть прервано. Для того чтобы немедленно отреагировать на эту ситуа­цию, компьютер должен прервать выполнение текущей программы. С этой целью устройство генерирует сигнал прерывания. Прерывание (interrupt) — это запрос, поступающий от устройства ввода-вывода, с требованием предоставить ему про­цессорное время. Для обслуживания этого устройства процессор выполняет соот­ветствующую программу обработки прерывания. А поскольку ее выполнение мо­жет изменить внутреннее состояние процессора, перед обслуживанием прерыва­ния нужно сохранить его состояние в памяти. Обычно в ходе этой операции сохраняется содержимое регистра PC, регистров общего назначения и некоторая управляющая информация. По завершении работы программы обработки преры­вания состояние процессора восстанавливается и прерванная программа продол­жает свою работу. Процессор со всеми его элементами (рис. 3.2) обычно реализует­ся в виде одной микросхемы, на которой располагается как минимум одно устрой­ство кэш-памяти. Такие чипы называются VLSI (VLSI — аббревиатура от Very Large Scale Integration, что переводится как очень крупномасштабная интеграция).

Структура шины

До сих пор речь шла о функциях отдельных частей компьютера. Однако для того чтобы составить действующую систему, эти части должны быть соединены меж­ду собой определенным образом. Способов их соединения существует очень мно­го, но мы рассмотрим лишь простейшие и самые распространенные из них.

Компьютер сможет работать с достаточной скоростью лишь при условии, что будет организован таким образом, чтобы полное слово данных обрабатывалось им за указанное время. Когда слово данных пересылается между устройствами, параллельно перемещаются и все его биты. Каждый бит пересылается по своему проводу (линии), так что для пересылки слова требуется несколько параллель­ных линий. Группа линий, образующая соединение между несколькими устрой­ствами, называется шиной (bus). Наряду с линиями, по которым пересылаются данные, шина содержит линии для передачи адреса и управляющих сигналов.

Для соединения нескольких функциональных устройств компьютера проще всего использовать общую шину (single bus), как показано на рис. 3.3. К этой шине подсоединяются все устройства компьютера. Поскольку за один раз по шине мо­жет пересылаться только одно слово данных, в каждый конкретный момент шину могут использовать только два устройства. Для организации процесса параллель­ной обработки нескольких запросов используются линии управления шиной. Главным достоинством архитектуры с общей шиной является ее низкая стои­мость и гибкость в отношении подключения периферийных устройств. При на­личии в системе нескольких шин возможно одновременное выполнение несколь­ких операций пересылки данных, благодаря чему такая система работает быстрее, но и стоимость ее выше.

Рис. 3.3. Архитектура системы с общей шиной

Подсоединенные к шине устройства могут заметно отличаться друг от друга по скорости функционирования. Некоторые электромеханические устройства, в том числе клавиатуры и принтеры, работают относительно медленно. Значительно вы­ше скорость работы, скажем, магнитных и оптических дисков. А память и процес­сор функционируют со скоростью электронных схем, благодаря чему являются са­мыми быстрыми частями компьютера. Поскольку все эти три типа устройств могут взаимодействовать между собой через шину, необходим такой механизм пере­сылки данных, который не ограничивал бы скорость обмена информацией между любыми двумя устройствами скоростью более медленного из них и сглаживал бы разницу в скорости работы процессора, памяти и внешних устройств.

Самый распространенный подход к решению этой задачи основан на исполь­зовании буферных регистров, которые встраиваются во внешние устройства для хранения получаемой ими информации. Для примера давайте рассмотрим про­цесс передачи кода символа от процессора принтеру. Процессор пересылает дан­ные по шине в буфер принтера. Поскольку буфер представляет собой электрон­ный регистр, пересылка выполняется очень быстро. Когда буфер будет заполнен, принтер начнет печатать, и вмешательство процессора больше не потребуется. Шина и процессор освобождаются для другой работы, которая может выполнять­ся одновременно с печатью символа, хранящегося в буфере принтера. Таким обра­зом, использование буферных регистров сглаживает различия в скорости функ­ционирования процессора, памяти и устройств ввода-вывода и предотвращает блокирование высокоскоростного процессора медленными устройствами на все время выполнения операций ввода-вывода. Процессор может быстро переклю­чаться от одного устройства к другому, обслуживая их параллельно.

Программное обеспечение

Для того чтобы пользователь мог запустить прикладную программу, в памяти компьютера должно уже содержаться некоторое системное программное обеспе­чение. Системное программное обеспечение — это набор программ, предназначен­ных для выполнения следующих функций:

· получение и интерпретация команд пользователя;

· ввод и редактирование прикладных программ, их сохранение в файлах на вторичных запоминающих устройствах;

· управление процессом сохранения файлов на вторичных запоминающих устройствах и извлечение их с указанных устройств;

· запуск стандартных прикладных программ, таких как текстовые процес­соры, электронные таблицы или игры, с данными, которые предоставля­ются пользователем;

· управление устройствами ввода-вывода для получения входной информа­ции и вывода выходных данных;

· трансляция исходного кода программ, подготовленных ранее пользовате­лем, в объектные модули, состоящие из машинных команд;

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

Таким образом, системное программное обеспечение отвечает за координиро­вание всех операций, выполняемых в компьютерной системе. В этом разделе мы рассмотрим его важнейшие аспекты.

Прикладные программы обычно пишутся на языках программирования высо­кого уровня, в том числе на С, C++, Java, Pascal, FORTRAN и т.д., позволяющих программисту задать действия, которые должна выполнить программа (скажем, математические вычисления или обработку строк текста). Такие операции описываются в фор­мате, не зависящем от типа компьютера, который будет выполнять программу.

Программисту, использующему язык высокого уровня, не нужно знать машин­ные команды и особенности их использования. Специальная системная програм­ма, называемая компилятором, транслирует программу на языке высокого уровня в программу на машинном языке, состоящую из таких команд, как Add и Load, о которых рассказывалось в разделе 3.2.

Еще одна важная системная программа, которой пользуются все программи­сты, называется текстовым редактором. Она предназначена для ввода и редакти­рования прикладных программ. Пользователь такой программы с помощью кла­виатуры вводит и редактирует инструкции исходного текста программы и накап­ливает их в файле. Файл — это просто последовательность буквенно-цифровых символов или двоичных данных, которая сохраняется в памяти или на вторичном запоминающем устройстве. К файлу можно обращаться по заданному пользова­телем имени.

Сосредоточим внимание на ключевом компоненте систем­ного программного обеспечения, называемом операционной системой (ОС). Это большая программа, а точнее, целый набор программ, используемый для управле­ния взаимодействием различных устройств компьютера при выполнении при­кладных программ. Компоненты операционной системы отвечают за предостав­ление прикладным программам ресурсов компьютера — основной памяти и памя­ти на магнитных дисках, устройств ввода-вывода и т. д.

Чтобы понять назначение и основные принципы функционирования операци­онной системы, давайте рассмотрим систему с одним процессором, одним диском и одним принтером. Сначала мы обсудим процесс выполнения прикладной про­граммы. Когда он станет вам понятен, мы сможем поговорить о том, как операци­онная система организует одновременное выполнение нескольких прикладных программ. Предположим, у нас имеется уже откомпилированная прикладная про­грамма, сохраненная в виде машинных команд на диске. Первым делом файл, в ко­тором хранится эта программа, нужно переслать в память. Как только это будет сделано, начнется выполнение программы. Допустим, что в функции программы входит чтение файла данных с диска в основную память, выполнение определен­ных вычислений с этими данными и печать результатов. Когда выполняемой про­грамме потребуется файл данных, программа попросит операционную систему переслать ей таковой с диска в память. Операционная система выполнит этот за­прос и вернет управление прикладной программе, которая перейдет к вычислени­ям. Когда вычисления будут завершены и придет время печати результатов, при­кладная программа снова направит запрос операционной системе. В ответ будет осуществлена соответствующая программа операционной системы, которая обес­печит отправку нужных данных на принтер.

Итак, вы видите, что при выполнении прикладной программы управление по­стоянно передается то ей, то программам операционной системы. Процесс пооче­редного использования процессора можно проиллюстрировать линейной диа­граммой, показанной на рис. 3.4. В течение времени от момента t 0 до момента t 1 одна из программ операционной системы инициирует загрузку прикладной программы с диска в память, дожидается завершения процесса загрузки, а затем передает управление прикладной программе. Аналогичные процессы происходят с момента t 2 до момента t 3 и с момента t 4 до момента t 5, когда операционная систе­ма считывает файл данных с диска в основную память и когда она печатает ре­зультаты. После момента времени t 5 операционная система может загрузить и вы­полнить другую прикладную программу.

Рис. 3.4. Поочередное использование процессора прикладной программой и программами операционной системы

А теперь давайте рассмотрим способ более эффективного использования ре­сурсов компьютера, заключающийся в параллельном выполнении нескольких программ. Обратите внимание, что в течение отрезка времени от момента (t 4 до момента t 5 ни процессор, ни диск не заняты никакой работой. В это время работа­ет только принтер, и операционная система могла бы загрузить в память следую­щую программу. Аналогичным образом, в промежуток времени от t 0 до t 1 опера­ционная система могла бы печатать результаты, сгенерированные предыдущей программой (пока текущая программа загружается с диска). Именно так опера­ционная система управляет параллельным выполнением нескольких прикладных программ, обеспечивая поочередное использование ими ресурсов компьютера. Такая схема параллельного выполнения программ называется многозадачностью.

3.4.1.Этапы подготовки и решения задач на ЭВМ

На ЭВМ могут решаться задачи различного характера, например: научно-инженер­ные; разработки системного программного обеспечения; обучения; управления произ­водственными процессами и т. д. Для примера рассмотрим процесс подготовки и решения на ЭВМ научно-инженерных задач. Здесь можно выделить следующие этапы:

- постановка задачи;

- математическое описание задачи;

- выбор и обоснование метода решения;

- алгоритмизация вычислительного процесса;

- составление программы;

- отладка программы;

- решение задачи на компьютере и анализ результатов.

В задачах другого класса некоторые этапы могут отсутствовать, например, в зада­чах разработки системного программного обеспечения отсутствует математическое описание.

Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу, алгоритм или даже в поста­новку задачи. Для уменьшения числа подобных изменений необходимо на каждом эта­пе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программирова­нием, может быть настолько тесной, что разделение их становится затруднительным.

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

Математическое описание задачи. Настоящий этап характеризуется математичес­кой формализацией задачи, при которой существующие соотношения между величина­ми, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель явления с определенной точностью, допущения­ми и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин.

Математическая модель должна удовлетворять, по крайней мере, двум требованиям:

- реалистичности;

- реализуемости.

Под реалистичностью понимается правильное отра­жение моделью наиболее существенных черт исследуемого явления.

Реализуемость до­стигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свес­ти задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.

Выбор и обоснование метода решения. Модель решения задачи с учетом ее особенностей должна быть доведена до решения при помощи конкретных методов решения. Само по себе математическое описание задачи в большинстве случаев трудно перевести на язык машины. Выбор и использование метода решения задачи по­зволяет привести решение задачи к конкретным машинным операциям. При обосновании выбора метода необходимо учитывать различные факторы и условия, в том числе точность вычислений, время решения задачи на ЭВМ, требуемый объем памяти и другие.

Одну и ту же задачу можно решить различными методами, при этом в рамках каждо­го метода можно составить различные алгоритмы.

Алгоритмизация вычислительного процесса. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается, например, блок-схема алгоритма.

Составление программы. При составлении программы алгоритм решения задачи переводится на конкретный язык программирования. Для программирования обычно используются языки высокого уровня, поэтому составленная программа требует перевода ее на машинный язык ЭВМ. После такого перевода выполняется уже соответству­ющая машинная программа.

Отладка программы. Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе. В ходе синтаксического контроля программы транслятором вы­деляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках ЭВМ выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора.

После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Для этого используются специальные методы, например, в программе выбираются контрольные точки, для ко­торых вручную рассчитываются промежуточные результаты. Эти результаты сверяют­ся со значениями, получаемыми ЭВМ в данных точках при выполнении отлаживаемой программы. Кроме того, для поиска ошибок могут быть использованы отладчики, вы­полняющие специальные действия на этапе отладки, например, удаление, замена или вставка отдельных операторов или целых фрагментов программы, вывод или изменение значений заданных переменных.

Решение задачи на ЭВМ и анализ результатов. После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ЭВМ для различных наборов исходных данных. Получае­мые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.

Разработанная программа длительного пользования устанавливается на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К программе прилагается документация, включая инструкцию для пользователя.

Чаще всего при установке программы в ЭВМ для ее последующего использования, с ней устанавливаются различные вспомогательные программы (утилиты, справочники, настройщики и т.д.), а также необходимые для работы программы разного рода файлы с текстовой, графической, звуковой и другой информацией.

3.4.2.Алгоритмы и способы их описания (для более детального изучения раздела можно посмотреть ресурс http://www.tmn.fio.ru/works/04x/306/P04_04/page/p1.htm)

Понятие алгоритма

Для составления программы, предназначенной для решения на ЭВМ какой-либо за­дачи, требуется составление алгоритма ее решения.

Алгоритм — это точное предписание, которое определяет процесс, ведущий от получения исходных данных к требуемому конечному результату Алгоритмами, например, яв­ляются правила сложения, умножения, решения алгебраических уравнений, умно­жения матриц и т.п.

Слово алгоритм происходит от algoritmi, являющегося латин­ской транслитерацией арабского имени хорезмийского математика IX века аль-Хорезми. Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.

Каждый алгоритм создаётся в расчёте на выполнение конкретного исполнителя и должен содержать только те действия, которые допустимы для исполнителя, которому предназначается данный алгоритм. Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнения.

Применительно к ЭВМ алгоритм определяет вычислительный процесс, начинающий­ся с обработки некоторой совокупности возможных исходных данных и направленный на получение определенных этими исходными данными результатов. Термин вычисли­тельный процесс распространяется и на обработку других видов информации, напри­мер, символьной, графической или звуковой.

Если вычислительный процесс заканчивается получением правильных результатов, то гово­рят, что соответствующий алгоритм применим к рассматриваемой совокупности ис­ходных данных. В противном случае говорят, что алгоритм неприменим к совокуп­ности исходных данных. Любой применимый алгоритм обладает следующими ос­новными свойствами;

- дискретность;

- понятность

- результативностью;

- определенностью;

- массовостью.

Дискретность алгоритма означает, что он исполняется по шагам: каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.

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

Результативность подразумевает, что каждый шаг (и алгоритм в целом) после своего завершения даёт среду, в которой все имеющиеся объекты однозначно определены, т.е. это означает, что должна быть возможность получения результата после выполне­ния конечного количества операций.

Определенность означает, что на каждом шаге однозначно определено преобразование объектов среды исполнителя, полученных на предшествующих шагах алгоритма. Это приводит к совпадению полу­чаемых результатов независимо от пользователя и применяемых технических средств.

Массовость означает, что имеется некоторое множество данных, которые могут обрабатываться алгоритмом, или данный алгоритм может быть применен для решения любой задачи одного типа.

заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных дан­ных.

 

Для задания алгоритма необходимо описать следующие его элементы:

- набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;

- правило начала;

- правило непосредственной переработки информации (описание последовательности действий);

- правило окончания;

- правило извлечения результатов.

Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким ис­полнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алго­ритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования.

Таким образом, можно дать следующее определение программы.

Программа для ЭВМ представляет собой описание алгоритма и данных на некотором языке программирования, предназначенное для последующего автоматического выполнения.

Способы описания алгоритмов

К основным способам описания алгоритмов для компьютеров можно отнести следующие:

- словесно-формульный;

- графический или структурный, т.е. с помощью блок-схем;

- программный, т.е. тексты на языках программирования.

При составлении алгоритмов большинства программ чаще всего используются словесно-формульный и блок-схемный способы. Иногда перед составлением программ на низкоуровневых языках про­граммирования типа языка Ассемблера алгоритм программы записывают, пользуясь кон­струкциями некоторого высокоуровнего языка программирования. Удобно использовать программное описание алгоритмов функционирования сложных программных систем. Так, для описания принципов функционирования ОС использовался Алголоподобный высо­коуровневый язык программирования.

При словесно-формальном способе алгоритм записывается в виде текста с форму­лами по пунктам, определяющим последовательность действий. Пусть, например, необходимо найти значение следующего выражения:

у=2а-(х+6).

Словесно-формульным способом алгоритм решения этой задачи может быть запи­сан в следующем виде:

1. Ввести значения а и х.

2. Сложить х и 6.

3. Умножить а на 2.

4. Вычесть из сумму (х+6).

5. Вывести у как результат вычисления выражения.

При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелка­ми. В блоках записывается последовательность действий. Первые понятия о блок-схемном описании алгоритмов ввели русские советские математики А.А. Ляпунов и Ю.Н. Янов в 1956 г.

Данный способ по сравнению с другими способами записи алгоритма имеет ряд пре­имуществ. Он наиболее нагляден: каждая операция вычислительного процесса изобра­жается отдельной геометрической фигурой. Кроме того, графическое изображение ал­горитма наглядно показывает разветвления путей решения задачи в зависимости от раз­личных условий, повторение отдельных этапов вычислительного процесса и другие детали.

Оформление алгоритмов программ должно соответствовать определенным требованиям. Например, в единой системе программной документации (ЕСПД) операции обработки данных и носители информации изображаются на схеме соот­ветствующими блоками. Большая часть блоков по построению условно вписана в пря­моугольник со сторонами а и b, размер b = 1,5a. Минимальное значение а равно 10 мм, увеличение а производится на число, кратное 5 мм. В пределах одной схемы рекомендуется изобра­жать блоки одинаковых размеров. Все блоки нумеруются. Виды и назначение основных блоков приведены в табл. 3.1.

Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводится параллельно линиям рамки. Стрелка в конце линии может не ста­виться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме логического) может выходить только одна линия. Логический блок мо­жет иметь в качестве продолжения один из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.

Схему алгоритма следует выполнять, как единое целое, однако в случае необходи­мости допускается обрывать линии, соединяющие блоки.

Если при обрыве линии продолжение схемы находится на этом же листе, то на од­ном и другом конце линии изображается специальный символ соединитель окруж­ность диаметром 0,5 а. Внутри парных окружностей указывается один и тот же иденти­фикатор. В качестве идентификатора, как правило, используется порядковый номер блока, к которому направлена соединительная линия.

Если схема занимает более одного листа, то в случае разрыва линии вместо окруж­ности используется межстраничный соединитель. Внутри каждого соединителя ука­зывается адрес — откуда и куда направлена соединительная линия. Адрес записывает­ся в две строки: в первой указывается номер листа, во второй — порядковый номер блока.

Блок-схема должна содержать все разветвления, циклы и обращения к подпрограм­мам, содержащиеся в программе.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...