- •СОДЕРЖАНИЕ
- •Раздел 1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
- •1.1. Принцип программного управления
- •1.2. Автоматическое выполнение команд программы
- •1.3. Этапы постановки и решения задачи на компьютере
- •1.4. Назначение и классификация языков программирования
- •1.4.1. Машинно-ориентированные языки
- •1.4.2. Машинно-независимые языки
- •1.5. Структура программного обеспечения
- •1.5.1. Системы программирования
- •1.5.2. Операционные системы
- •Раздел 2. ОСНОВЫ АЛГОРИТМИЗАЦИИ
- •2.1. Алгоритм и его свойства
- •2.2. Способы описания алгоритмов
- •2.2.1. Словесное описание
- •2.2.2. Графическое описание
- •2.2.3. Запись на алгоритмическом языке
- •2.3. Разновидности структур алгоритмов
- •2.3.1. Линейный вычислительный процесс
- •2.3.2. Разветвляющийся вычислительный процесс
- •2.3.3. Циклический вычислительный процесс
- •Раздел 3. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •3.1. Теория структурного программирования
- •3.2. Реализация структурного проектирования в современных языках программирования
- •3.3. Преобразование неструктурированных программ в структурированные
- •3.3.2. Метод введения переменной состояния
- •3.3.3. Метод булевого признака
- •3.4. Способы графического представления структурированных схем алгоритмов
- •3.4.1. Метод Дамке
- •3.4.2. Схемы Насси-Шнейдермана
- •Раздел 4. АЛГОРИТМИЧЕСКИЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ
- •4.1. Общая характеристика языка Паскаль
- •4.2. Алфавит языка Паскаль
- •4.3. Основные понятия языка
- •4.3.1. Идентификаторы
- •4.3.2. Комментарии
- •4.4. Структура простейшей программы
- •4.5. Способы описания синтаксиса
- •4.5.2. Синтаксические диаграммы
- •Раздел 5. ОСНОВНЫЕ ТИПЫ ДАННЫХ
- •5.1. Классификация данных
- •5.2. Стандартные скалярные типы данных
- •5.2.1. Целочисленные типы
- •Формат
- •5.2.2. Вещественные типы
- •Функция
- •5.2.3. Символьный тип (тип Char)
- •5.2.4. Логический тип (тип Boolean)
- •Функция
- •5.3. Выражения
- •5.4. Оператор присваивания
- •Раздел 6. СТРУКТУРА ПРОГРАММЫ
- •6.1. Программный модуль
- •6.2. Раздел меток
- •6.3. Раздел констант
- •6.4. Раздел типов
- •6.5. Раздел переменных
- •6.6. Раздел операторов
- •Раздел 7. ОПЕРАТОРЫ
- •7.1. Составной оператор
- •7.2. Программирование линейных и разветвляющихся структур алгоритмов
- •7.2.1. Оператор перехода Goto
- •7.2.2. Условный оператор If
- •7.2.3. Оператор варианта (выбора) Case
- •7.2.4. Пустой оператор
- •7.3. Программирование циклических структур алгоритмов
- •7.3.1. Оператор цикла с параметром (оператор For)
- •7.3.2. Оператор цикла с постусловием
- •7.3.3. Оператор цикла с предусловием
- •7.3.4. Операторы Continue и Leave
- •Раздел 8. СТРУКТУРИРОВАНИЕ И ОФОРМЛЕНИЕ ПРОГРАММ
- •Раздел 9. ОПИСАННЫЕ СКАЛЯРНЫЕ ТИПЫ
- •9.1. Перечислимый скалярный тип
- •9.2. Тип диапазон
- •10.1. Массивы
- •10.1.1. Задание массивов
- •10.1.2. Действия над элементами массивов
- •10.1.3. Действия над массивами
- •10.1.4. Типизованные константы типа массив
- •10.2. Строковые данные
- •10.2.1. Строковые константы
- •10.2.2. Строковые переменные
- •10.2.3. Встроенные функции, определенные над данными типа String
- •ЛИТЕРАТУРА
(компьютер или язык программирования).
А<B Сравнить |
А>B |
X= |
|
А, В |
|
|
|
|
|
|
|
А=B |
|
1 |
А |
|
|
||
|
|
|
|
|
|
2 |
В |
|
|
|
|
|
|
3 |
С |
|
|
|
|
|
|
4 |
Д |
|
|
|
Рисунок 2.30 – Графическое представление нескольких выходов из символа с условиями переходов по конкретной ветви
В настоящее время существуют технологии разработки исходного текста программ без предварительного создания схем алгоритмов. Одну из них описывает раздел 8.
2.3.Разновидности структур алгоритмов
Различают следующие структуры алгоритмов:
1)линейные;
2)разветвляющиеся;
3)циклические.
2.3.1. Линейный вычислительный процесс
Линейный вычислительный процесс – это процесс, в котором направление вычислений является единственным.
33
Пример 2.2.
Вычислить значение функции
Y = (sin X + 2 cos( X Z ) + 3 XZ )
Алгоритм вычисления данной функции является линейным, поскольку ход вычислительного процесса не зависит от каких-либо условий.
Алгоритм может быть разработан с различной степенью детализации. Рисунок 2.31 представляет схему алгоритма, подробно описывающую вычисление функции Y.
Начало |
1 |
Ввод X,Z |
Y:=Y+sinX |
A := X/Z
Y := 3*A
Y:=Y+2*cosA
1
_____
Y := √Y
Вывод Y
Конец
Рисунок 2.31 – Детализированная схема линейного алгоритма вычисления функции Y
Символом * в языках программирования и на схемах алгоритмов (см. рисунок 2.31) принято обозначать операцию умножения.
Рисунок 2.32 содержит укрупненную схему того же алгоритма.
Для повышения эффективности алгоритма желательно, чтобы выражения, участвующие в вычислениях несколько раз, вычислялись один раз, а затем использовались уже вычисленные их значения (см. рисунок 2.31 и рисунок 2.32, где один раз вычислено значение X/Z, полученное значение присвоено переменной A, которая затем используется в вычислениях).
34
Начало |
A |
|
Ввод X, Z |
_________________________________________ |
|
Y:=√sinX+2*cosA+3*A |
||
|
||
A := X/Z |
Вывод Y |
|
|
||
A |
Конец |
|
|
||
Рисунок 2.32 – Укрупненная схема линейного алгоритма |
||
вычисления функции Y |
2.3.2.Разветвляющийся вычислительный процесс
Разветвляющийся вычислительный процесс – это процесс, в котором направление вычислений определяется некоторыми условиями.
Пример 2.3.
Вычислить значение функции
0,еслиX < 0;
1,еслиX = 0;
Y = 2,если0 < X < 0,5;3,если0,5 ≤ X < 1;
4,иначе.
Подробная схема алгоритма имеет вид, который представляет рисунок 2.33. На данном рисунке используется набор вложенных символов «Решение» с двумя выходами.
35
|
Начало |
|
|
|
|
Ввод X |
|
|
|
да |
X<0 |
нет |
|
|
|
|
|
|
|
Y := 0 |
да |
X=0 |
нет |
|
|
|
|
|
|
|
Y := 1 |
да |
X<0,5 |
нет |
|
|
|
||
|
|
|
|
|
|
|
Y := 2 |
да |
нет |
|
|
|
|
X<1 |
|
|
|
Y := 3 |
Y:= 4 |
|
|
|
Вывод Y |
|
|
|
|
Конец |
|
Рисунок 2.33 – Схема разветвляющегося алгоритма вычисления функции Y |
||||
|
(используется символ «Решение» с двумя выходами) |
36
Этот же алгоритм может быть представлен так, как иллюстрирует |
||||
рисунок 2.34. На данном рисунке применен один символ «Рещение» со |
||||
многими выходами. |
|
|
|
|
Начало |
|
|
|
|
Ввод X |
|
|
|
|
X |
|
|
|
|
X < 0 |
|
|
|
|
X = 0 |
|
|
|
|
0<X<0,5 |
|
|
|
|
0,5≤X<1 |
|
|
|
|
X≥1 |
|
|
|
|
Y := 4 |
Y := 3 |
Y := 2 |
Y := 1 |
Y := 0 |
Вывод Y |
|
|
|
|
|
Конец |
|
|
|
Рисунок 2.34 - Схема разветвляющегося алгоритма вычисления функции Y |
||||
(используется символ «Решение» с многими выходами) |
|
37