Запись алгоритма на языке программирования в виде компьютерной программы
1. ЗАПИСЬ АЛГОРИТМОВ НА ЯЗЫКАХ ПРОГРАММИРОВАНИЯ
МК
Ключевые слова
языки программирования
данные
структура данных
идентификаторы
операторы
трассировочные таблицы
3. Язык программирования
МК
Язык программирования
Язык
программирования
–
формальная
знаковая
система,
предназначенная для записи компьютерных программ.
Компьютерную программу можно считать последовательностью строк
символов некоторого алфавита. Современные системы программирования допускают использование визуальных элементов (окон,
иконок и др.) для построения программ, в частности, для создания
интерфейса пользователя. Такое программирование называют
визуальным. Тем не менее, основная, алгоритмическая часть любой
программы строится с использованием символьных средств.
КуМир
4. Структурная организация данных
МК
Структурная организация данных
Информация, представленная в виде, пригодном для автоматизированной обработки, называется данными.
Компьютер оперирует только одним видом данных – отдельными
битами, или двоичными цифрами.
!
Под структурой данных в общем случае понимают множество элементов данных и множество связей между ними.
Различают простые и сложные структуры данных.
Простые структуры данных не
могут
быть
разделены
на
составные части больше, чем бит.
К ним относятся:
числовые,
символьные,
логические и др.
На основе простых структур
строятся сложные структуры
данных:
• массивы,
• списки,
• графы,
• деревья и др.
5. Некоторые простые типы данных
МК
Некоторые простые типы данных
Некоторые простые типы данных
Pascal
логический
Boolean (1 байт)
символьный
Char (1 байт)
числовые
целые
Integer
вещественные
Real (8 байт)
Информация по каждому типу однозначно определяет:
множество допустимых значений, которые может иметь
тот или иной объект описываемого типа;
множество допустимых операций, которые применимы
к объекту описываемого типа;
объём выделенной памяти для хранения данных
указанного типа
6. Основные элементы языка Pascal
МК
Основные элементы языка Pascal
Pascal
алфавит языка:
латинские буквы;
арабские цифры;
специальные символы;
служебные слова, значение которых в языке
программирования строго определено;
постоянные и переменные величины;
знаки операций;
стандартные функции;
выражения;
операторы (языковые конструкции, с помощью которых
в программах записываются действия, выполняемые
над данными в процессе решения задачи)
7. Идентификаторы
МК
Идентификаторы
Pascal
Все величины имеют имена (идентификаторы),
формируемые по определённым правилам:
имя
может
состоять
из
буквы
или
последовательности букв латинского алфавита,
цифр и символа подчёркивания, но начинаться
такая последовательность должна с буквы или
символа подчёркивания;
желательно, чтобы имя отражало смысл
величины;
имя не должно совпадать ни с одним из
зарезервированных слов.
N12
Summa_X
Factorial
MyProgram
12N
Summa X
Факториал
Program
!
8. Операции в языке Pascal
МК
Операции в языке Pascal
Арифметические операции
Pascal
Операции отношений
+
сложение
= равно
–
вычитание
<> не равно
*
умножение
< меньше
/
деление
> больше
целочисленное деление
<= меньше или равно
div
mod остаток от целочисленного
деления
>= больше или равно
Логические операции
Приоритет операций
not логическое отрицание
1 not
and логическое И
2 *, /, div, mod, and
or
логическое ИЛИ
3 +, –, or, xor
xor
исключающее ИЛИ
4 =, <>, >, <, >=, <=
9. Структура программы
МК
Структура программы
program <имя программы>;
Pascal
Заголовок программы
Блок описания
var <переменные с указанием типов>;
данных
const <постоянные <с указанием типов>>;
begin
Блок описания действий
<последовательность команд>;
(программный блок)
end.
Данные, обрабатываемые компьютером, хранятся в
памяти. С точки зрения языка Pascal она разделена на
секции, называемые переменными. Каждая переменная
имеет имя, тип и значение; значения переменных могут
меняться в ходе выполнения программы.
Блок описания действий начинается со слова begin, а
заканчивается словом end и знаком точки. Действия
представляются операторами. Операторы разделяются
точкой с запятой.
10. Основные операторы языка Pascal
МК
Основные операторы языка Pascal
Pascal
Название
Общий вид
Присваивание
Имя переменной := Значение
Ввод с клавиатуры
readln (список ввода)
Вывод на экран
writeln (список вывода)
Условный
If Условие then Оператор1
else Оператор2
Цикл с предусловием
while Условие do Тело цикла
Цикл с постусловием
repeat
Тело цикла
until Условие
Цикл с параметром
с шагом +1
for Переменная := Нач_знач
to Кон_знач do Тело цикла
Цикл с параметром
с шагом –1
for Переменная := Нач_знач
downto Кон_знач do Тело цикла
11. Анализ программ. Трассировочные таблицы
МК
Анализ программ. Трассировочные таблицы
Для анализа свойств алгоритма и проверки его соответствия решаемой
задаче используются трассировочные таблицы. В них фиксируется
пошаговое исполнение алгоритма (программы), что позволяет наглядно
представлять значения переменных, изменяющиеся при его выполнении.
Поэтому трассировочные таблицы иначе называют таблицами значений.
Используются трассировочные таблицы двух видов:
таблицы,
каждая
строка
которых отражает результат
одного действия
таблицы,
каждая
строка
которых отражает результат
выполнения группы действий
12. Трассировочная таблица первого вида
МК
Другие приёмы анализа программ
Pascal
var n, S: integer;
begin
n := 1;
S := 0;
while n <= 625 do
begin
S := S + 30;
n := n * 5
end;
write(s)
end.
Пример 3. Определите, какое число будет
Решение:
напечатанокакую
в результате
выполнения
Выясним,
функцию
выполняетпрограммы.
каждая из
переменных,
в программе.
var n, s: задействованных
integer;
Начальное
begin значение переменной S = 0. При
каждомnвыполнении
тела цикла S увеличивается
:= 1;
на 30. Таким
s := 0;образом, искомое значение S = 30 ∙ k,
где k — while
числоnвыполнений
<= 625 do тела цикла.
Начальное
значение переменной n = 1. При кажbegin
дом выполнении
n
s := s + 30; тела цикла значение
k.
увеличивается
в
5
раз,
т.е.
n
=
5,
25,
125
…,
5
n := n * 5
end;при каком условии произойдёт выход
Выясним,
write(s)
из цикла.
Цикл выполняется, пока n ≤ 625.
end.
Следовательно,
цикл завершится при достижении
S значения, большего 625 = 54, т.е. при n = 55.
Таким образом цикл выполнится 5 раз.
Следовательно, S = 30 ∙ 5 =150.
Ответ: S = 150
13. Трассировочная таблица второго вида
МК
Самое главное
Компьютерную программу можно считать последовательностью строк
символов некоторого алфавита. Современные системы программирования и языки допускают использование визуальных элементов
(окон, иконок и др.) для построения программ и создания интерфейса
пользователя. Тем не менее, основная, алгоритмическая часть любой
программы строится с использованием символьных средств.
Компьютер оперирует только одним видом данных – отдельными
битами, или двоичными цифрами. Задачи, решаемые с помощью
компьютера, оперируют данными, имеющими форму чисел, символов,
текстов и более сложных структур. Алгоритмы для обработки этих данных
создаются с учётом их структуры – множества элементов данных и
множества связей между ними.
14. Другие приёмы анализа программ
МК
Самое главное
Различают простые и сложные структуры данных. Простые структуры
данных не могут быть разделены на составные части больше, чем бит. К
ним относятся числовые, символьные, логические и другие данные.
Простые структуры данных служат основой для построения сложных
структур данных – массивов, списков, графов, деревьев и др.
Для анализа свойств алгоритма и проверки его соответствия решаемой
задаче используются трассировочные таблицы. В них фиксируется
пошаговое исполнение алгоритма (программы), что позволяет наглядно
представлять значения переменных, изменяющиеся при его выполнении.
Используются трассировочные таблицы двух видов:
• таблицы, каждая строка которых отражает результат одного действия;
• таблицы, каждая строка которых отражает результат выполнения
группы действий.
МК
Вопросы и задания
Pascal
Задание 2. Получив на вход натуральное число x (x > 100),
программа печатает число M. Укажите наименьшее
значение переменой x, при вводе которого алгоритм
печатает 26.
var x, L, M: integer;
begin
readln(x);
L := x;
M := 52;
while L <> M do
if L > M then
L := L – M
else
M := M – L;
writeln(M)
end.
Решение:
var
x, L, M: integer;
begin
Данная
программа реализует алгоритм
Евклида
readln(x); для вычисления наибольшего
общего
L := x; делителя двух чисел – НОД (M, L).
Тогда,
M := 52;
по условию задачи НОД (52, х) = 26.
Отсюда,
while L <>
х =M
104,
do 130, 156…
Наименьшее
if L > M then
х = 104, но НОД (52, 104) = 52.
Следовательно,
L := L – M
х = 130.
else
M := M – L;
writeln(M)
Ответ
end. 130
Ответ:
17. Вопросы и задания
МК
Вопросы и задания
Задание 3. Дана программа. Что будет напечатано после
выполнения программы?
Pascal
var k, S: integer;
begin
k := 10;
S := 0;
while k < 120 do
begin
S := S + k;
k := k + 5
end;
write (s)
end.
var
Решение:
k, S: integer;
begin
Данная
программа
находит
сумму
арифметической
k := 10;
прогрессии:
S := 0; S = 10 + 15 + 20 + … + 115.
Формула
while k <для
120вычисления
do
суммы первых n
членов
begin арифметической прогрессии:
Выделяют три наиболее распространенные на практике способа записи алгоритмов:
- словесный (запись на естественном языке);
- графический (запись с использованием графических символов);
- программный (тексты на языках программирования).
Словесный способ записи алгоритмов
Словесный способ – способ записи алгоритма на естественном языке. Данный способ очень удобен, если нужно приближенно описать суть алгоритма. Однако при словесном описании не всегда удается ясно и точно выразить логику действий.
В качестве примера словесного способа записи алгоритма рассмотрим алгоритм нахождения площади прямоугольника
где S – площадь прямоугольника; а, b – длины его сторон.
Очевидно, что a, b должны быть заданы заранее, иначе задачу решить невозможно.
Словестный способ записи алгоритма выглядит так:
- Начало алгоритма.
- Задать численное значение стороны a.
- Задать численное значение стороны b.
- Вычислить площадь S прямоугольника по формуле S=a*b.
- Вывести результат вычислений.
- Конец алгоритма.
Графический способ описания алгоритмов
Для более наглядного представления алгоритма используется графический способ. Существует несколько способов графического описания алгоритмов. Наиболее широко используемым на практике графическим описанием алгоритмов является использование блок-схем. Несомненное достоинство блок схем – наглядность и простота записи алгоритма.
Каждому действию алгоритма соответствует геометрическая фигура (блочный символ). Перечень наиболее часто употребляемых символов приведен в таблице:
Название символа | Обозначение и пример заполнения | Пояснения |
Пуск-останов | Начало, завершение алгоритма или подпрограммы | |
Ввод-вывод данных | Ввод исходных данных или вывод результатов | |
Процесс | Внутри прямоугольника записывается действие, например, расчетная формула | |
Решение | Проверка условия, в зависимости от которого меняется направление выполнения алгоритма | |
Модификация | Организация цикла | |
Предопределенный процесс | Использование ранее созданных подпрограмм | |
Комментарий | Пояснения |
- блок Процесс обозначает вычислительный процесс и применяется для обозначения действия или последовательности действий, изменяющих значения переменных или данных
- блок Решение обозначает проверку условия
Если условие выполняется, то есть a>b, то следующим выполняется действие по стрелке «Да». Если условие не выполняется, то осуществляется переход по стрелке «Нет».
- блок Модификация используется для организации циклических (повторяющихся) действий.
- блок Предопределенный процесс используется для указания обращений к ранее созданным алгоритмам и программам, в том числе и библиотечным подпрограммам.
- блок Ввод-Вывод. При решении задачи на компьютере ввод исходных данных может осуществляться различными способами, например, с клавиатуры, с жесткого диска, с флэш-карты т. д. Задание численных значений исходных данных называется вводом, а отображение результатов расчета на экране монитора или с помощью принтера на бумаге – выводом. Если ввод-вывод не привязан к конкретному устройству, то обозначается параллелограммом. Если необходимо указать конкретное устройство ввода или вывода, то используются специальные геометрические фигуры.
В качестве примера графического способа описания алгоритмов с помощью блок-схем запишем алгоритм нахождения площади прямоугольника:
Внутри каждого блока записывается соответствующее действие. Последовательность выполнения задается соединительной линией со стрелочкой.
Последовательность выполнения сверху вниз и слева направо принята за основную.
Если в алгоритме не нарушается основная последовательность, то стрелочки можно не указывать. В остальных случаях последовательность выполнения блоков обозначается стрелочкой обязательно. В нашем примере основная последовательность выполнения – сверху вниз.
Программный способ записи алгоритмов
Способ записи алгоритмов с помощью блок-схем нагляден и точен для понимания сути алгоритма, тем не менее, алгоритм предназначен для исполнения на компьютере, а язык блок-схем компьютер не воспринимает. Поэтому алгоритм должен быть записан на языке, понятном компьютеру с абсолютно точной и однозначной записью команд.
Таким образом, алгоритм должен быть записан на каком-то промежуточном языке, с точными и однозначными правилами и отличном от естественного языка и языка блок-схем, но понятном компьютеру. Такой язык принято называть языком программирования.
Программный способ записи алгоритма – это запись алгоритма на языке программирования, позволяющем на основе строго определенных правил формировать последовательность предписаний, однозначно отражающих смысл и содержание алгоритма, с целью его последующего исполнения на компьютере.
Запись алгоритма на языке программирования называется компьютерной программой.
Понятие алгоритма так же фундаментально для информатики, как и понятие информации. Существует много различных определений алгоритма, так как это понятие достаточно широкое и используется в различных областях науки, техники и повседневной жизни.
Алгоритм – понятная и точная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное.
Исполнителем алгоритма может быть как человек (кулинарные рецепты, различные инструкции, алгоритмы математических вычислений), так и техническое устройство. Различные машины (компьютеры, промышленные роботы, современная бытовая техника) являются формальными исполнителями алгоритмов. От формального исполнителя не требуется понимание сущности решаемой задачи, но требуется точное выполнение последовательности команд.
Алгоритм можно записывать различными способами (словесное описание, графическое описание – блок схема, программа на одном из языков программирования и т.д.). Программа – это алгоритм, записанный на языке программирования.
Для создания алгоритма (программы) необходимо знать:
Полученный алгоритм (программа) должен обладать следующим набором свойств:
Большая часть алгоритмов обладает также свойством массовости (с помощью одного и того же алгоритма можно решать множество однотипных задач).
Выше отмечалось, что один и тот же алгоритм может быть записан по-разному. Можно записывать алгоритм естественным языком. В таком виде мы используем рецепты, инструкции и т.п. Для записи алгоритмов , предназначенных формальным исполнителям , разработаны специальные языки программирования. Любой алгоритм можно описать графически в виде блок-схемы. Для этого разработана специальная система обозначений:
Приведем пример описания алгоритма суммирования двух величин в виде блок-схемы:
Такой способ описания алгоритм наиболее нагляден и понятен человеку. Поэтому, алгоритмы формальных исполнителей обычно разрабатывают сначала в виде блок-схемы, и только затем создают программу на одном из языков программирования .
Программист имеет возможность конструировать и использовать нетипичные алгоритмические структуры, однако, в этом нет необходимости. Любой сколь угодно сложный алгоритм может быть разработан на основе трёх типовых структур: следования, ветвления и повторения. При этом структуры могут располагаться последовательно друг за другом или вкладываться друг в друга.
Линейная структура (следование).
Наиболее простой алгоритмической структурой является линейная. В ней все операции выполняются один раз в том порядке, в котором они записаны.
В полном ветвлении предусмотрено два варианта действий исполнителя в зависимости от значения логического выражения (условия). Если условие истинно, то выполняться будет только первая ветвь, иначе только вторая ветвь.
Вторая ветвь может быть пустой. Такая структура называется неполным ветвлением или обходом.
Из нескольких ветвлений можно сконструировать структуру «выбор» (множественное ветвление), которая будет выбирать не из двух, а из большего количества вариантов действий исполнителя, зависящих от нескольких условий . Существенно, что выполняется только одна ветвь - в такой структуре важное значение приобретает порядок следования условий: если выполняются несколько условий, то сработает только одно из них - первое сверху.
Цикл (повторение).
Цикл позволяет организовать многократное повторение одной и той же последовательности команд - она называется телом цикла. В различных видах циклических алгоритмов количество повторений может зависеть от значения логического выражения (условия) или может быть жестко задано в самой структуре. Различают циклы : « д о» , « п ока» , циклы со счётчиком . В циклах « д о» и « п ока» логическое выражение (условие) может предшествовать телу цикла (цикл с предусловием) или завершать цикл (цикл с послеусловием).
Ц иклы « д о» - повторение тела цикла до выполнения условия :
Ц иклы « п ока» - повторение тела цикла пока условие выполняется ( истинно ):
Ц иклы со счётчиком (с параметром) – повторение тела цикла заданное число раз :
Вспомогательный алгоритм (подпрограмма, процедура).
Вспомогательный алгоритм представляет собой модуль, к которому можно многократно обращаться из основного алгоритма. Использование вспомогательных алгоритмов может существенно уменьшить размер алгоритма и упростить его разработку.
Методы разработки сложных алгоритмов.
Существует два метода разработки сложных алгоритмов:
Метод последовательной детализации задачи («сверху-вниз») состоит в том, что исходная сложная задача разбивается на подзадачи. Каждая из подзадач рассматривается и решается отдельно. Если какие-либо из подзадач сложны, они также разбиваются на подзадачи. Процесс продолжается до тех пор, пока подзадачи не сведутся к элементарным. Решения отдельных подзадач затем собираются в единый алгоритм решения исходной задачи. Метод широко используется, так как позволяет вести разработку общего алгоритма одновременно нескольким программистам, решающим локальные подзадачи. Это необходимое условие быстрой разработки программных продуктов.
Сборочный метод («снизу-вверх») заключается в создании множества программных модулей, реализующих решение типичных задач. При решении сложной задачи программист может использовать разработанные модули в качестве вспомогательных алгоритмов (процедур). Во многих системах программирования уже существуют подобные наборы модулей, что существенно упрощает и ускоряет создание сложного алгоритма.
Управление - целенаправленное взаимодействие объектов, одни из которых являются управляющими, другие - управляемыми.
В простейшем случае таких объектов два:
С точки зрения информатики управляющие воздействия можно рассматривать как управляющую информацию. Информация может передаваться в форме команд. Последовательность команд по управлению объектом, приводящая к заранее поставленной цели, называется алгоритмом управления. Следовательно, объект управления можно назвать исполнителем управляющего алгоритма. В рассмотренном примере, управляющий объект работает "не глядя" на то, что происходит с управляющим объектом (управление без обратной связи). Такая схема управления называется незамкнутой. Другая схема управления может учитывать информацию о процессах, происходящих в объекте управления:
В этом случае, алгоритм управления должен быть достаточно гибким, чтобы анализировать эту информацию и принимать решение о своих дальнейших действиях в зависимости от состояния объекта управления (управление с обратной связью). Такая схема управления называется замкнутой.
Более подробно процессы управления изучаются рассматриваются кибернетикой. Эта наука утверждает, что самые разнообразные процессы управления в обществе, природе и технике происходят сходным образом, подчиняются одним и тем же принципам.
Языки программирования
Язык программирования – набор правил записи алгоритмических структур и данных.
Вся информация в компьютере, в том числе и компьютерные программы, представляется в двоичной форме, т.е. в виде последовательности нулей и единиц. На заре компьютерной эры программисты вынуждены были составлять программы именно в таком виде. Такой способ программирования позволяет создать программу, состоящую непосредственно из команд процессора (язык машинных команд). Написание и отладка такой программы всегда были чрезвычайно сложным и трудоёмким занятием. Для облегчения труда программистов были разработаны так называемые ассемблеры – языки, которые позволяли записывать машинные команды с помощью команд, состоящих из символов обычного алфавита. Языки машинных команд и ассемблеры относятся к языкам низкого уровня.
В 60 – 70-е годы прошлого века стали появляться языки высокого уровня – формальные языки, позволяющие записывать алгоритмы в привычном для человека виде. Такие языки строились на основе использования определённого набора символов – алфавита и строгих правил построения команд – синтаксиса. Широкое распространение получили процедурные языки высоко уровня. Самые известные процедурные языки - Basic и Pascal . Они развивались длительное время, и последние версии этих языков используются и сейчас ( Qbasic , TurboPascal ). В них широко используются команды (операторы), реализующие типовые алгоритмические структуры. Для ввода и редактирования такой программы используется подобие текстового редактора. Для исполнения такой программы компьютер с помощью специальной программы – транслятора (компилятора или интерпретатора) осуществляет перевод программы с языка высокого уровня в язык машинных команд, при этом компьютер должен проверять программу на наличие ошибок и сообщать о них программисту. Таким образом, для создания компьютерной программы нужны другие компьютерные программы!
Система программирования – набор программ, необходимых для ввода, редактирования, отладки и исполнения программы, записанной с помощью одного из языков программирования.
В настоящее время наибольшей популярностью пользуются системы объектно-ориентированного визуального программирования ( Visual Basic , Delphi ). Разработка программы с помощью такой системы программирования состоит из двух этапов:
Такой подход существенно облегчает создание программ, так как разработка графического интерфейса вручную (в процедурных языках) сложный и трудоёмкий процесс.
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается некоторый произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы — компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на понятном ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Любой алгоритм есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
- машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки— это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
- Процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения.
- Логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.
- Объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки(ассемблеры) или языки высокого уровня.
9.4.2. Процедурно-ориентированное программирование[12]
Появление первых электронных вычислительных машин, или компьютеров, ознаменовало новый этап в развитии техники вычислений. Появились специализированные языки программирования, созданные для разработки программ, предназначенных для решения вычислительных задач. Примерами таких языков могут служить FOCAL и FORTRAN.
Основой разработки программ являлась процедурная, или алгоритмическая, организация структуры программного кода. Это было настолько естественно для решения вычислительных задач, что целесообразность такого подхода ни у кого не вызывала сомнений. Исходным в данной методологии было понятие алгоритма.
При увеличении объемов программ для упрощения их разработки появилась необходимость разбивать большие задачи на подзадачи. В языках программирования возникло и закрепилось новое понятие процедуры. Использование процедур позволило разбивать большие задачи на подзадачи и таким образом упростило написание больших программ. Кроме того, процедурный подход позволил уменьшить объем программного кода за счет написания часто используемых кусков кода в виде процедур и их применения в различных частях программы.
Как и алгоритм, процедура представляет собой законченную последовательность действий или операций, направленных на решение отдельной задачи. В языках программирования появилась специальная синтаксическая конструкция, которая также получила название процедуры.
Со временем вычислительные задачи становились все сложнее, а значит, и решающие их программы увеличивались в размерах. Их разработка превратилась в серьезную проблему. Когда программа становится все больше, ее приходится разделять на все более мелкие фрагменты. Основой для такого разбиения как раз и стала процедурная декомпозиция, при которой отдельные части программы, или модули, представляли собой совокупность процедур для решения одной или нескольких задач. Одна из основных особенностей процедурного программирования заключается в том, что оно позволило создавать библиотеки подпрограмм (процедур), которые можно было бы использовать повторно в различных проектах или в рамках одного проекта. При процедурном подходе для визуального представления алгоритма выполнения программы применяется так называемая блок-схема. Соответствующая система графических обозначений была зафиксирована в ГОСТ 19.701-90. Блок-схемный подход к написанию алгоритмов был рассмотрен выше.
Дальнейшее увеличение программных систем способствовало формированию новой точки зрения на процесс разработки программ и написания программных кодов, которая получила название методологии структурного программирования. Ее основой является процедурная декомпозиция предметной области решаемой задачи и организация отдельных модулей в виде совокупности процедур. В рамках этой методологии получило развитие нисходящее проектирование программ, или проектирование "сверху вниз". Пик популярности идей структурного программирования приходится на конец 70-х - начало 80-х годов.
В этот период основным показателем сложности разработки программ считался ее размер. Общая трудоемкость разработки программ оценивалась специальной единицей измерения - "человеко-месяц", или "человеко-год". А профессионализм программиста напрямую связывался с количеством строк программного кода, который он мог написать и отладить в течение, скажем месяца.
Читайте также: