Общие сведения об алгоритмах


ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ Новикова Ирина ВасильевнаМБОУ «Средняя школа № 36»Г. Дзержинск Нижегородской области ВОПРОСЫ. Алгоритм. Исполнители алгоритмов. 2. Свойства алгоритмов. 3. Способы описания алгоритмов. 4. Основные символы блок-схем. 5. Типы алгоритмов. 6. Этапы решения задач на ЭВМ. Алгоритм- это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи. Примеры алгоритмов Оплата через терминал Для совершения оплаты, необходимо выбрать нужную опцию на экране терминала. Выбрать пункт «Оплатить услуги» Ввести номер счёта. На экране появится окно выбора суммы оплаты. Ввести в окно «сумма оплаты» число, указанное на квитанции.Если всё правильно, то нажать кнопку «далее». На экране появится окно «сумма оплаты». Вносить купюры с купюроприемник, пока не получится число, равное введенной ранее в окне выбора суммы оплаты. Нажать кнопку «оплатить» и дождаться распечатки чека. Примеры алгоритмов Нарисовать лошадь Примеры алгоритмов Исходные данные Алгоритм Результат Общая схема работы алгоритма Задать два числаСложить заданные числаРазделить сумму на 2 Вычислительный алгоритм Среднее арифметическое двух чисел ИСПОЛНИТЕЛИ АЛГОРИТМОВ ЧЕЛОВЕКживотное РОБОТТехническое устройство КОМПЬЮТЕР ИСПОЛНИТЕЛЬ ВЫПОЛНЯЕТ АЛГОРИТМ ФОРМАЛЬНО неформальные формальные Указание выполнить конкретное действие называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем называется системой команд. СВОЙСТВА АЛГОРИТМОВ. 1. Дискретность.2. Понятность (определенность).3. Однозначность (детерминированность).4. Массовость5. Результативность (конечность).6. Правильность. СПОСОБЫ ОПИСАНИЯ СЛОВЕСНО-ПОШАГОВЫЙ ГРАФИЧЕСКИЙ-БЛОК-СХЕМА АЛГОРИТМИЧЕСКИЙЯЗЫК или ПРОГРАММА 1. Прочесть значение R.2. Умножить значение R на 3,14.3. Умножить результат второго действия на значение R.4. Записать полученный в предыдущей команде результат как значение S. СЛОВЕСНО-ПОШАГОВЫЙ НАЧАЛО ВВОД R S:=3,14*R2 КОНЕЦ S ВЫВОД S АЛГ ЗАДАЧА(ВЕЩ R,S) АРГ R РЕЗ SНАЧ ВВОД R R:=3,14*R S:=R*R ВЫВОД SКОН БЛОК НАЧАЛА ИЛИ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ АЛГОРИТМА НАЧАЛО КОНЕЦ БЛОКИ ВВОДА-ВЫВОДА БЛОК ВВОДА БЛОК ВВОДА С КЛАВИАТУРЫ ВВОД ВЫВОД ВЫВОДА РЕЗУЛЬТАТА БЛОК ПРИСВАИВАНИЯ Х:=У+120 ДЕЙСТВИЕОБРАБАТЫВАЕТ ДАННЫЕ И РАЗМЕЩАЕТ РЕЗУЛЬТАТЫ В ЯЧЕЙКИ ПАМЯТИ С УКАЗАННЫМ ИМЕНЕМ ПАРАМЕТР УСЛОВИЕ Да Нет БЛОК ПРОВЕРКИ УСЛОВИЯ БЛОК ЦИКЛА С ПАРАМЕТРОМ ОБОЗНАЧАЕТ МОМЕНТ ПЕРЕХОДА К ПОДПРОГРАММЕN – НОМЕР СТРОКИ, С КОТОРОЙ НАЧИНАЕТСЯ ПОДПРОГРАММА ИЛИ НАЗВАНИЕ ПОДПРОГРАММЫ БЛОК ОБРАЩЕНИЯ К ПОДПРОГРАММЕ N блок начала (конца)блок ввода (вывода) блок действия блок условия Типы блоков: Типы алгоритмов. 1. Линейный (следование).2. Разветвляющийся (ветвление).3. Циклический.Базовые алгоритмические структурыЛюбой алгоритм может быть представлен в виде комбинации трёх базовых структурСледование Ветвление Цикл Базовая структура следование (или линейная).ЛИНЕЙНЫЙ - ЭТО АЛГОРИТМ, В КОТОРОМ ВСЕ КОМАНДЫ ВЫПОЛНЯЮТСЯ СТРОГО ПОСЛЕДОВАТЕЛЬНО ДРУГ ЗА ДРУГОМ. Запись линейного алгоритма в виде блок-схемы: действие 1 действие n … начало конец НАЧАЛО ВВОД R S:=3,14*R2 КОНЕЦ S ВЫВОД S ВЕТВЛЕНИЕ – ЭТО АЛГОРИТМ, В КОТОРОМ ТА ИЛИ ИНАЯ СЕРИЯ КОМАНД ВЫПОЛНЯЕТСЯ ПОСЛЕ ПРОВЕРКИ УСЛОВИЯ, ТО ЕСТЬ СУЩЕСТВУЕТ ВЫБОР ДЕЙСТВИЯ Ветвление Полноеесли <условие>то <серия команд 1>иначе <серия команд 2> Неполноеесли <условие>то <серия команд 1> КОМАНДА ВЕТВЛЕНИЯ ИМЕЕТ ПОЛНУЮ (1) ИЛИ СОКРАЩЕННУЮ ФОРМУ(2) Условие Серия 1 Серия 2 Да Нет 1 Условие Серия 1 Да Нет 2 Запись полного ветвления в виде блок-схемы: условие серия команд 1 серия команд 2 да нет Запись неполного ветвления в виде блок-схемы: условие серия команд 1 да нет НАЧАЛО ВВОД A,B КОНЕЦ ВЫВОД M A>B M:=A M:=B Да Нет если – то если – то – иначе условие нет да условие нет да действие действие 1 действие 2 выбор выбор – иначе да да условие 1 действие 1 условие 1 действие 1 да да условие 2 действие 2 условие 2 действие 2 да да условие N действие N условие N действие N нет действие N+1 Цикл - это такая алгоритмическая структура, в которой серия команд (тело цикла) выполняется многократно. Определение: КОМАНДА ПОВТОРЕНИЯ - ЭТО СОСТАВНАЯ КОМАНДА, В КОТОРОЙ ТЕЛО ЦИКЛА ВЫПОЛНЯЕТСЯ НЕСКОЛЬКО РАЗ. ТРИ ТИПА КОМАНД ПОВТОРЕНИЯ:ЦИКЛ «ДЛЯ»ЦИКЛ «ПОКА»ЦИКЛ «ДО» ОТЛИЧИЕ - СПОСОБ ПРОВЕРКИ ОКОНЧАНИЯ ЦИКЛА. Цикл с предусловиемпока истинно условие, предписывает выполнять тело цикла.Словесный способ записи:пока условиетело цикла Запись цикла с предусловием в виде блок-схемы: (цикл-пока) условие тело цикла да нет Цикл с постусловиемпредписывает выполнять тело цикла до тех пор, пока не выполнится условие выхода из цикла.Словесный способ записитело цикла до условие Запись цикла с постусловием в виде блок-схемы (цикл-до): условие тело цикла да нет Цикл со счетчикомпредписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. Словесный способ записидля i от i1 до i2   тело цикла Запись цикла со счетчиком в виде блок-схемы: счетчик тело цикла да нет НАЧАЛО КОНЕЦ I I<=10 I:=I+2 Да Нет I:=1 ЦИКЛ «ПОКА» НАЧАЛО КОНЕЦ Да Нет I=1,10,2 I ЦИКЛ «ДЛЯ» НАЧАЛО КОНЕЦ I I>10 I:=I+2 Да Нет ЦИКЛ «ДО» ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ Постановка задачи. Математическая модель. 3. Конструирование алгоритма. 4. Перевод алгоритма в программу. 5. Ввод и испытание программы. 6. Получение и анализ результатов решения задачи. ЗАДАЧА Определить время встречи двухпешеходов, идущих навстречу друг другу, если известно, что расстояние между пешеходами L, скорость первого пешехода V1, скорость второго пешехода V2. ПОСТАНОВКА ЗАДАЧИ. Дано: L, V1, V2. Найти: t. L>0, V1>0, V2>0, T>0 L V1 V2 МАТЕМАТИЧЕСКАЯ МОДЕЛЬ. L=S1+S2 S1=V1*T S2=V2*T L= V1*T +V2*T = T*( V1 + V2) T=L / (V1 + V2) АЛГОРИТМ алг время (вещ L,V1,V2,T) арг L, V1, V2 рез Tнач ввод L,V1,V2 если L<=0 то вывод “Недопустимо: L<=0” иначе если V1<=0 или V2<=0 то вывод “недопустимые значения скоростей” иначе t:=L/(v1+v2) все все вывод tкон