![Скачать презентацию Алгоритм событие или выполнена учениками 10 — Скачать презентацию Алгоритм событие или выполнена учениками 10 —](https://present5.com/wp-content/plugins/kama-clic-counter/icons/ppt.jpg)
350992d384a5815ca826b59533b9d8b0.ppt
- Количество слайдов: 18
Алгоритм, событие, или… Презентация выполнена учениками 10 - го класса Киссуриным Юрием и Рыковым Виктором
Алгоритмы в нашей жизни – моё утро Рано уходя на работу, мама оставляла Вите чёткую инструкцию… • 7 -00 встать, умыться, принять душ; • 7 -10 включить микроволновку с завтраком, поставить чайник, выполнять зарядку; • 7 -30 приступить к завтраку; • 7 -50 начать одеваться; • 8 -10 выйти в школу.
Линейная программа – набор инструкций, последовательно выполняемый компьютером До 90 годов прошлого века линейная программа была единственным способом общения человека и компьютера. Но можно ли в ней предусмотреть все возникающие ситуации?
Утро не задалось… • Горячей воды не было, и Витя пять лишних минут решался принять душ. • Чайник никак не хотел закипать. • В 7 -50 раздался звонок в дверь…
• Конечно Витя знал, что делать, если в дверь звонит незнакомец. Это мрачное утро существенно улучшилось приездом его любимого дяди. • Не так хорошо обстоят дела у компьютера. При возникновении ситуации, не предусмотренной в алгоритме он прерывает программу сообщением об ошибке, или, что гораздо хуже, обижается и «зависает» .
Знаменитый «синий экран смерти» – ваша программа не в порядке! Run time error at ff 55: 6 a c 8 Process stop at ff 45: ca hh Press any key to reboot…
Если бы Витя был компьютером. • В этом случае дядя не попал бы к нему в гости, либо маме в её инструкции пришлось писать в каждой строке: Если звонок в дверь То Спросить «Кто там? » А как предусмотреть все события?
События • Правила, определяющие поведение человека представляют собой, в основном, не строгие инструкции, а описания реакций на какие – либо события. При звонке в дверь посмотри в глазок, спроси «кто там? » .
Например… Ситуация Событие Реакция Директор – секретарю: Если позвонят из министерства, я уже выехал. Звонок из министерства. Сообщение о выезде. Сотрудник – сотруднику: Когда освободитесь, загляните ко мне, пообщаемся. Завершение текущей работы. Загляните ко мне. Инструкция в автобусе: При аварии разбить стекло молотком. Авария. Разбить стекло молотком. Жена – мужу: Пойдёшь домой, не забудь хлеба купить! Возвращение домой. Покупка хлеба.
В чём разница? • Событийно – ориентированный подход к написанию инструкций позволяет делать их более гибкими. Исполнитель таких инструкций не связан необходимостью делать в данный момент строго определённое действие, а выполняет то, что требуется в сложившейся ситуации. Попробуй написать «утренние инструкции» с помощью событий.
В компьютере. В последние годы компьютеры стали многопользовательскими и многозадачными. Количество и сложность устройств, управляемых компьютером увеличилась на порядок. Со всеми событиями, происходящими при работе за таким компьютером линейное программирование не справится. Поэтому появились событийно - ориентированные ОС (Windows) и системы разработки ПО (MS Visual Studio, Delphi).
Сравните Линейная программа Событийно – ориентированная программа Вид Инструкция 1 Инструкция 2 Инструкция 3 … Событие 1 Описание реакции Событие 2 Описание реакции …. Порядок выполнения Строго сверху вниз от первой инструкции к последней Неизвестен, зависит от наступления событий. Исключительн Завершение работы ая ситуация или «зависание» Обработка, если это предусмотрено разработчиком, или игнорирование. Запуск другой программы А почему бы и нет? Невозможен, пока идёт выполнение алгоритма
Алгоритм умер? А вот это – самое распространённое заблуждение, возникающее при знакомстве с событийно - ориентированным программированием. Да, порядок исполнения программы не известен, а порядок описания событий не существен. Нельзя нарисовать и блок – схему такой программы. Но внутри реакции на событие – наш старый добрый знакомый – алгоритм!
А можно ли по другому? • Алгоритм спрятался в событие, и подобный подход позволяет давать более гибкие инструкции исполнителю – компьютеру или человеку. Но являются ли этот подход единственным? • Ответ на этот вопрос Витя нашел в магазине!
В магазине. «Пожалуйста, мне нужен батон за 7 -80. Для этого подойдите к полкам, возьмите батон, принесите его к прилавку, примите оплату, выдайте мне сдачу и батон. » сказал Витя продавцу. Видели бы вы глаза продавца! Конечно, Витя произнёс только первую фразу и задумался – а надо ли описывать исполнителю, что делать или достаточно описать только требуемый результат.
Запросы. Программист указывает системе программирования, какой результат ему нужен, а она сама выполняет необходимые действия. Такой подход к написанию программы реализован в системах управления базами данных – программист описывает необходимые данные с помощью специального языка, а система сама выполняет действия по поставке этих данных программисту. Такие команды называются запросами.
А почему это работает? Механизмы (или алгоритмы) сортировки и поиска данных разработаны и реализованы ещё в середине прошлого века. В современных СУБД эти алгоритмы спрятаны так далеко, что работа с ними происходит с помощью неалгоритмического языка запросов (SQL)!
Итак… Мы убедились, что инструкции исполнителю можно формулировать по разному. Линейное, событийно – ориентированное программирование или язык запросов. В каком объёме надо программисту знать эти разделы? Ответ мы найдём на следующем шаге нашего исследования – социальном.
350992d384a5815ca826b59533b9d8b0.ppt