|
|
@@ -94,7 +94,7 @@ flowchart LR
|
|
|
|
|
|
- словесная (запись на естественном языке)
|
|
|
- графическая (изображения из графических символов)
|
|
|
-- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.
|
|
|
+- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.)
|
|
|
- программная (тексты на языках программирования)
|
|
|
|
|
|
**Пример:** написать алгоритм "Одеться по погоде". Если на улице температура ниже 0, то необходимо надеть шубу, иначе – куртку.
|
|
|
@@ -120,33 +120,86 @@ flowchart LR
|
|
|
|
|
|
Наибольшее распространение благодаря своей наглядности получил графический способ записи алгоритмов. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
|
|
|
|
|
|
-Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
|
|
|
+Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. Ниже приведены наиболее часто употребляемые символы.
|
|
|
|
|
|
-Название символа | Обозначение и пример заполнения | Пояснение
|
|
|
------------------|---------------------------------|------------
|
|
|
-Процесс |  |Вычислительное действие или последовательность действий
|
|
|
-Решение |  | Проверка условий
|
|
|
-Модификация |  | Начало цикла
|
|
|
-Предопределенный процесс |  | Вычисления по подпрограмме, стандартной подпрограмме
|
|
|
-Ввод-вывод |  | Ввод-вывод в общем виде
|
|
|
-Пуск-останов |  | Начало, конец алгоритма, вход и выход в подпрограмму
|
|
|
-Документ |  | Вывод результатов на печать
|
|
|
+- __Процесс__
|
|
|
|
|
|
-Блок **процесс** применяется для обозначения действия или последовательности действий,изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A["x = (a - b) / sin(c)"]
|
|
|
+ ```
|
|
|
|
|
|
-Блок **решение** используется для обозначения переходов управления по условию. В каждом блоке **решение** должны быть указаны вопрос, условие или сравнение, которые он определяет.
|
|
|
+ Блок **процесс** применяется для обозначения действия или последовательности действий,изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
|
|
|
|
|
|
-Блок **модификация** используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
|
|
|
+- __Решение__
|
|
|
|
|
|
-Блок **предопределенный процесс** используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A{a < b}
|
|
|
+ A-->|да|B[Процесс 1]
|
|
|
+ A-->|нет|C[Процесс 2]
|
|
|
+ ```
|
|
|
|
|
|
-Блок **Ввод-вывод** используется для преобразования данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Отдельным логическим устройствам компьютера или отдельным функциям обмена соответствуют определенные блочные символы. В каждом из них указываются тип устройства или файла данных, тип информации, участвующий в обмене, а также вид операции обмена.
|
|
|
+ Блок **решение** используется для обозначения переходов управления по условию. В каждом блоке **решение** должны быть указаны вопрос, условие или сравнение, которые он определяет.
|
|
|
|
|
|
-Блок **Пуск-останов** используется для обозначения начала, конца, прерывания процесса обработки данных или выполнения программы.
|
|
|
+- __Модификация__
|
|
|
|
|
|
-Блок **Документ** предназначен для ввода-вывода данных, носителем которых служит бумага.
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A{{i = 1, 50, 2}}
|
|
|
+ ```
|
|
|
|
|
|
-
|
|
|
+ Блок **модификация** используется для организации циклических конструкций. Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
|
|
|
+
|
|
|
+- __Предопределенный процесс__
|
|
|
+
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A[[Расчёт параметров]]
|
|
|
+ ```
|
|
|
+
|
|
|
+ Блок **предопределенный процесс** используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
|
|
|
+
|
|
|
+- __Ввод-вывод__
|
|
|
+
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A[/Ввод a, b, c/]
|
|
|
+ ```
|
|
|
+
|
|
|
+ Блок **Ввод-вывод** используется для преобразования данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод).
|
|
|
+
|
|
|
+- __Пуск-останов__
|
|
|
+
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A([Начало])
|
|
|
+ ```
|
|
|
+
|
|
|
+ Блок **Пуск-останов** используется для обозначения начала, конца, прерывания процесса обработки данных или выполнения программы.
|
|
|
+
|
|
|
+- __Документ__
|
|
|
+
|
|
|
+ ```mermaid
|
|
|
+ flowchart TD
|
|
|
+ A@{ shape: doc, label: "Печать a, c" }
|
|
|
+ ```
|
|
|
+
|
|
|
+ Блок **Документ** предназначен для ввода-вывода данных, носителем которых служит бумага.
|
|
|
+
|
|
|
+Теперь, зная назначения блоков, можем составить итоговую блок-схему:
|
|
|
+
|
|
|
+```mermaid
|
|
|
+flowchart TD
|
|
|
+ start([Начало])
|
|
|
+ start-->proc[Определить температуру воздуха]
|
|
|
+ proc-->if{Температура ниже 0}
|
|
|
+ if-->|Да|case1[Надеть шубу]
|
|
|
+ if-->|Нет|case2[Надеть куртку]
|
|
|
+ case1-->A([Конец])
|
|
|
+ case2-->A
|
|
|
+
|
|
|
+```
|
|
|
|
|
|
### Псевдокод
|
|
|
|
|
|
@@ -174,21 +227,12 @@ flowchart LR
|
|
|
|
|
|
```cs
|
|
|
//Пример программы на языке C#
|
|
|
-namespace oap
|
|
|
-{
|
|
|
- class Program
|
|
|
- {
|
|
|
- static void Main(string[] args)
|
|
|
- {
|
|
|
- Console.WriteLine("введите температуру воздуха t: ");
|
|
|
- var t = int.Parse( Console.ReadLine() );
|
|
|
- if (t < 0)
|
|
|
- Console.WriteLine("одеть шубу");
|
|
|
- else
|
|
|
- Console.WriteLine("одеть куртку");
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+Console.WriteLine("введите температуру воздуха t: ");
|
|
|
+var t = int.Parse( Console.ReadLine() );
|
|
|
+if (t < 0)
|
|
|
+ Console.WriteLine("одеть шубу");
|
|
|
+else
|
|
|
+ Console.WriteLine("одеть куртку");
|
|
|
```
|
|
|
|
|
|
### Структурное программирование
|