Файл: Учебное пособие В. М. Лопатин издание второе, стереотипное 1 17.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 56

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

86 3. Определенность,или детерминированность. При разработке алго- ритма не могут быть использованы команды, смысл которых воспринимается ис- полнителем неоднозначно. Иначе говоря, алгоритм не должен оставлять места для произвола исполнителя.
4. Результативность. Процесс, описываемый алгоритмом, должен прекра- титься за конечное число шагов с получением определенного результата.
5. Массовость. Чаще всего алгоритмы обеспечивают решение не одной кон- кретной задачи, а некоторого класса задач данного типа. Это свойство позволяет выделять область применимости алгоритма.
Каждый алгоритм формируется из некоторого определенного набора типо- вых действий. Набор этих действий получается довольно наглядным в случае графического описания алгоритма, которое основано на представлении каждого действия в виде геометрической фигуры (блока). Графическое описание позво- ляет представлять алгоритм как систему связанных между собой функциональ- ных блоков.Примеры графического изображения блоков, из которых складыва- ется описание алгоритма, представлены в табл. 28.
Таблица 28
Графическая запись алгоритмических действий
Наименование действия
Обозначение
Функция
Пуск – останов начало или конец дей- ствия
Ввод – вывод ввод или вывод данных
Процесс (действие) вычислительное дей- ствие
Условие (ветвление) проверка условия и вы- бор направления
Предопределенный про- цесс расчет по подпрограмме
Модификация начало цикла
Документ вывод на печать
Графическое представление алгоритма называют блок-схемой алгоритма.
1 / 15

87
Блок-схема состоит из связанных между собой блоков, которые располага- ются сверху вниз и соединяются между собой стрелками перехода. Взаимное расположение блоков показывает очередность выполнения процесса, а стрелки – направление вычислительного процесса. Внутри каждого блока вводится надпись, которая уточняет функцию блока или описывает математическое дей- ствие.
Алгоритмы в зависимости от цели, начальных условий, путей решения за- дачи, последовательности действий исполнителя подразделяются на разные типы. К основным наиболее часто используемым типам относятся линейные и
циклические алгоритмы. Блок-схемы основных типов алгоритмов представлены в табл. 29. Кроме этого выделяют и другие типы, механические или жесткие ал- горитмы, которые описывают работу механизмов, например двигателя внутрен- него сгорания.
Таблица 29
Разновидности алгоритмов
Тип алгоритма
Блок-схема
Линейныеалгоритмы состоят из набора команд, которые выполняют последовательно друг за другом
Циклическиеалгоритмы связаны с многократным заранее определенным количеством повторяемых действий и обновлением расчетных данных на каждом действии
Циклические с предусловиемалго- ритмы содержат предварительную проверку возможности выполнения цикла
2 / 15


88
Продолжение табл. 29
Тип алгоритма
Блок-схема
Циклические с постусловиемалго- ритмы основаны на проверке резуль- татов циклических вычислений и остановке цикла после выполнения постусловия
Приведенные в табл. 29 блок-схемы могут использоваться для построения различных алгоритмических конструкций. На рис. 25 в качестве примера пока- зана схема алгоритма для расчета значения функции f(n) = 3
n
при n = 5.
Рис. 25. Циклический алгоритм с предусловием
Наряду с графическим представлением существуют и другие формы записи алгоритмов. Для сравнения разных подходов рассмотрим пример составления алгоритма в разных формах записи.
Пример. Составим алгоритм начисления заработной платы, используя следу- ющие правила:
− если стаж работы менее 1 года, то заработная плата равна А;
− при стаже от 1 до 3 лет – заработная плата возрастает в два раза;
− более 3 лет – каждый год идет повышение на величину В.
Введем обозначения: заработная плата – ZP, стаж работы – ST; запишем ма- тематическую формулировку задачи:
3 / 15

89
=
2 ∙
2 ∙ + (
− 3) ∙
< 1 1 ≤
≤ 3
> 3 1. Словесно-формульное описаниеосновано на представлении алго- ритма в форме последовательности слов, предложений и формул с использова- нием естественного языка. Решение задачи с использованием этого описания складывается следующим образом.
1) Ввести ST, перейти к п. 2.
2) Если ST<1, то ZP=А, перейти к п. 4, иначе перейти к п. 3.
3) Если ST<=3, то ZP=2*А, иначе ZP=2*А+(ST-3)*В, перейти к п. 4.
4) Вывести (на печать) значение ZP.
5) Вычисления прекратить.
Распространение словесно-формульного описания на практике ограничива- ется отсутствием строгой формализации, наличием многословности, а также неоднозначностью толкования отдельных действий алгоритма.
2. Графическое представлениеэтого же алгоритмана основе структурной блок-схемы показано на рис. 26.
Графический подход отличается простотой и наглядностью, дает хорошие ре- зультаты при решении относительно небольших задач, но занимает значительно больше места. Объемная задача раздвигает границы блок-схемы до такой сте- пени, что ее визуальное восприятие становится трудным или невозможным. По этой причине использование графического подхода при всех его преимуществах ограничено относительно небольшими программами.
3. Описаниенаосновепсевдокодоввыражается в полуформализованном представлении алгоритмов на условном алгоритмическом языке, который содержит элементы языка программирования, фразы естественного языка, общепринятые ма- тематические обозначения. Сочетание естественного языка с математической запи- сью и общепринятыми служебными словами выводит псевдокодна промежуточное место между естественным и формальным языками. Запись алгоритма для начисле- ния заработной платы на псевдокоде производится следующим образом: алг Зарплата (цел ST, вещ ZP) арг ST, рез ZP нач если ST<1 то ZP = А иначе если ST<=3 то ZP=2*А иначе ZP= 2*А+(ST-3)*В все все кон.
4 / 15


90
Рис. 26. Графическое представление алгоритма
Отсутствие строгих синтаксических правил и определенный произвол в за- писи команд не позволяют поставить псевдокод в один ряд с алгоритмическими языками программирования.
1>
1   ...   5   6   7   8   9   10   11   12   ...   16

Представление алгоритма на языке программирования
Следующим этапом после создания алгоритма является написание текста программы. О программе, выполняющей действия, предписанные алгоритмом, говорят, что она реализует данный алгоритм на языке программирования.
Основная сложность создания программы заключается в том, что алгоритм формулируется на естественном человеческом языке, а программа, загружаемая в компьютер, представляет собой набор двоичных кодов – нулей и единиц. По- нятно, что перевести текст напрямую с естественного языка в набор двоичных цифр довольно сложно. В связи с этим в данный процесс вводится промежу-
5 / 15

91 точный этап – разработка текста программы на специальном языке, который называется языком программирования.
Введение промежуточного этапа позволяет представить первую часть про- цесса создания программы как постепенный переход от естественногоязыка к языку более высокого уровня, чем машинный.
Уровень языка программирования характеризуется степенью близости языка программирования и машинного языка. За начало отсчета уровней прини- мается машинный язык, уровень которого равен нулю. Язык человека рассмат- ривается как язык наивысшего уровня, алгоритмические языки относятся к язы- кам высокого уровня.
В основе алгоритмического языка программирования заложены три базовых составляющих: алфавит – набор символов, используемый для написания программы; синтаксис – правила соединения символов в конструкции языка; семантика – принципы обозначения и толкования конструкций языка.
Язык программирования – искусственный язык, в котором символы алфа- вита соединяются в соответствии с синтаксическими и семантическими прави- лами.
Программирование на языках высокого уровня, очевидно, проще, чем на язы- ках машинного уровня. Оно не требует глубоких знаний устройства процессора и поэтому доступно людям, которые не являются специалистами в аппаратной части. В отличие от языка человека, в котором допускается некоторый произвол в выборе и образовании слов и предложений, языкам программирования свой- ственна строгость синтаксических и семантических правил. Алфавит, синтаксис и семантика языков программирования определяются, исходя из стремления приблизить их к языку человека, но вместе с тем обеспечить возможность про- граммного перевода алгоритма с языка программирования на машинный язык.
Для языков высокого уровня создание текста программы, который называ- ется исходным модулем(рис. 27), выполняется вручную или с использованием автоматизированных средств, а перевод в машинные двоичные коды – в автома- тическом режиме с помощью транслятора [14].
Трансляция (от англ. translation – перевод) – преобразование программы, представленной на исходном языке программирования, в программу на другом языке.
Рис. 27. Процесс создания программы в машинном коде
6 / 15


92
Для перевода исходного модуля в машинный код можно использовать два типа трансляторов:
− интерпретаторы – программы, которые построчно переводят и испол- няют строки исходного кода (удобно для отладки и тестирования);
− компиляторы – программы, которые на первом этапе осуществляют пе- ревод кода целиком с созданием объективного модуля – промежуточной про- граммы, в которой отсутствуют реальные адреса данных и встроенные подпро- граммы; на втором этапе к объективному модулю с помощью программы-сбор- щика подключаются необходимые адреса и подпрограммы.
Результатом трансляции является исполняемый модуль – программа, ко- торая готова к загрузке, запуску и выполнению работы.
Для создания программы на выбранном языке используется так называемая интегрированная система программирования, которая включает связан- ную совокупность программных продуктов для разработки программного обес- печения. В состав интегрированной системы программирования входят следую- щие средства.
1. Текстовый редактордля написания программы. Текст программы со- стоит из последовательности символов или ключевых слов на английском языке.
Готовая программа называетсяисходным текстом,илиисходныммодулем.
Для написания программы можно использовать любой текстовый редактор, но лучше – специальный. Специальные текстовые редакторы созданы для всех по- пулярных языков программирования, они позволяют проверять синтаксис языка и упрощать процесс разработки программы.
2. Программа-компилятор(или интерпретатор),которая переводит исход- ный текст в машинный код. В результате компилирования получается объектив- ный модуль, который требует дальнейшей обработки. Для каждого модуля ис- ходного текста создается отдельный объективный модуль.
3. Редактор связей (сборщик)обрабатывает все модули, созданные ком- пилятором, связывает их между собой, при необходимости добавляет стандарт- ные программы. В результате сборки на выходе появляется исполняемый модуль, который предназначен для работы на конкретном процессоре.Исполняемый модуль – это законченная программа, которая запускается на компьютере под контролем операционной системы. Файл исполняемого модуля имеет расшире- ние .exe.
4. Библиотека стандартных программсовокупность программ, разра- ботанных на одном из языков программирования для решения типовых задач и расширения функциональных возможностей языка программирования.
5. Средства отладки программ – программные инструменты, предназна- ченные для наблюдения за пошаговым выполнением исследуемой программы с целью обнаружения и устранения ошибок.
Перечисленные средства, входящие в состав интегрированной системы про- граммирования, образуют так называемую интегрированную среду разработки программ. В рамках этой среды используется весь комплекс имеющихся средств и обеспечиваются условия для создания новых программ в сжатые сроки
7 / 15