|
6 |
|
|
|
|
|
|
|
|
Название символа |
Обозначение |
Пояснение |
|
|
|
||||
Подготовка |
Модификация |
|
команды |
или |
|||||
|
группы команд |
на |
некоторую |
||||||
|
последующую |
|
|
|
функцию |
||||
|
(например, |
|
|
|
модификация |
||||
|
параметров цикла). Используется |
||||||||
|
для циклов с параметром. |
|
|
|
|||||
Терминатор |
Начало и конец программы, |
вход |
|||||||
|
и вывод из подпрограммы |
|
|
|
|||||
Данные |
Символ отображает ввод данных, |
||||||||
|
носитель которых не определён |
|
|||||||
Документ |
Символ |
отображает |
данные, |
||||||
|
представленные |
|
на |
носителе |
в |
||||
|
удобочитаемой |
|
|
|
форме. |
||||
|
Используется как символ печати |
||||||||
|
результатов |
|
|
|
|
|
|
|
|
Линия |
Символ отображает поток данных |
||||||||
|
или |
управления. |
|
При |
|||||
|
необходимости |
|
могут |
|
быть |
||||
|
добавлены стрелки-указатели |
|
|
||||||
Соединитель |
Символ отображает выход в часть |
||||||||
|
схемы и вход из другой части |
||||||||
|
схемы. Используется для обрыва |
||||||||
|
линии и продолжения её в другом |
||||||||
|
месте |
|
|
|
|
|
|
|
|
Комментарий |
Используется |
|
для |
добавления |
|||||
|
описательных |
комментариев |
или |
||||||
|
пояснительных |
записей |
в целях |
||||||
|
объяснений |
|
|
(примечаний). |
|||||
|
Пунктирная |
линия |
связана |
с |
|||||
|
соответствующим |
символом |
или |
||||||
|
может |
обводить |
|
группы |
|||||
|
символов. |
Текст |
помещается |
||||||
|
около ограничивающей фигуры |
|
|||||||
Символы Данные и Документ используются для обозначения операций ввода-вывода.
Символ Процесс применяется для обозначения выполнения одной или нескольких операций, приводящих к изменению значения, формы или размещения информации. Представление операций достаточно свободно. Например, для обозначения вычислений можно использовать математические выражения или текст.
7
Символ Решение используется для обозначения переходов управления по условию. Имеет один вход и ряд выходов, при этом только один из них может быть активизирован после вычисления условий, определённых внутри этого символа. Результаты вычисления могут быть записаны рядом с линиями, отображающими эти пути.
Символ Граница цикла используется для организации циклических вычислительных процессов. Параметр цикла записывается в обеих частях символа. Начальное значение, граничное условие и правило изменения параметра цикла указывается в начале или в конце в зависимости от расположения операции проверяющей условие.
Символ Подготовка используется, как правило, для организации цикла с параметром. Внутри символа записывается параметр цикла, указывается его начальное значение, граничное условие и правила изменения значения параметра. Символ размещается в начале циклической конструкции.
Линии переходов используются для обозначения порядка выполнения действий.
Соединители используются в том случае, когда схема алгоритма разделяется на автономные части, особенно если она не умещается на одном месте, или когда необходимо избежать излишних пересечений линий переходов.
Комментарий позволяет включать в схемы алгоритмов пояснения к функциональным блокам. Частое использование комментариев нежелательно, так как это усложняет схему, делает её менее наглядной.
Алгоритм начинается и заканчивается символами Начало и Конец. Основные правила применения символов и выполнения схем алгоритмов:
1.Символы в схеме должны быть расположены равномерно. Нужно придерживаться разумной длины соединений и минимального числа длинных линий.
2.Символы должны быть по возможности одного размера и предпочтительно горизонтальной ориентации.
3.Внутри символа помещается минимальное количество текста, необходимое для понимания функции символа. Для записи используется естественный язык с элементами математической символики. Если объем текста превышает размер символа, то нужно использовать символ
4.Потоки данных и потоки управления в схемах показываются линиями. Направление потока слева направо и сверху вниз считается стандартным. Если поток имеет направление, отличное от стандартного, стрелки должны указывать это направление.
5.Линии в схемах должны подходить к символу либо слева, либо сверху,
аисходить либо справа, либо снизу. Линии должны быть направлены к центру символа.
6.Каждый символ имеет один вход и один выход. Исключением является символ Решение, который имеет один вход и несколько выходов. При этом каждый выход должен сопровождаться значениями условий, чтобы указать логический путь, который он представляет.
8
Схема алгоритма является самым наглядным способом представления алгоритма, при этом нет никаких ограничений на степень его детализации.
Ниже представлен пример схемы алгоритма нахождения корней квадратного уравнения (рисунок 1).
Рисунок 1 Схема алгоритма нахождения корней квадратного уравнения
9
Алгоритмические языки. После разработки алгоритма встает задача его реализации в виде программы, которую можно выполнить на вычислительной машине (компьютере). В ГОСТ 19781-90 дано следующее определение программы.
Программа – это данные, предназначенные для управления конкретными компонентами обработки информации в целях реализации определённого алгоритма.
Для написания программы необходимо в первую очередь выбрать язык программирования (алгоритмический язык). В общем случае алгоритмический язык – это набор символов с заданными правилами образования из этих символов конструкций, с помощью которых описывается процесс выполнения алгоритма. В ГОСТ 19781–90 дано следующее определение алгоритмического языка.
Алгоритмический язык – искусственный язык, предназначенный для выражения алгоритмов.
Основная цель любого алгоритмического языка – дать пользователю удобные средства для реализации алгоритмов. Выбор алгоритмического языка программирования определяется:
типом решаемой задачи;
предпочтениями и привычками пользователя;
требуемыми затратами времени на разработку;
операционной системой и доступными средами (системами) программирования.
Ниже представлен пример исходной программы, написанной на языке
Си:
//
// Решение квадратного уравнения
//
#include <stdio.h> #include <conio.h> #include <math.h>
void main(void) |
|
|
|
{ |
|
|
|
float a, b, c; |
// коэффициенты |
уравнения |
|
float x1, x2; |
// |
корни уравнения |
|
float d; |
// |
дискриминант |
|
printf(“\nРешение квадратного уравнения\n”);
printf(“Введите в одной строке значения коэффициентов\n”); scanf(“%f%f%f”, &a, &b, &c); //ввод коэффициентов
if (a==0)
printf(“Уравнение не является квадратным\n”);
else { |
|
d=b*b-4*a*c; |
// дискриминант |
if (d<0) |
|
10
printf(“Уравнение не имеет действительных корней\n”); else {
if (d==0) x1=x2=-b/(2*a);
else { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a);
}
printf(“Корни уравнения: x1=%3.2f x2=%3.2f \n”, x1, x2);
}
}
printf(“\nДля завершения нажмите любую клавишу”); getch();
}
Далее исходную программу, написанную на алгоритмическом языке, необходимо перевести в форму исполняемой программы для вычислительной машины (процессора) или промежуточной исполняемой среды (языка интерпретируемого типа).
Этапами подготовки исполняемой программы являются:
1. Трансляция (компиляция) программы это преобразование (перевод) исходного текста программы в объектный код, который представляет собой набор машинных инструкций (команд) без включения кода стандартных программ функций (например, математических функций, функций вводавывода и других). При этом выполняется проверка правильности синтаксиса исходной программы. Если в программе обнаружены синтаксические ошибки, то объектный код не создаётся. Если ошибок не обнаружено, то формируется объектный модуль, который передаётся на следующий этап. Трансляция (компиляция) программы выполняется с помощью специальной программы транслятора (компилятора), входящей в состав среды программирования.
2.Компоновка (редактирование связей) это сборка объектных модулей программы, модулей ввода-вывода и компонентов стандартной библиотеки объектных модулей в один модуль, который называется выполняемым файлом или загрузочным модулем.
3.Выполнение исполняемой программы. На этом этапе получается решение поставленной задачи. При этом возможно прерывание решения (аварийный останов, например, при делении на нуль), зацикливание или неправильные результаты. Причинами этого могут быть как ошибки в исходных данных, так и ошибки в алгоритме. В последнем случае, потребуется вернуться к начальным этапам разработки алгоритма.
2 Пример программы на языке программирования Си
Ниже представлен исходный текст программы, которая демонстрирует работу с двумерным массивом (матрицей), обеспечивая ввод значений для элементов массива с клавиатуры, вывод заполненного массива на экран монитора, выполнение сортировки элементов, расположенных в строках массива, по возрастанию и убыванию их значений, запись элементов массива в двоичный файл, чтение содержимого файла в массив.