1 урок алгоритм свойства.pptx
- Количество слайдов: 58
Тема: Основные понятия алгоритмизации. Базовые алгоритмические конструкции. Этапы решения задачи на ПК. .
Алгоритм. Свойства алгоритма.
Повседневные задачи " Мы редко до конца понимаем, чего мы в действительности хотим" 1. Приготовление завтрака Франсуа де Ларошфуко 2. Решение квадратного уравнения 3. Определение рода существительного
Для решения любой задачи с помощью компьютера необходимо выполнить этапы: Постановка задачи Математическое моделирование Алгоритмизация задачи Программирование Ввод программы и исходных данных в компьютер • Тестирование и отладка программы • Исполнение отлаженной задачи и анализ результатов • • •
Определение 1 • Алгоритм – это предписание исполнителю выполнить последовательность команд, приводящую от исходных данных к искомому результату.
Определение 2 • Алгоритм – это конечная последовательность указаний, адресованных исполнителю, четко и однозначно задающая процесс решения задач какого-либо типа во всех деталях и позволяющая получить за конечное число шагов результат, однозначно определяемый исходными данными.
Первый алгоритм • ЕВКЛИД (расцвет деятельности около 300 до н. э. ), также Эвклид, древнегреческий математик, известный прежде всего как автор «Начал» , самого знаменитого учебника в истории.
Происхождение слова «алгоритм» В IX веке жил Ал-Хорезми — сын зороастрийского жреца, прозванный за это ал-Маджуси (маг). Заведовал библиотекой «Дома мудрости» , изучал индийские и греческие знания. Ал-Хорезми написал книгу «Об индийском счёте» , способствовавшую популяризации позиционной системы во всём Халифате, вплоть до Испании. В XII веке эта книга переводится на латинский, от имени её автора происходит наше слово «алгоритм»
Верно ли, что… 1. 2. 3. 4. 5. 6. 7. Налить воду в чайник Открыть кран газовой горелки Поставить чайник на плиту Ждать, пока вода не закипит Поднести спичку к горелке Зажечь спичку Выключить газ
Верно, что… 1. 2. 3. 4. 5. 6. 7. Налить воду в чайник Поставить чайник на плиту Зажечь спичку Открыть кран газовой горелки Поднести спичку к горелке Ждать, пока вода не закипит Выключить газ
Свойства алгоритма 1. дискретность: Ход решения разбит на элементарные шаги - команды или инструкции, понятные исполнителю. 2. результативность: применение алгоритма обязательно приводит к конечному результату за конечное число шагов 3. массовость: может применяться многократно при различных исходных данных 4. детерминированность: выполнение команд в строго определенной последовательности 5. понятность: должен включать только команды, известные исполнителю (входящие в СКИ) 6. однозначность: при одинаковых исходных данных всегда выдает один и тот же результат 7. корректность: дает верное решение при любых допустимых исходных данных 8. интерактивность: Исходные данные для работы алгоритма задаются человеком в ходе его выполнения или вводятся из датчиков или других внешних устройств. 9. эффективность: При выполнении алгоритма должны использоваться ограниченные ресурсы компьютера (время, объём оперативной памяти и т. д. )
Является ли пример алгоритмом для вас? Почему? Вы вышли к доске, взяв мел в правую руку, вам сказали написать слово «информатика» на китайском языке.
Программа – это • алгоритм, записанный на каком-либо языке программирования • набор команд для компьютера Команда – это описание действий, которые должен выполнить компьютер. • откуда взять исходные данные? • что нужно с ними сделать? 13
Языки программирования • Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер) • Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера • для обучения: Бейсик, ЛОГО, Паскаль • профессиональные: Си, Фортран, Паскаль • для задач искусственного интеллекта: Пролог, ЛИСП • для Интернета: Java. Script, Java, Perl, PHP, ASP 14
Задача 1 Старик должен переправить на лодке через реку волка, козу и капусту. Лодка может выдержать только старика и одного “пассажира”. В каком порядке старик перевезет пассажиров? Не забудь, что волк может съесть козу, а коза – капусту. Найди 2 варианта решения
Решение Левый берег Способ действия Правый берег Исходное состояние Старик, Волк, Коза, Капуста 1 шаг Волк, Капуста → Старик, Коза 2 шаг Волк, Капуста ← Старик Коза 3 шаг Капуста → Старик, Волк Коза 4 шаг Капуста ← Старик, Коза Волк 5 шаг Коза → Старик, Капуста Волк 6 шаг Коза ← Старик Волк, Капуста → Старик, Коза Волк, Капуста 7 шаг Результат Старик, Волк, Коза, Капуста
Исполнитель алгоритма • Исполнитель алгоритма – это человек, животное или устройство способные выполнять определенный набор команд. • Набор команд – СКИ (Система Команд Исполнителя). • Алгоритм составляют с ориентацией на определенного исполнителя: …формального или неформального?
Задача 2 • Имеются 2 кувшина емкостью 3 и 8 л. Необходимо составить алгоритм, с помощью которого, пользуясь только этими двумя кувшинами, можно набрать 7 л. воды?
Задача № 3 • Выполните предложенные действия. 1. Задумайте целое число от 1 до 20. 2. Прибавьте к нему 2. 3. Результат умножьте на 2. 4. К полученному произведению прибавьте 3. 5. От суммы отнимите задуманное число. 6. К разности прибавьте 5. 7. От суммы отнимите задуманное число. 8. Сообщите ответ. Ответ: 12; мы выступали в роли формального исполнителя
Задача № 4 • Какому исполнителю под силу решить такую задачу: «Отгадай пословицу, обойдя поле ходом шахматного коня» ? 1 Н А Е 2 3 И Л Г 4 Ответ: Не игла шьёт, а руки Неформальный исполнитель Ш Ё 5 Т 6 Р 7 8 Ь И А К У A B C D E F G H
Задача № 5* Имеется Исполнитель алгоритма, который может передвигаться по числовой оси. Система команд Исполнителя алгоритма: 1. «Вперед N» 2. «Назад M» Переменные N и M могут принимать любые целые положительные значения. Известно, что Исполнитель алгоритма выполнил программу из 50 команд, в которой команд «Назад 2» на 12 больше, чем команд «Вперед 3» . Других команд в программе не было. Какой одной командой можно заменить эту программу, чтобы Исполнитель алгоритма оказался в той же точке, что и после выполнения программы?
Решение: 1. Найдем сколько было команд: пусть х – количество команд «Вперед» , тогда х+(х+12)=50; х=19; 19+12=31 – количество команд «Назад» 2. Будем вести отсчет от начала числовой оси: 19*3=57 – после выполнения «Вперед 3» 19 раз; 31*2=62 – после выполнения «Назад 2» 31 раз; 57 -62=-5 – оказался на отметке -5. 3. Все эти команды можно заменить одной – «Назад 5»
Задача № 6** Леонардо Пизанский, известный, как Фибоначчи, был первым из великих математиков Европы позднего Средневековья. Числовой ряд, который назван его именем, получился в результате решения задачи о кроликах, которую Фибоначчи изложил в своей «Книге Абака» (1202 год). Он выглядит так: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144… В этом ряду каждое следующее число, начиная с третьего, равно сумме двух предыдущих. Составьте словесный алгоритм проверки принадлежности введенного числа n ряду Фибоначчи.
Решение: 1. Ввести число N. 2. Установить значение первых трех чисел Фибоначчи: 1, 1, 2. 3. Пока введенное число N больше очередного числа Фибоначчи, взять два последних числа Фибоначчи и получить из них новое число Фибоначчи. 3. Если число Фибоначчи равно введенному N или было введено число N=1, значит, что было введено число Фибоначчи, в противном случае – введенное число не является числом Фибоначчи.
Способы записи алгоритмов • Словесный – на естественном языке; • На языке блок – схем; • На языке программирования. Блок-схема – это графическое изображение алгоритма в виде определенным образом связанных между собой нескольких типов блоков. Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ.
Блок- схемы алгоритмов.
Основные элементы блок-схемы
Основные алгоритмические конструкции. • Базовые структуры алгоритмов – это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий. К основным структурам относятся: • линейные • разветвляющиеся • циклические.
Линейный алгоритм • Линейный алгоритм – это набор команд, выполняемых последовательно во времени, друг за другом.
Задача № 1 Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника. Решение: • Входные данные: a, b, c. • Выходные данные: S, P. • Решение по формуле Герона Внимание!!! В знак "=" означает не математическое равенство, а операцию присваивания. Переменной, стоящей слева от оператора, присваивается значение, указанное справа. Причем это значение может быть уже определено или его необходимо вычислить с помощью выражения.
Задача № 2 • Придумайте текст задачи, воспользовавшись предложенным алгоритмом, назовите входные и выходные данные: Решение: Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка. Входные данные: R - радиус основания цилиндра, h - высота цилиндра, ρ- плотность материала слитка. Выходные данные: m - масса слитка, V - объем, S - площадь основания.
Алгоритмическая структура «ветвление» • Алгоритм, содержащий хотя бы одно условие, в результате которого обеспечивается переход на один из двух возможных шагов, называется разветвляющимся.
Задача № 3 • Кровяное давление у старшеклассников считается нормальным, если верхняя его граница H≤ 100, а нижняя h≥ 60 и H-h≥ 30. Составьте алгоритм, который в зависимости от измеренных значений H и h выдает одно из следующих значений: Да «нормальное» , «повышенное» , «пониженное» . нормальное Воспользуйтесь шаблоном. Начало H, h Да Да H-h≥ 30 h≥ 60 Нет H≤ 100 Нет пониженное не норма Результат Конец Нет повышенное
Задача № 4 • Заполните шаблон блоксхемы алгоритма исследования квадратного уравнения ax²+bx+c=0 (a≠ 0) Начало a, b, c D=b²-4*a*c Да Корней нет D<0 Да Х= - b/2*a Х Нет D =0 Нет X 1= (- b+√D)/2*a X 2= (- b-√D)/2*a X 1, X 2 Конец
Задача № 5 • Какое значение получит переменная Z в результате выполнения следующего алгоритма? А) Х=1, Y=1 Б) X=1, Y=-1 Z=2 Z=0 X, Y Z: =0 Да Да Z: =1 В) X=-1, Y=1 Начало Y>0 X>0 Нет Z: =2 Z Конец
Поиск НОД двух чисел.
Первый алгоритм Как-то раз древнегреческого геометра Евклида спросили: - Что бы ты предпочел - два целых яблока или четыре половинки? - Конечно, четыре половинки. - А почему? Это ведь одно и то же. Отнюдь. Выбирая два целых яблока, как я узнаю, червивые они или нет? Алгоритм Евклида – это алгоритм нахождения НОД двух целых положительных чисел
Методы решения: Существуют различные методы нахождения НОД двух натуральных чисел: 1. Разложение на простые сомножители; 2. Алгоритм Евклида; 3. Целочисленное деление.
Разложение на простые множители • Порядок действий: 1. Разложить число m на простые множители. 2. Разложить число n на простые множители. 3. Выбрать все одинаковые множители чисел m и n. 4. Перемножить выбранные множители – полученное значение и будет НОД (m; n). НОД (5390; 2310) = = 2*5*7*11=770;
Рекурсивный метод – алгоритм Евклида В соответствии с этим методом НОД(m, n) вычисляется по следующему правилу: НОД(m, n) = НОД(m-n, n), если m>n, НОД(m, n-m), если n>m, m, если m=n. т. е. если d является НОД(m, n), то это же число d будет являться НОД меньшего числа из этой пары и их разности.
Блок схема алгоритма 1. Ввести натуральные M и N. 2. Если M≠N, то перейти к шагу 3, иначе перейти к шагу 8. 3. Если M>N, то перейти к шагу 4, иначе перейти к шагу 6. 4. Вычислить M=M-N. 5. Перейти к шагу 2. M=238 6. Вычислить N=N-M. N=544 7. Перейти к шагу 2. 8. Сообщить M. Применим алгоритм для нахождения НОД(238, 544) = НОД(238, 306) = =НОД(238, 68) = НОД(170, 68)= НОД(102, 68)= НОД(34, 34) = 34
Метод целочисленного деления • Первое число делим нацело на второе. Очевидно, что остаток целочисленного деления меньше второго числа. Если остаток равен нулю, то это значит, что первое число нацело делится на второе, и в этом случае второе число и будем считать НОД этих чисел. Если остаток не равен нулю, то заменим первое число на второе, а второе - на остаток, и будем повторять действия до тех пор, пока остаток не станет равным нулю.
Алгоритм Ввод M, N 1. Ввод натуральных чисел M, N. 2. Найдем R – остаток от деления M нацело на N. 3. Если R=0, то перейдем к шагу 6, иначе перейти к шагу 4. 4. Положим M: =N; N: =R. 5. Перейти к шагу 2. 6. Сообщить значение N. M=238 N=544 Вычислить R – остаток от деления M на N R=0 M: = N N: = R Вывод N
Пошаговое исполнение алгоритма • M: =238 • • N: =544 [238/544]=0 (ост. 238), заменяем: M: =544, N: =238 [544/238]=2 (ост. 68), заменяем: M: =238, N: =68 [238/68]=3 (ост. 34), заменяем: M: =68, N: =34 [68/34]=2 (ост. 0), закончили процесс деления. • НОД(238, 544)=34
Сравним количество операций M=238, N=544 Почти одинаковое количество операций? M=32000, N=2 Операции Метод 2 Метод 3 Операции замены 0 6 Операции сложения/вычитания 6 0 Операции умножения/деления 0 4 Операции сравнения 13 4 Операции Метод 2 Метод 3 Операции замены 0 2 Операции сложения/вычитания 15999 0 Операции умножения/деления 0 1 Операции сравнения 31999 1
Задание по группам: По словесным описаниям методов поиска наибольшего из трех чисел постройте их блок-схемы и напишите пошаговый алгоритм. • Метод 1: Даны три числа. Находим наибольшее из первых двух чисел, а затем сравниваем его с третьим числом. • Метод 2: Определяем, является ли первое число наибольшим; если нет, то находим наибольшее из второго и третьего чисел. • Метод 3: Попарно сравниваем все три числа, чтобы найти наибольшее.
Алгоритмическая структура «цикл»
Алгоритмические структуры Какие алгоритмические структуры изображены на рисунках? Вставьте пропущенные слова: 1. Алгоритм – это последовательность… 2. Алгоритм, в котором команды выполняются последовательно друг за другом, называется… 3. Алгоритмическая структура выполняющая выбор при истинности или ложности условия называется …
Задачи ГИА № 1. Какая алгоритмическая структура используется А. С. Пушкиным в следующих отрывках из его произведений? «Уж небо осенью дышало, «Приходите в половине двенадцатого. Ступайте Уж реже солнышко блистало, прямо на лестницу. Коли вы найдете кого в передней, то спросите, дома ли графиня. Вам Короче становился день, скажут нет, - делать нечего. Вы должны будете Лесов таинственная сень воротиться. Но, вероятно, вы не встретите С печальным шумом обнажалась…» никого… Из передней ступайте налево, идите все прямо до графининой спальни. В спальне за ширмами увидите двери: справа в кабинет; … слева в коридор, и тут же узенькая витая лестница, она ведет в мою комнату. »
Задачи ГИА № 2. На рисунке представлена блок-схема алгоритма. Какое значение будет иметь переменная Х после выполнения алгоритма при начальном значении переменных Y=5, Z=-3; Y=3, Z= 4. Начало Ввод Y, Z ДА НЕТ Y: =Y+Z Y<5 Y: =Y+Z Ответ: Y 1= -1; Y 2= 3. Конец Y: =Y-Z
Игра «Ежиные тропы»
Задачи ГИА № 3. К какому результату приведет исполнение представленного в виде блок-схемы алгоритма? Ответ: I= 12 ДА Сколько раз выполнится вывод текста в алгоритме? Вывод: Ответ: 6 раз Изменим условие: I: =I*2 Сколько раз выполнится вывод текста в алгоритме? «ПРИВЕТ!» » I: =I*2 I: =I+2 Начало I: =0 I<=10 НЕТ Вывод: I Конец Ответ: бесконечно. Произойдет "зацикливание" алгоритма, т. е. не будет выполняться основное свойство алгоритма — результативность.
Алгоритмическая структура «цикл» В алгоритмической структуре «цикл» серия команд (тело цикла) выполняется многократно. Такая последовательность команд называется «телом цикла» . Циклические алгоритмические структуры бывают двух типов: 1. Цикл со счетчиком, в котором тело цикла выполняется определенное количество раз; 2. Цикл с условием, в котором тело цикла выполняется пока истинно условие.
Задачи ГИА № 3. Какая алгоритмическая структура используется А. С. Пушкиным в следующих отрывках из его произведений? «Жил старик со своею старухой У самого синего моря; … Вот пошел он к синему морю; Видит, — море слегка разыгралось. Стал он кликать золотую рыбку, Приплыла к нему рыбка и спросила: «Чего тебе надобно, старче? » … Вот пошел он к синему морю, (Помутилося синее море. ) Стал он кликать золотую рыбку, Приплыла к нему рыбка, спросила: «Чего тебе надобно, старче? »
Самостоятельная работа Определите значение переменных X и Y после выполнения фрагмента алгоритма. I вариант Х=13; Y=20 II вариант Х=30; Y=20
Игра «Циклические ёжики»
1 урок алгоритм свойства.pptx