Алгоритмы. Малышева М.И. Этапы решения задач на ЭВМ 1. Постановка задачи 2. Построение математической (формализованной) модели. выделить существенные признаки объекта; определить, что считать аргументами (исходными данными) и результатами; определение метода решения (математические соотношения, связывающие результаты с исходными 3. 4. 5. 6. данными) Построение алгоритма. Программа на языке программирования Ввод программы в компьютер, ее тестирование, отладка и выполнение на ЭВМ. Анализ результатов. Если необходимо, уточнение модели (перейти к п.2) Исполнитель и его характеристики ИСПОЛНИТЕЛЬ - человек или механическое устройство (или, например, компьютер), который умеет выполнять строго определенный набор команд (и больше ничего!). Набор команд, который умеет выполнять Исполнитель (т.е. список всех команд), называется СИСТЕМОЙ КОМАНД ИСПОЛНИТЕЛЯ (СКИ). Существует множество различных исполнителей. Для знакомства с любым исполнителем, нужно узнать, в какой среде работает исполнитель, и познакомиться с его СКИ (системой команд исполнителя), т.е. узнать: Исполнитель Среда СКИ Задание 1: Назвать исполнителей следующих видов работы: уборка мусора во дворе, перевозка пассажиров, выдача заработной платы, прием экзаменов, сдача экзаменов, обучение детей в школе. Сформулируйте СКИ для каждого из этих исполнителей. АЛГОРИТМ И ЕГО СВОЙСТВА АЛГОРИТМ – понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату. Примеры: 1. “Пойди туда - не знаю куда, принеси то - не знаю что” (алгоритмом не является) 2. Алгоритм приготовления бутерброда: исх. данные: хлеб, продукт. Искомый результат - бутерброд (ломтик продукта, положенный на ломтик хлеба). Словесный алгоритм: а) отрезать ломтик хлеба; б) отрезать ломтик продукта; в) положить продукт на хлеб. СВОЙСТВА АЛГОРИТМА: 1. ОПРЕДЕЛЕННОСТЬ - предписания в алгоритме должны быть однозначными по смыслу, чтобы исполнитель не принимал самостоятельных решений. 2. МАССОВОСТЬ - пригодность для решения целого класса задач данного типа при различных исходных данных, отвечающих общей постановке задачи. 3. ДИСКРЕТНОСТЬ - расчлененность алгоритма на отдельные элементарные (дискретные) шаги, которые исполнитель может выполнить без дополнительных разъяснений. 4. РЕЗУЛЬТАТИВНОСТЬ - возможность получения результата за конечное число шагов (как бы долго алгоритм ни выполнялся, он все равно когда-нибудь закончится). 5. ПОНЯТНОСТЬ – алгоритм должен быть составлен только из команд, входящих в систему команд исполнителя. Задание 2: Подумайте и напишите, что из ниже перечисленного является алгоритмом, а что нет: правила игры в футбол; вычисление корней квадратного политическая карта мира; уравнения; телефонный справочник; приготовление завтрака. СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ: 1. 2. 3. Словесный (например, алгоритм приготовления бутерброда). Графический (в виде блок-схем). На алгоритмическом языке. 1 Алгоритмы. Малышева М.И. ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ С ПОМОЩЬЮ БЛОК-СХЕМ. Изображение основных блоков: начало да вычисления конец Проверка условия Ввод или вывод данных нет Примеры: начало начало Ввод А, В Ввод А, В Да Нет А>B S=A*B С:=В С:=А Вывод S Конец Рис.1 Определение площади стола Вывод С Рис2. Нахождение наибольшего числа конец Ошибки в алгоритмах 1. Синтаксические. Если при составлении алгоритма Роботу вместо «вправо» скомандуем «вправа» то ЭВМ нашу запись не поймет и, даже не приступая к выполнению алгоритма, сообщит об ошибке. 2. Отказы - проявляются при выполнении алгоритма, например, при попытке исполнителя Робот выйти за пределы поля или попытке деления на 0. В этом случае выполнение алгоритма или программы прекратится, и ЭВМ сообщит об ошибке. 3. Логические ошибки, которые ни ЭВМ, ни исполнитель вообще не могут обнаружить. Например, если мы вместо команды “вправо” напишем случайно “влево”, Робот выполнит алгоритм, но мы не попадем в ту клетку, куда было надо. Или если вместо команды S=A*B мы напишем S=A/B, ЭВМ все равно выполнит эту команду. Однако никаких сообщений об ошибках мы не получим (да и откуда ЭВМ может знать, куда мы на самом деле хотели переместить Робота, или по какой формуле мы хотели считать). 2