Словесная запись алгоритмов
Системная шина
В основе устройства ЭВМ лежит системная шина, которая служит для обмена командами и данными между компонентами ЭВМ, расположенными на материнской плате. ПУ подключаются к шине через контроллеры. Такая архитектура ЭВМ называется открытой, так как легко может быть расширена за счет подключения новых устройств. Передача информации по системной шине также осуществляется по тактам.
Системная шина включает в себя:
- кодовую шину данных для параллельной передачи всех разрядов числового кода (машинного слова) операнда из ОЗУ в МПП и обратно; имеет 64 разряда;
- кодовую шину адреса для параллельной передачи всех разрядов адреса ячейки ОЗУ; имеет 32 разряда;
- кодовую шину инструкций для передачи команд (управляющих сигналов, импульсов) во все блоки ЭВМ; простые команды кодируются одним байтом, но есть и команды, кодируемые двумя, тремя и более байтами; имеет 32 разряда;
- шину питания для подключения блоков ЭВМ к системе энергопитания.
Системная шина обеспечивает три направления передачи информации:
1) между МП и ОЗУ;
2) между МП и контроллерами устройств;
3) между ОЗУ и внешними устройствами (ВЗУ и ПУ, в режиме прямого доступа к памяти).
Все устройства подключаются к системной шине через контроллеры – устройства, которые обеспечивают взаимодействие внешних устройств и системной шины.
Чтобы освободить МП от управления обменом информацией между ОЗУ и внешними устройствами, например при чтении или записи информации, предусмотрен режим прямого доступа в память (DMA – Direct Memory Access). Таким образом, МП может заниматься выполнением других команд, не отвлекаясь на копирование информации между ОЗУ и внешними устройствами.
Характеристиками системной шины являются количество обслуживаемых ею устройств и ее пропускная способность, то есть максимально возможная скорость передачи информации. Пропускная способность шины зависит от следующих параметров:
- разрядность или ширина шины – количество бит, которое может быть передано по шине одновременно (существуют 8-, 16-, 32- и 64-разрядные шины);
- тактовая частота шины – частота, с которой передаются биты информации по шине.
Наиболее распространенные шины.
PCI (Peripheral Component Interconnect) – самая распространенная системная шина. Быстродействие шины не зависит от количества подсоединенных устройств. Поддерживает следующие режимы:
- Plug and Play (PnP) – автоматическое определение и настройка подключенного к шине устройства;
- Bus Mastering – режим единоличного управления шиной любым устройством, подключенным к шине, что позволяет быстро передать данные по шине и освободить ее.
AGP (Accelerated Graphics Port) – магистраль между видеокартой и ОЗУ. Разработана, так как параметры шины PCI не отвечают требованиям видеоадаптеров по быстродействию. Шина работает на большей частоте, что позволяет ускорить работу графической подсистемы ЭВМ.
Основные характеристики шин
Характеристика | PCI | AGP |
Разрядность шины данных/адреса, бит | 32/32 | 32/32 |
Рабочая частота, МГц | ||
Пропускная способность, Мбит/с | ||
Число подключаемых устройств, шт. |
Лекция 4
Понятие алгоритма
В основу работы ЭВМ положен программный принцип управления, состоящий в том, что ЭВМ выполняет действия по заранее заданной программе. Программа – это упорядоченная последовательность команд, которые понимает ЭВМ.
В основе любой программы лежит алгоритм. Алгоритм – это полное и точное описание на некотором языке конечной последовательности правил, указывающих исполнителю действия, которые он должен выполнить, чтобы за конечное время перейти от (варьируемых) исходных данных к искомому результату.
Термин «алгоритм» произошел от имени среднеазиатского ученого аль-Хорезми (787 – ок. 850), которым были описаны общие правила (названные позднее алгоритмами) выполнения основных арифметических действий в десятичной системе счисления. Эти алгоритмы изучаются в начальных разделах школьной математики. К числу алгоритмов школьного курса математики относятся также правила решения определенных видов уравнений или неравенств, правила построения различных геометрических фигур и т. п. Понятие алгоритма используется не только в математике, но и во многих областях человеческой деятельности, например, говорят об алгоритме управления производственным процессом, алгоритме управления полетом ракеты, алгоритме пользования бытовым прибором. Причем интуитивно под алгоритмом понимают некоторую систему правил, обладающих определенными свойствами.
Далее, изучая понятие алгоритма, мы будем предполагать, что его исполнителем является автоматическое устройство - ЭВМ. Это накладывает на запись алгоритма целый ряд обязательных требований. Сформулируем эти требования в виде перечня свойств, которыми должен обладать алгоритм, адресуемый к исполнению на ЭВМ.
1. Первым свойством алгоритма является дискретный (пошаговый) характер определяемого им процесса. Возникающая в результате такого разбиения запись алгоритма представляет собой упорядоченную последовательность отдельных предписаний (директив, команд), образующих прерывную/дискретную структуру алгоритма: только выполнив требования одного предписания можно приступить к исполнению следующего.
2. Исполнитель может выполнить алгоритм, если он ему понятен, то есть записан на понятном ему языке и содержит предписания, которые исполнитель может выполнить. Набор действий, которые могут быть выполнены исполнителем, называется системой команд исполнителя. Алгоритм не должен содержать описания действий, не входящих в систему команд исполнителя, то есть своей структурой команд и формой записи алгоритм должен быть ориентирован на конкретного исполнителя.
3. Алгоритмы, предназначенные для исполнения техническим устройством, не должны содержать предписаний, приводящих к неоднозначным действиям. Алгоритм рассчитан на чисто механическое исполнение, и если применять его повторно к одним и тем же исходным данным, то всегда должен получаться один и тот же результат; при этом и промежуточные результаты, полученные после соответствующих шагов алгоритмического процесса, тоже должны быть одинаковыми. Это свойство определенности и однозначности – детерминированности - алгоритма позволяет использовать в качестве исполнителя специальные машины-автоматы.
4. Основополагающим свойством алгоритма является его массовость, применимость к некоторому классу объектов, возможность получения результата при различных исходных данных на некоторой области допустимых значений. Например, исходными данными в алгоритмах аль-Хорезми могут быть любые пары десятичных чисел. Конечно, его способ не всегда самый рациональный по сравнению с известными приемами быстрого счета. Но смысл массовости алгоритма состоит как раз в том, что он одинаково пригоден для всех случаев, требует лишь механического выполнения цепочки простых действий и при этом исполнителю нет нужды в затратах творческой энергии.
5. Цель выполнения алгоритма – получение конечного результата посредством выполнения указанных преобразований над исходными данными. В алгоритмах аль-Хорезми исходными данными и результатом являлись числа. Причем при точном исполнении всех предписаний алгоритмический процесс должен заканчиваться за конечное число шагов. Это обязательное требование к алгоритмам – требование их результативности или конечности.
В математике известны вычислительные процедуры алгоритмического характера, не обладающие свойством конечности. Например, процедура вычисления числа p. Однако, если мы введем условие завершения вида «закончить после получения n десятичных знаков числа p», то получим алгоритм вычисления n десятичных знаков числа p. На этом принципе построены многие вычислительные алгоритмы.
6. Если алгоритм должен быть выполнен не просто за конечное время, а за разумное конечное время, то речь идет об эффективности алгоритма. Время выполнения алгоритма очень важный параметр, однако, понятие эффективности алгоритма трактуется шире, включая такие аспекты, как сложность, необходимые ресурсы, информационно-программное обеспечение. Эффективность алгоритма часто определяет возможность его практической реализации.
Алгоритмизация
Алгоритмизация – процесс разработки и описания алгоритма решения какой-либо задачи.
Пусть имеется некоторая математическая задача, которая может быть решена одним из известных математических методов. Как приступить к процессу построения алгоритма решения такой задачи?
Поскольку речь идет о разработке алгоритма для ЭВМ, то нужно сначала проанализировать возможность его машинной реализации, оценить ресурсы и возможности конкретной ЭВМ, имеющейся в распоряжении (в том числе, допустимую точность вычислений, необходимый объем запоминающих устройств, быстродействие, информационно-программное обеспечение).
Непосредственная разработка алгоритма начинается с осознания существа поставленной задачи, с анализа того, что нам известно, что следует получить в качестве результата, в какой форме нужно представить исходные данные и результаты вычислений. Следующая ступень – разработка общей идеи алгоритмического процесса и анализа этой идеи. После этого можно приступить к более детальной разработке уже задуманного конкретного алгоритма. И вот этот процесс разработки конкретного алгоритма, в соответствии с определением самого понятия «алгоритм», заключается в последовательном выполнении следующих пунктов:
1) разложении всего вычислительного процесса на отдельные шаги – возможные составные части алгоритма, что определяется внутренней логикой самого процесса и системой команд исполнителя;
2) установлении взаимосвязей между отдельными шагами алгоритма и порядка их следования, приводящего от известных исходных данных к искомому результату;
3) полном и точном описании содержания каждого шага алгоритма на языке выбранной алгоритмической системы;
4) проверке составленного алгоритма на предмет, действительно ли он реализует выбранный метод и приводит к искомому результату.
В результате проверки могут быть обнаружены ошибки и неточности, что вызывает необходимость доработки и коррекции алгоритма – возвращение к одному из предыдущих пунктов. Во многих случаях разработка алгоритма включает в себя многократно повторяющуюся процедуру его проверки и коррекции.
Процедура проверки и коррекции алгоритма производится не только с целью устранения ошибок, но и с целью улучшения, то есть оптимизации алгоритма. При определенном методе решения задачи оптимизация проводится с целью сокращения алгоритмических действий и упрощения по возможности самих этих действий. При этом алгоритм должен оставаться «эквивалентным» исходному. Будем называть два алгоритма эквивалентными если выполняются следующие условия:
1) множество допустимых исходных данных одного из них является множеством допустимых исходных данных и другого; из применимости одного алгоритма к каким-либо исходным данным следует применимость и другого алгоритма к этим данным;
2) применение этих алгоритмов к одним и тем же исходным данным дает одинаковые результаты.
Словесная запись алгоритмов
Самой распространенной формой представления алгоритмов, адресуемых человеку, является обычная словеснаязапись. В этой форме могут быть выражены любые алгоритмы. Но если такой алгоритм предназначен для его дальнейшей реализации на вычислительном устройстве, то принято придерживаться более формализованного способа построения фраз с тщательно отобранным набором слов. Кроме того, необходимо указывать начало и конец алгоритма, отмечать момент ввода в вычислительное устройство значений исходных данных и вывода/печати полученного результата. В вычислительных алгоритмах широко используется общепринятая математическая символика, язык формул. Вводится необходимая в вычислительной практике операция присваивания:
у := А
(читается: «у присвоить значение А»), где у – переменная; А – некоторое выражение/формула. Следует сначала выполнить все действия, предусмотренные формулой А, а затем полученный результат сохранить в качестве значения переменной у. Выражение А в частном случае может быть переменной или числом.
Предположим, что правила выполнения арифметических операций сложения, вычитания и умножения известны исполнителю. Тогда искомым алгоритмом будет следующая система предписаний:
Начало.
1. Ввести x1, x2.
2. p = –(x1+x2).
3. q = x1x2.
4. Вывести p, q.
Конец.
Схемы алгоритмов
Схема алгоритма – это графический способ его представления с элементами словесной записи. Каждое предписание алгоритма изображается с помощью плоской геометрической фигуры – блока. Отсюда название: блок-схема. Переходы от предписания к предписанию изображаются линиями связи – линиями потоков информации, а направление переходов – стрелками. Различным по типу выполняемых действий блокам соответствуют различные геометрические фигуры. Приняты определенные стандарты (ГОСТ 19.701-90) графических изображений блоков (таблица).
Рассмотрим общие правила построения схем алгоритмов.
1. Для конкретизации содержания блока и уточнения выполняемого действия внутри блока помещаются краткие пояснения – словесные записи с элементами общепринятой математической символики.
Наименование символа | Обозначение и размеры | Функция |
Процесс (вычислительный блок) | Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположение данных | |
Решение (логический блок) | Выбор направления выполнения алгоритма в зависимости от некоторых условий | |
Модификация (заголовок цикла) | Выполнение операций по управлению циклом – повторением команды или группы команд алгоритма | |
Пуск-останов (начало-конец) | Начало или конец выполнения программы или подпрограммы | |
Предопределенный процесс (вызов подпрограммы) | Вызов и использование ранее созданных и отдельно описанных алгоритмов (подпрограмм) | |
Ввод/вывод | Общее обозначение ввода или вывода данных в алгоритме безотносительно к внешнему устройству | |
Соединитель | Указание прерванной связи между блокам в пределах одной страницы | |
Межстраничный соединитель | Указание прерванной связи между блоками, расположенными на разных листах |
2. Основное направление потока информации в схемах может не отмечаться стрелками. Основное направление – сверху вниз и слева направо. Если очередность выполнения блоков не соответствует этому направлению, то возможно применение стрелок.
3. По отношению к блоку линии могут быть входящими и выходящими. Количество входящих линий принципиально не ограничено. Количество выходящих линий регламентировано и зависит от типа блока. Например, логический блок должен иметь не менее двух выходящих линий, каждая из которых соответствует одному из возможных направлений вычислений. Блок модификации должен иметь две выходящие линии, одна соответствует повторению цикла, вторая – его окончанию.
4. Допускается разрывать линии потока информации, размещая на обоих концах разрыва специальный символ «соединитель». В пределах одной страницы используется символ обычного соединителя, во внутреннем поле которого помещается маркировка разрыва либо отдельной буквой, либо буквенно-цифровой координатой блока, к которому подходит линия потока. Если схема располагается на нескольких листах, переход линий потока с одного листа на другой обозначается с помощью символа «межстраничный соединитель». При этом на листе с блоком-источником соединитель содержит номер листа и координаты блока-приемника, а на листе с блоком-приемником – номер листа и координаты блока-источника.
5. Нумерация блоков осуществляется либо в левом верхнем углу блока в разрыве его контура, либо рядом слева от блока. Принцип нумерации может быть различным, наиболее простой – сквозная нумерация. Блоки начала и конца не нумеруются.
6. Для блоков приняты следующие размеры: а = 10, 15, 20 мм; b = 1,5а. Если необходимо увеличить размер блока, то допускается увеличение на число, кратное пяти. Необходимо выдерживать минимальное расстояние 3 мм между параллельными линиями потоков и 5 мм между остальными символами.
С помощью блок-схем можно изображать самые различные алгоритмы, например, линейной, разветвляющейся и циклической структур.
Блок-схемы являются исключительно простым и наглядным способом представления алгоритмов. Их очень полезно использовать при разработке общей структуры алгоритма, чтобы отчетливо представить себе алгоритм в целом и проследить все логические связи между его отдельными частями, проверить все ли возможные варианты решения поставленной задачи нашли в нем отражение.
Блок-схемы не накладывают никаких ограничений на степень детализации в изображении алгоритма. Степень детализации определяется программистом. Однако следует помнить, что схемы общего характера мало информативны, а излишне подробные схемы проигрывают в наглядности. При разработке сложных алгоритмов, чтобы понять сущность выполняемых действий и выявить основные связи, алгоритм записывается в виде общей схемы, состоящей из крупных блоков. Блоки соответствуют основным шагам алгоритма (вводу данных, обработке, выводу данных). Затем крупные блоки разбивают на более мелкие, составляя более детальные схемы, позволяющие проверить их логическую правильность.
Дата добавления: 2015-12-11; просмотров: 587;