Слово «алгоритм» происходит от имени великого среднеазиатского ученого 8–9 вв. Аль-Хорезми. Из математических работ Аль-Хорезми до нас дошли только две – алгебраическая и арифметическая. Вторая книга долгое время считалась потерянной, но в 1857 в библиотеке Кембриджского университета был найден ее перевод на латинский язык. В ней описаны четыре правила арифметических действий, практически те же, что используются и сейчас. Первые строки этой книги были переведены так: «Сказал Алгоритми. Воздадим должную хвалу Богу, нашему вождю и защитнику». Так имя Аль-Хорезми перешло в «Алгоритми», откуда и появилось слово «алгоритм».
Пример 1. Выключение компьютера: 1. Нажать кнопку 2. В открывшемся меню выбрать 3. В меню Выключение компьютера выбрать
Определение: Алгоритм – понятное и точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов.
Дискpетность разделение алгоритма на последовательность шагов. Свойства алгоритма:
Pезультативность – получение из исходных данных результата за конечное число шагов. Свойства алгоритма:
Массовость – возможность применения алгоритма к большому количеству различных исходных данных. Свойства алгоритма:
Детерминированность – исполнитель выполняет команды алгоритма в строгой определенной последовательности. Свойства алгоритма:
Понятность – исполнитель алгоритма должен знать, как его выполнять.
Опpеделенность каждое пpавило алгоpитма должно быть четким и однозначным. Свойства алгоритма:
Исполнитель алгоритма - система, способная выполнить действия, предписываемые алгоритмом.
Характеристики исполнителя: Сpеда это «место обитания» исполнителя. Система команд – некоторый строго заданный список команд. После вызова команды исполнитель совеpшает соответствующее элементаpное действие. Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.
Выберите примеры исполнителей:
Способы записи алгоритмов: словесный (запись на естественном языке); графический (изображения из графических символов); программный (тексты на языках программирования).
Блок-схема – это графическое изображение алгоритма в виде определенным образом связанных между собой нескольких типов блоков.
Типы блоков: блок начала (конца) блок ввода (вывода) блок действия блок условия объявление переменных
Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Машинный язык – 0; 1 Ассемблер – операторы (MOV, ADD, SUB…) Языки программирования высокого уровня – Basic, Pascal Объектно-ориентированные языки – Visual Basic Java – для различных ОС Платформа.NET - Visual Studio. NET Программы-трансляторы: интерпретаторы и компиляторы
Интерпретатор – это программа, которая обеспечивает последовательный «перевод» команд программы на машинный язык с одновременным их выполнением. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполняемом файле (.ехе), затем этот готовый к исполнению файл запускают на выполнение.
Линейный алгоритм – это алгоритм, в котором команды выполняются последовательно одна за другой.
Запись линейного алгоритма в виде блок-схемы: действие 1 действие n … начало конец
Разветвляющийся алгоритм – это алгоритм, в котором та или иная серия команд выполняется в зависимости от истинности условия.
Ветвление Полное если то иначе Неполное если то
Запись полного ветвления в виде блок-схемы: условие серия команд 1серия команд 2 данет
Запись неполного ветвления в виде блок-схемы: условие серия команд 1 данет
Определение: Условие – это в ысказывание, которое может быть либо истинным, либо ложным. Условия простыесложные
Простое условие Включает в себя одно предложение; два числа, две переменных или два арифметических выражения, которые сравниваются между собой Например: Идет дождь; 5>4; x*y=3+8).
Сложное условие Последовательность простых условий, объединенных между собой знаками логических операций И (AND), ИЛИ (OR). Например: (10>0) AND (8>9); (x=10) OR (x>=0).
Задание: Построить блок-схему разветвляющегося алгоритма, используя сложное условие. Принадлежит ли точка x отрезку [a, b]?
Задания: Лежит ли x вне отрезка [a, b]; Принадлежит ли x отрезку [a, b] или отрезку [c, d]; Является ли k трехзначным числом; Какое из чисел a, b, c является меньшим; Есть ли среди чисел a, b, c взаимно противоположные; Равны ли треугольники со сторонами a1, b1, c1 и a2, b2, c2; Является ли четырехугольник со сторонами a, b, c и d ромбом.
Ответы: 1. (x b); 2. ((x>=a) and (x =c) and (x 99) and (k < 1000); 4. (c a); 5. (a=-b) or (a=-c) or (b=-c); 6. (a1=a2) and (b1=b2) and (c1=c2); 7. (a=b) and (c=d) and (b=c).
Определение: Выбор - это такая алгоритмическая структура, в которой выполняется одна из нескольких последовательностей команд при истинности соответствующего условия.
Полный выбор при условие 1: действия 1 при условие 2: действия при условие N: действия N иначе действия N+1
Неполный выбор при условие 1: действия 1 при условие 2: действия при условие N: действия N
Запись полного выбора в виде блок-схемы: условие 1 да условие n серия команд 1 серия команд n да … нет серия команд n+1
Запись неполного выбора в виде блок-схемы: условие 1 да нет условие 2условие n серия команд 2 да серия команд 1 серия команд n да … нет
Определение: Цикл - это такая алгоритмическая структура, в которой серия команд (тело цикла) выполняется многократно.
Цикл с предусловием пока истинно условие, предписывает выполнять тело цикла. Словесный способ записи: пока условие тело цикла
Запись цикла с предусловием в виде блок-схемы: условие тело цикла да нет
Цикл с постусловием предписывает выполнять тело цикла до тех пор, пока не выполнится условие выхода из цикла. Словесный способ записи тело цикла до условие
Запись цикла с постусловием в виде блок-схемы: условие тело цикла да нет
Цикл со счетчиком предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. Словесный способ записи для i от i1 до i2 тело цикла
Запись цикла со счетчиком в виде блок-схемы: счетчик тело цикла да нет