ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

1.3. Технология разработки алгоритмов и программ


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

При решении на ЭВМ некоторой задачи работа распадается на следующие основные этапы [1]:

1) математическая формулировка задачи – определение состава и характера исходных данных, результатов, записи условия задачи с помощью математических обозначений;

2) разработка методики решения задачи – установление зависимости всех искомых результатов от исходных данных, указание методов получения результатов, которые могут быть реализованы на ЭВМ;

3) разработка алгоритма решения задачи – четкая установленная последовательность действий, записанная в виде текстуального, графического или формального языка с помощью математических описаний;

4) программирование – запись решающего алгоритма на языке программирования и последующая трансляция на машинный язык;

5) отладка программы – устранение в программе синтаксических, семантических и алгоритмических ошибок;

6) решение задачи на ЭВМ и анализ полученных результатов.

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

В эпоху ЭВМ 1-го и 2-го поколений основным требованием к алгоритму были [1]:

  • минимальные требования в отношении оперативной памяти компьютера, т. е. программа должна была использовать наименьшее возможное число ячеек оперативной памяти компьютера;
  • минимальное время исполнения (минимальное число операций). При этом программы составлялись из команд, исполнявшихся процессором, а именно:

    1) операций присваивания;

    2) простейших арифметических операций;

    3) операций сравнения чисел;

    4) операторов безусловного и условного переходов;

    5) операторов вызова подпрограмм (вспомогательных алгоритмов).
Такой подход в создании алгоритмов, в котором операции непосредственно выполняются компьютером, принято называть операционным (или операциональным). Основные недостатки алгоритмов, к которым приводил операциональный подход:
  • злоупотребление командой условного и безусловного переходов зачастую приводило к очень запутанной структуре программы;

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


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

Ячейка памяти, где размещается значение, в программе обозначается идентификатором (именем). Например, x, y1, z_3.

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


Арифметические операции: сложения (+), вычитания (-), умножения (*) и деления (/) – позволяют записывать арифметические выражения с использованием идентификаторов переменных.

Для определения приоритета операций в выражениях используют стандартное математическое соглашение о старшинстве операции, согласно которому старшими и выполняемыми в 1-ю очередь являются умножение и деление, а младшими – сложение и вычитание. Для изменения порядка выполняемых операций служат скобки. Например, порядок операций в выражениях разный, следовательно, и результат вычисления будет разным:

1) 2 * (b + c);

2) 2 * b + c.

Операции одного старшинства выполняются в порядке записи в выражении.


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

Шаги (или команды) алгоритма обладают метками или адресами, и, помимо последовательного выполнения команд, возможен и другой порядок, при котором выполнение команд определяется переходами на команды с определёнными метками или адресами.


Безусловный переход
– это когда выполнение команд определяется вне зависимости от каких-либо условий.

Условный переход – это когда выполнение команд определяется некоторым условием.


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

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011