Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемВсеволод Ронин
1 Алгоритм, событие, или…
2 Алгоритмы в нашей жизни – моё утро 7-00 встать, умыться, принять душ; 7-10 включить микроволновку с завтраком, поставить чайник, выполнять зарядку; 7-30 приступить к завтраку; 7-50 начать одеваться; 8-10 выйти в школу. Рано уходя на работу, мама оставляла Вите чёткую инструкцию…
3 Линейная программа – набор инструкций, последовательно выполняемый компьютером До 90 годов прошлого века линейная программа была единственным способом общения человека и компьютера. Но можно ли в ней предусмотреть все возникающие ситуации?
4 Утро не задалось… Горячей воды не было, и Витя пять лишних минут решался принять душ. Чайник никак не хотел закипать. В 7-50 раздался звонок в дверь…
5 Конечно Витя знал, что делать, если в дверь звонит незнакомец. Это мрачное утро существенно улучшилось приездом его любимого дяди. Не так хорошо обстоят дела у компьютера. При возникновении ситуации, не предусмотренной в алгоритме он прерывает программу сообщением об ошибке, или, что гораздо хуже, обижается и «зависает».
6 Знаменитый «синий экран смерти» – ваша программа не в порядке! Run time error at ff 55:6a c8 Process stop at ff 45:ca hh Press any key to reboot…
7 Если бы Витя был компьютером. В этом случае дядя не попал бы к нему в гости, либо маме в её инструкции пришлось писать в каждой строке: Если звонок в дверь То Спросить «Кто там?» А как предусмотреть все события?
8 События Правила, определяющие поведение человека представляют собой, в основном, не строгие инструкции, а описания реакций на какие – либо события. При звонке в дверь посмотри в глазок, спроси «кто там?».
9 Например… СитуацияСобытиеРеакция Директор – секретарю: Если позвонят из министерства, я уже выехал. Звонок из министерства. Сообщение о выезде. Сотрудник – сотруднику: Когда освободитесь, загляните ко мне, пообщаемся. Завершение текущей работы. Загляните ко мне. Инструкция в автобусе: При аварии разбить стекло молотком. Авария.Разбить стекло молотком. Жена – мужу: Пойдёшь домой, не забудь хлеба купить! Возвращение домой. Покупка хлеба.
10 В чём разница? Событийно – ориентированный подход к написанию инструкций позволяет делать их более гибкими. Исполнитель таких инструкций не связан необходимостью делать в данный момент строго определённое действие, а выполняет то, что требуется в сложившейся ситуации. Попробуй написать «утренние инструкции» с помощью событий.
11 В компьютере. В последние годы компьютеры стали многопользовательскими и многозадачными. Количество и сложность устройств, управляемых компьютером увеличилась на порядок. Со всеми событиями, происходящими при работе за таким компьютером линейное программирование не справится. Поэтому появились событийно - ориентированные ОС (Windows) и системы разработки ПО (MS Visual Studio, Delphi).
12 Сравните - Линейная программаСобытийно – ориентированная программа Вид Инструкция1 Инструкция2 Инструкция3 … Событие1 Описание реакции Событие2 Описание реакции …. Порядок выполнения Строго сверху вниз от первой инструкции к последней Неизвестен, зависит от наступления событий. Исключительн ая ситуация Завершение работы или «зависание» Обработка, если это предусмотрено разработчиком, или игнорирование. Запуск другой программы Невозможен, пока идёт выполнение алгоритма А почему бы и нет?
13 Алгоритм умер? А вот это – самое распространённое заблуждение, возникающее при знакомстве с событийно - ориентированным программированием. Да, порядок исполнения программы не известен, а порядок описания событий не существен. Нельзя нарисовать и блок – схему такой программы. Но внутри реакции на событие – наш старый добрый знакомый – алгоритм!
14 А можно ли по другому? Алгоритм спрятался в событие, и подобный подход позволяет давать более гибкие инструкции исполнителю – компьютеру или человеку. Но являются ли этот подход единственным? Ответ на этот вопрос Витя нашел в магазине!
15 В магазине. «Пожалуйста, мне нужен батон за Для этого подойдите к полкам, возьмите батон, принесите его к прилавку, примите оплату, выдайте мне сдачу и батон.» - сказал Витя продавцу. Видели бы вы глаза продавца! Конечно, Витя произнёс только первую фразу и задумался – а надо ли описывать исполнителю, что делать или достаточно описать только требуемый результат.
16 Запросы. Программист указывает системе программирования, какой результат ему нужен, а она сама выполняет необходимые действия. Такой подход к написанию программы реализован в системах управления базами данных – программист описывает необходимые данные с помощью специального языка, а система сама выполняет действия по поставке этих данных программисту. Такие команды называются запросами.
17 А почему это работает? Механизмы (или алгоритмы) сортировки и поиска данных разработаны и реализованы ещё в середине прошлого века. В современных СУБД эти алгоритмы спрятаны так далеко, что работа с ними происходит с помощью неалгоритмического языка запросов (SQL)!
18 Итак… Мы убедились, что инструкции исполнителю можно формулировать по разному. Линейное, событийно – ориентированное программирование или язык запросов. В каком объёме надо программисту знать эти разделы? Ответ мы найдём на следующем шаге нашего исследования – социальном.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.