Лекция I
АЛГОРИТМИЗАЦИЯ (2ч.)
Теоретический материал
Алгоритм - точное описание последовательности действий, которые необходимо выполнить для решения любой задачи.
Название "алгоритм" произошло от латинской формы имени среднеазиатского математика аль-Хорезми — Algorithmi.
Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством.
Свойства алгоритмов.
| 1. | Дискретность. | Процесс решения задачи должен быть разбит на последовательность отдельных шагов. |
| 2. | Понятность. | Алгоритм должен быть понятен исполнителю. |
| 3. | Детерминированность. | Будучи понятным, алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно. |
| 4. | Результативность. | Алгоpитм должен пpиводить к pешению задачи за конечное число шагов. |
| 5. | Массовость. | Алгоритмы, обеспечивающие решение всего класса задач данного типа. |
Три типа алгоритмов:
1. Линейный;
2. Ветвящийся;
3. Циклический (цикл с постусловием, цикл с предусловием, цикл с параметром).
Способы описания алгоритма:
1. естественный язык;
2. блок - схемы;
3. алгоритмический язык.
Алгоритмы представляются в виде блок-схем. Существуют специальные стандарты для построения блок-схем, где определяются графические изображения блоков. Команды алгоритмов записываются внутри блоков на обычном языке или с использованием математических формул. Блоки соединяются по определенным правилам линиями связи, которые показывают порядок выполнения команд.
| Название блока | Обозначение блока | Назначение блока |
| 1 | 2 | 3 |
| Терминатор |
| Начало/Конец программы или подпрограммы |
| Процесс |
| Обработка данных (вычислительное действие или последовательность вычислительных действий) |
| Решение |
| Ветвление, выбор, проверка условия. В блоке указывается условие или вопрос, который определяет дальнейшее направление выполнения алгоритма |
| Подготовка |
| Заголовок счетного цикла |
| Предопределенный процесс |
| Обращение к процедуре |
| Данные |
| Ввод/Вывод данных |
| Соединитель |
| Маркировка разрыва линии потока |
| Комментарий |
| Используется для размещения пояснений к действиям |
| Горизонтальные и вертикальные потоки |
| Линии связей между блоками, направление потоков |
ЗАПИСЬ АЛГОРИТМА НА ЕСТЕСТВЕННОМ ЯЗЫКЕ.
Алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.
Пример:
Найти значение выражения: у=2а-(х+6).
Алгоритм решения этой задачи:
1. Ввести значения а и х.
2. Сложить х и 6.
3. Умножить а на 2.
4. Вычесть из 2а сумму (х+6).
5. Вывести у как результат вычисления выражения.
К основным структурам построения блок схем относятся:
- Базовая структура следование. Образуется из последовательности действий, следующих одно за другим:
| алгоритмический язык | Язык блок-схем |
| действие 1 действие 2......... действие n |
|
- Базовая структура ветвление. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из путей работы алгоритма.
Каждый из путей ведет к общему выходу независимо от того, какой путь будет выбран.
Структура ветвление существует в четырех основных вариантах:
| алгоритмический язык | Язык блок-схем |
| 1. если-то | |
| если условие то действия все |
|
| 2. если-то-иначе | |
| если условие то действия 1 иначе действия 2 все |
|
| 3. выбор | |
| выбор при условие 1: действия 1 при условие 2: действия 2............ при условие N: действия N все |
|
| 4. выбор-иначе | |
| выбор при условие 1: действия 1 при условие 2: действия 2............ при условие N: действия N иначедействия N+1 все |
|
- Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.
Основные разновидности циклов представлены в таблице:
| алгоритмический язык | Язык блок-схем |
| Цикл типа пока. (цикл с предусловием) проверка условия проводится до выполнения тела цикла, и если при первой проверке условие выхода цикла выполняется, то тело цикла не выполняется ни разу. На естественном языке циклу Пока соответствует последовательность операторов: 1. Операторы начальных присвоений 2. Если условие идти к 5 3. Операторы тела цикла 4. Идти к 2 5. ……… выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. | |
| нц пока условие тело цикла (последовательность действий) кц |
|
| Цикл типа для. выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. | |
| нц для i от i1до i2 тело цикла (последовательность действий) кц |
|
1.
| Начальные присваивания |
| Тело цикла |
| условие |
| да |
| нет |
Особенность цикла: он всегда выполняется хотя бы один раз, так как первая проверка условия выхода из цикла происходит после того, как тело цикла выполнено.
Тело цикла - та последовательность действий, которая выполняется многократно (в цикле).
Начальные присвоения - задание начальных значений тем переменным, которые используются в теле цикла.
На естественном языке циклу До соответствует последовательность операторов:
1. Операторы начальных присвоений
2. Операторы тела цикла
3. Если условие идти к 2
Практический материал (рассмотреть и усвоить способы записи и решения)
1) 


2) После выполнения фрагмента программы
a = 30
b = a/2+1
ЕСЛИ (a<b*2) И (b>15) ТО
a = a+1
ИНАЧЕ
a = 20
КОНЕЦ ЕСЛИ
ВЫВОД а
значение переменной а будет равно …
20
31
30
21
Пояснение к ответу:
а=30, вычисляем b=30/2+1=16
проверяем условие (a<b*2) И (b>15) – (30<16*2) и (16>15) – условие верно
а=а+1=30+1=31
3) Дана блок-схема алгоритма
Определить результат выполнения алгоритма при определённых значениях исходных
данных
Например, при x=16 и y=2
Ввод: х=16 y=2
x=√16=4
y=y2=4
x=4+1=5
y=4+5=9
Вывод: y=9
Лекция II






