'

Алгоритм, событие, или…

Понравилась презентация – покажи это...





Слайд 0

Алгоритм, событие, или…


Слайд 1

Алгоритмы в нашей жизни – моё утро 7-00 встать, умыться, принять душ; 7-10 включить микроволновку с завтраком, поставить чайник, выполнять зарядку; 7-30 приступить к завтраку; 7-50 начать одеваться; 8-10 выйти в школу. Рано уходя на работу, мама оставляла Вите чёткую инструкцию…


Слайд 2

Линейная программа – набор инструкций, последовательно выполняемый компьютером До 90 годов прошлого века линейная программа была единственным способом общения человека и компьютера. Но можно ли в ней предусмотреть все возникающие ситуации?


Слайд 3

Утро не задалось… Горячей воды не было, и Витя пять лишних минут решался принять душ. Чайник никак не хотел закипать. В 7-50 раздался звонок в дверь… Что делать?


Слайд 4

Конечно Витя знал, что делать, если в дверь звонит незнакомец. Это мрачное утро существенно улучшилось приездом его любимого дяди. Не так хорошо обстоят дела у компьютера. При возникновении ситуации, не предусмотренной в алгоритме он прерывает программу сообщением об ошибке, или, что гораздо хуже, обижается и «зависает».


Слайд 5

Знаменитый «синий экран смерти» – ваша программа не в порядке! Run time error at ff 55:6a c8 Process stop at ff 45:ca hh Press any key to reboot…


Слайд 6

Если бы Витя был компьютером. В этом случае дядя не попал бы к нему в гости, либо маме в её инструкции пришлось писать в каждой строке: Если звонок в дверь То Спросить «Кто там?» А как предусмотреть все события?


Слайд 7

События Правила, определяющие поведение человека представляют собой, в основном, не строгие инструкции, а описания реакций на какие – либо события. При звонке в дверь посмотри в глазок, спроси «кто там?».


Слайд 8

Например…


Слайд 9

В чём разница? Событийно – ориентированный подход к написанию инструкций позволяет делать их более гибкими. Исполнитель таких инструкций не связан необходимостью делать в данный момент строго определённое действие, а выполняет то, что требуется в сложившейся ситуации. Попробуй написать «утренние инструкции» с помощью событий.


Слайд 10

В компьютере. В последние годы компьютеры стали многопользовательскими и многозадачными. Количество и сложность устройств, управляемых компьютером увеличилась на порядок. Со всеми событиями, происходящими при работе за таким компьютером линейное программирование не справится. Поэтому появились событийно - ориентированные ОС (Windows) и системы разработки ПО (MS Visual Studio, Delphi).


Слайд 11

Сравните -


Слайд 12

Алгоритм умер? А вот это – самое распространённое заблуждение, возникающее при знакомстве с событийно - ориентированным программированием. Да, порядок исполнения программы не известен, а порядок описания событий не существен. Нельзя нарисовать и блок – схему такой программы. Но внутри реакции на событие – наш старый добрый знакомый – алгоритм!


Слайд 13

А можно ли по другому? Алгоритм спрятался в событие, и подобный подход позволяет давать более гибкие инструкции исполнителю – компьютеру или человеку. Но являются ли этот подход единственным? Ответ на этот вопрос Витя нашел в магазине!


Слайд 14

В магазине. «Пожалуйста, мне нужен батон за 7-80. Для этого подойдите к полкам, возьмите батон, принесите его к прилавку, примите оплату, выдайте мне сдачу и батон.» - сказал Витя продавцу. Видели бы вы глаза продавца! Конечно, Витя произнёс только первую фразу и задумался – а надо ли описывать исполнителю, что делать или достаточно описать только требуемый результат.


Слайд 15

Запросы. Программист указывает системе программирования, какой результат ему нужен, а она сама выполняет необходимые действия. Такой подход к написанию программы реализован в системах управления базами данных – программист описывает необходимые данные с помощью специального языка, а система сама выполняет действия по поставке этих данных программисту. Такие команды называются запросами.


Слайд 16

А почему это работает? Механизмы (или алгоритмы) сортировки и поиска данных разработаны и реализованы ещё в середине прошлого века. В современных СУБД эти алгоритмы спрятаны так далеко, что работа с ними происходит с помощью неалгоритмического языка запросов (SQL)!


Слайд 17

Итак… Мы убедились, что инструкции исполнителю можно формулировать по разному. Линейное, событийно – ориентированное программирование или язык запросов. В каком объёме надо программисту знать эти разделы? Ответ мы найдём на следующем шаге нашего исследования – социальном.


×

HTML:





Ссылка: