Неоднократно было сказано, что компьютер (процессор) ничего по сути не делает, кроме как обрабатывает данные. И действительно, всё, что находится между запуском программы и выводом информации на экран, - является обработкой информации. Завершением обработки информации будет, например, видимый результат. В этом приложении, которое вы читаете здесь и сейчас, итоговым результатом являются эти самые буковки на экране.
Так что же такое обработка данных и почему важно понимать этот процесс?
К обработке данных относят:
Пример получения новых данных на основе существующих - обычный результат обычного математического выражения. Сколько вам будет лет через два года? Посчитали? Так вот, существующие данные - это ваш возраст, новые, полученные данные, - новое число. Рассчитывается по формуле "ТекущийВозраст + 2".
Представьте строку: "1 августа, 25, 29, 23, 18, 2 августа 26, 31, 26, 21, 3 августа 24, 29, 23, 19". Вы что-нибудь поняли?
А как вам такое представление:
Мы только что преобразовали данные: взяли из строки имеющуюся информацию (дата, ряд температур) и переделали в табличную форму.
Оформление найденных в поисковике сайтов в виде списка по определённой форме также является результатом преобразования данных. А ведь поисковик вам мог показать всё в виде текстовой страницы, отделив каждый новый сайт от предыдущего запятой, как в первом примере про температуру августа (ужас!)
Например, запрос "языки программирования" мог выглядеть так:
Список языков программирования по категориям - Википедия,https://ru.wikipedia.org › wiki › Список_языков_программирования_по_... Приведён список языков программирования, сгруппированных по категориям. Некоторые языки попали в несколько категорий.
Язык программирования · Мультипарадигмальный язык ... · Pascal
Язык программирования — Википедия,
https://ru.wikipedia.org › wiki › Язык_программирования, Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор ...
Языки низкого и ... · Безопасные и ... · Компилируемые ... · Языки первого и ...
5 языков программирования, которые надо учить первыми ..., https://geekbrains.ru › posts › 5_top_first_langs, 24 июл. 2018 г. - Сегодня каждый, кто стремится попасть в IT, задается вопросом — какой язык программирования изучить? Все ищут универсальный ...
Какой язык программирования изучать в 2019 году | статьи ...
https://mkdev.me › kakoy-yazyk-programmirovaniya-izuchat-v-2019-godu, Перспективные языки программирования для изучения и разработки в 2019 году: Python, R, JavaScript, Java, Scala. Языки программирования для ...
Энциклопедия языков программирования: Языки ...
Но поисковик хороший. Он обрабатывает данные и преобразовывает их в наиболее удобную для нашего восприятия форму. Будьте как поисковик!
Поисковая система также занимается пересмотром и уточнением имеющихся данных. Как? В базах поисковиков находится огромное количество сайтов и материалов. По вашему запросу компьютеры поисковых систем проводят грандиозную работу. Они "отбрасывают" все не подходящие вашему запросу результаты, структурируют оставшееся и... смотрите предыдущий пункт - выводят на экран браузера в удобной для нас форме. Это и есть пересмотр имеющихся данных.
Уточнение данных происходит без нашего ведома. Поисковые машины, так называемые "пауки", - обновляют информацию о сайтах, регулярно сканируя их на предмет новой/изменившейся информации, - уточняют информацию.
Последовательность не может быть нарушена, иначе обработка данных не привёдет к нужному результату. |
ПРОГРАММА |
Любая компьютерная программа условно содержит в себе три блока:
Блоки являются, повторюсь, условными, служат лишь схемой программы. В книгах есть оглавления, названия глав, рисунки, - все эти элементы можно легко выделить. Но выделить блоки таким образом нельзя. Они больше логические, чем физические. При этом блоки могут чередоваться произвольным образом, повторяться, изменяться, дополняться, но каждый из них будет преследовать цель: либо сбор данных, либо обработка, либо вывод (на экран, на принтер, на сайт, в файл).
Проектируя алгоритм программы мы с вами обязательно должны следить за тем, чтобы у нас тем или иным образом присутствовали все три блока.
CS:GO - ПРИМЕР |
Рассмотрим небезызвестную и милую (пока они там вот это вот не начали улучшать!) игруху Counter-Strike: Global Offensive. Либо любой другой сетевой шутер. Разберёмся, где, как и какой блок работает, выделив их все:
Все три блока работают параллельно. То есть в течение секунды компьютер проверяет, нажаты ли какие-либо клавиши, перемещена ли мышь, в тот же самый момент получает данные из интернета, рассчитывает позиции других игроков, выстрелы, прыжки, ранения, и в то же самое время постоянно перерисовывает картинку на экране в зависимости от расположения игроков и их действий.
Ещё одна схема блоков:
|
Итак, в любой программе есть код, который отвечает за ввод данных: пусть это будет клавиатура или мышь, сеть или подключенный к компьютеру смартфон. Есть код, который обрабатывает эти данные, например, может отделить фотографии на смартфоне от аудио файлов. И, наконец, есть код, который выводит информацию - например, указанные фотографии сохраняет в память компьютера.
Мы с вами, разрабатывая игры, должны понимать - в нашей программе всегда должен быть код, который отвечает за получение информации. Всегда должен быть код, отвечающий за вывод. И всегда должен быть код, отвечающий за обработку информации.
Теперь, для простоты понимания, определим, какими терминами будем пользоваться и как будем выделять эти блоки на практике.
ТЕРМИНОЛОГИЯ |
Налив молока в воду, получим разведённое молоко. Быть может (я не химик и спросить не у кого) после определённых операций мы сможем отсепарировать воду от молока и вернуть их в первоначальное состояние.
Но в данный момент наша водно-молочная смесь состоит из молекул воды и молока, хаотично перемещающихся и образующих жидкость. А попробуйте объяснить трёхлетнему ребёнку это: молекулы, смешивание, всякие разные атомы, водороды, углероды и прочие ...-роды.
Этим странным сравнением хочу показать нелепость самой идеи - чётко выделить те или иные блоки. Проектировать блоки самостоятельно, а тем самым "узнавать" их в программе вы научитесь с практикой, практикой и только практикой. Каждый блок может состоять из разных операций - и ввод, и обработка, и вывод, но главное предназначение каждого блока определяет для себя, для своей внутренней логики, только программист.
Поэтому не станем отделять молоко от воды в две чётко структурированных жидкости, оставим как есть. Нам нужно время и опыт, чтобы начать чувствовать архитектуру и логику программы. На текущем этапе договоримся называть белое молоком, а прозрачное - водой.
|
В этом месте учебника заключим между нами договор: обязательно станем проектировать программы так, чтобы использовать в них как минимум по одной команде ввода, обработки и вывода. Причём будем стараться использовать их именно в такой последовательности.
Как вы думаете, сколько "блоков" присутствует в нашей уже написанной программе?
Ответ
Теперь, читая следующие материалы, обращайте внимание на основной смысл тех или иных команд. Что они делают? - спрашивайте себя. Вводят данные, отвечаете. Или, - выводят. Или - обрабатывают.
САМЫЙ ГЛАВНЫЙ БЛОК |
Самый главный блок - это... вжух! Нет такого. Все три блока взаимосвязаны и нужны. Докажем методом "от обратного".
Если бы в CS:GO не было блока ввода данных, то игра не стала бы реагировать на:
Если бы в CS:GO не было блока обработки данных, то игра повела бы себя так:
Если бы в CS:GO не было блока вывода данных, то получилось бы следующее:
Будем использовать все три блока: просто следить за тем, чтобы в нашу программу поступали данные, обрабатывались и выводились на экран. О пользователе не забываем. Монитор у него включен и он хочет что-то увидеть. |
Да, дорогие читатели, это важно. Иначе бы я не выделил эту мораль в целую главу!
За мной! Идём дальше!
© 2019-2024 Виктор Трофимов
|