Проектирование алгоритма. Решение любой задачи многовариантно.
Эффективность разрабатываемого алгоритма определяется следующими критериями (показателями алгоритма):
1) Время потенциальной реализации алгоритма;
2) Требуемые ресурсы оперативной памяти как для самой программы ЭВМ, так и для обрабатываемых ею данных.
Существует целый ряд рекомендаций, которые повлияют уже на этапе разработки и улучшат показатели качества.
Для улучшения 1 показателя рекомендуется:
1) Строить алгоритм с меньшим числом операторов, в частности сокращая количество циклов, т.е. объединяя их;
2) В алгоритме с кратным циклом отдавать предпочтение ею варианту с меньшей кратностью;
3) Выносить за пределы цикла действия над теми операндами, значения которых в этом цикле не изменяются (чистка цикла);
4) Заменять многократное выполнение одних и тех же действий (вычислений) однократно.
Для улучшения 2 показателя рекомендуется: выбор структур данных: исходных, выходных и промежуточных.
Для заданной в любой задаче структур данных исходной и выходной возможны различные варианты решений этой задачи.
Существующие модели данных:
1) Концептуальная модель данных (КМД) соответствует структуре информации самой поставленной задачи;
2) Логическая модель данных (ЛМД) отражает связи данных (ЛСД), вытекающие из постановки задачи и выбранного метода её решения;
3) Физическая модель данных (ФМД) отражает то, как данные записываются в среде хранения.
Представление одной и той же логической структуры данных может быть различным. Так, например, некоторую матрицу, соответствующую ЛМД, можно представить в памяти двумерным массивом. Однако, если позволяет метод решения задачи, то ту же матрицу можно представить одномерным массивом, значение элементов которых постоянно обновляется в памяти.
Именно поэтому и с разработкой алгоритма решения задачи и проектирования путём обоснованного выбора того варианта структур, который удовлетворяет заданным требованиям по времени реализации используемых ресурсов памяти.
Кодирование алгоритмов на языке программирования.
Введение. Понятие языка программирования. Классификация ЯП.
Язык программирования (ЯП) – это формальная знаковая система, применяемая для описания процессов решения задач на ЭВМ, т.е. для кодирования алгоритмов решения задач в виде программ для ЭВМ.
![]() |
ЯП
Машинно-зависимые машинно-независимые
![]() |
УРОВЕНЬ 0 машинные ЯП
Машинно-ориентированная ЯП
УРОВЕНЬ 1 мнемокоды
![]() |
УРОВЕНЬ 2 макроязыки
![]() | |||
![]() | |||
УРОВЕНЬ3 проекционно-ориентированные ЯП
Языки высокого
УРОВЕНЬ 4 проблемно-ориентированные ЯП уровня
Каждая команда представляется цифровым кодом КОП цифровых адресов ячеек хранения операндов.
Для языков, последующих уровней необходимо разделить понятия программы для ЭВМ на понятия:
1) Исходная программа, составленная на одном из более высоких уровней;
2) Рабочая программа, составленная на машинном языке ЭВМ.
Машинно-ориентированные языки отличают буквенное (символьное) кодирование операции: код операции представляется буквенным (символьным) выражением, определяющим смысловое содержание операции, а операнды представляются их именами.
Последовательность машинных команд в рабочей программе для ЭВМ (при использовании машинно-ориентированного ЯП) совпадает с последовательностью операторов в исходной программе.
Уровень 1. Мнемокоды. Для таких ЯП один оператор исходной программы соответствует одной машинной команде – ассемблер.
Уровень 2. Один оператор. Совокупность машинных команд. Макроассемблер.
Уровень 3. Проекционно-ориентированные ЯП предназначены для кодирования алгоритмов решений задач определённого класса. Особенности: последовательность операторов, определяющих команды, принципиально не совпадают с машинной командой.
Языки программирования: ALGOL, FORTRAN, LISP, PLM, LOBOL, BASIC, PASCAL, PROLOG, FRL (по возрастающей).
Уровень 4.Проблемно-ориентированные ЯП предназначены для задания процессов решения задач некоторой предметной (проблемной) области. Они не требуют подробного описания самого процесса решения задачи: достаточно лишь сформулировать условия решения задачи на естественном языке этой предметной области.
Грамматика процедурно-ориентированного языка включает в себя 2 раздела: синтаксис и семантика.
Синтаксис – правила построения фраз языка.
Семантика – описание смысла фраз.
Синтаксические ошибки – все отклонения от строгих синтаксических правил языка программирования.
В структуре процедурно-ориентированного ЯП можно выделить 6 уровней синтаксических конструкций ЯП: символы, слова, выражения, предложения, модули (программные модули),программа.
ЭВМ способна воспринять программу, составленную только на машинном языке для того, чтобы ЭВМ смогла выполнить программу, записанную на машинном языке. Необходимо предварительно перевести (транслировать) такую исходную программу, составленную в командах ЭВМ. Такой перевод может выполнить сама ЭВМ с помощью транслирующей программы. Транслятор, интерпретатор, компилятор, генератор.