Лекция 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