программирование
АЛГОРИТМИЗАЦИЯ
Алгоритмизация
результатов
Алгоритмизация
Алгоритмическое мышление
помогает формировать навыки:
Алгоритм должен давать строгую и четкую последовательность действий, поэтому для него
существенным является способ его задания. От исполнителя требуется лишь четкое выполнение каждого
действия, а не выяснения, для каких целей предназначается алгоритм.
Способы записи алгоритма
Последовательность
включения проектора
Способы записи алгоритма
На естественном языке – построчно, каждая команда – с новой строки
Способы записи алгоритма
Графическое представление – блок-схема
https://creately.com/
Способы записи алгоритма
Символьный способ
•Следование (линейная) . Предполагает последовательное выполнение команд сверху вниз. Если алгоритм
состоит только из структур следования, то он является линейным.
•Ветвление. Выполнение программы идет по одной из двух, нескольких или множества ветвей. Выбор ветви
зависит от условия на входе ветвления и поступивших сюда данных.
•Цикл. Предполагает возможность многократного повторения определенных действий. Количество повторений
зависит от условия цикла.
Пример
Следование (Линейный)
Составить блок-
Следование (линейный) алгоритм - это тип схему алгоритма решения
алгоритма, в котором последовательность задачи: вычислить площадь
действий не меняется в его процессе пожара в виде круга при
выполнения. заданном радиусе.
Линейная структура предполагает
последовательное выполнение действий, без
их повторения или пропуска некоторых
действий. Обычно программисты стремятся к
тому, чтобы алгоритм имел линейную
структуру.
Структура алгоритма
Пример
Ветвление if
Составить блок-
Это самый простой тип схему алгоритма решения
задачи: с датчика температуры
ветвления. Если результат
последовательно снимаются
вычисления выражения-условия два показания, осуществить
возвращает true (правда), то вывод только положительных
выполнение алгоритма идет по значений температур
ветке «Да», в которую включены
дополнительные выражения-
действия. Если условие
возвращает false (ложь), то
выполнение алгоритма идет по
ветке «нет», т.е продолжает
выполняться основная ветка
программы.
Структура алгоритма
Ветвление if-else
Ветвление if-elif-else
Цикл while
Пример
Цикл do Составить блок-
схему алгоритма решения
В этом цикле первый раз
задачи: вычислить площадь
условие проверяется пожара в виде круга при 10
лишь после выполнения значениях радиуса
действий тела цикла.
Если условие возвращает
true, то выражения-
действия повторяются
снова. Каким бы ни было
условие, тело данного
цикла хотя бы раз, но
выполнится.
Структура алгоритма
Цикл for
Примерами логических алгоритмов могут служить алгоритм поиска пути в лабиринте, игровые
алгоритмы, алгоритм переключения светофора и т. д. Моделью логических вычис-лений
являются ассоциативные исчисления.
Логический алгоритм
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается
определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что
позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы
— компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть
записан на понятном ему языке. И здесь на первый план выдвигается необходимость точной записи
команд, не оставляющей места для произвольного толкования их исполнителем.
Следовательно, язык для записи алгоритмов должен быть формализован.
Такой язык принято называть языком программирования, а запись алгоритма на этом языке
— программой для компьютера.
Программирование
Языки программирования
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для
каждого есть своя область применения.
Любой алгоритм – это последовательность предписаний, выполнив которые можно за конечное число шагов
перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно
определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
плюсы минусы
Язык ассемблера — это позволяет программисту: чтобы
машинно-зависимый язык
• пользоваться текстовыми мнемоническими (то есть написать
низкого уровня, в котором
короткие мнемонические имена
легко запоминаемыми человеком) кодами; программу на
соответствуют отдельным • по своему усмотрению присваивать символические языке
машинным командам. имена регистрам компьютера и памяти; ассемблера
Используется для представления • задавать удобные для себя способы адресации; для
в удобочитаемой форме • использовать различные системы счисления конкретного
программ, записанных в (например, десятичную или шестнадцатеричную) для компьютера,
машинном коде. представления числовых констант; важно знать
• использовать в программе комментарии и др. его
архитектуру
Языки программирования
Языки высокого уровня
плюсы минусы
Языки высокого уровня были
• алфавит алгоритмического языка значительно шире алфавита Несмотря на то, что
разработаны для того, чтобы большинство
машинного языка, что существенно повышает наглядность текста
освободить программиста от программы; специалистов в
учета технических особенностей области программного
• набор операций, допустимых для использования, не зависит от обеспечения
конкретных компьютеров, их набора машинных операций, а выбирается из соображений удобства разрабатывают
архитектуры. формулирования алгоритмов решения задач определенного класса; программы на языках
Таким образом, алгоритмические • формат предложений достаточно гибок и удобен для использования, высокого уровня,
что позволяет с помощью одного предложения задать достаточно таких, как Object Pascal
языки в значительной мере или C, наиболее
содержательный этап обработки данных;
являются машинно- мощное и
• требуемые операции задаются с помощью общепринятых эффективное
независимыми. Они облегчают математических обозначений; программное
работу программиста и • данным в алгоритмических языках присваиваются индивидуальные обеспечение
повышают надежность имена, выбираемые программистом; полностью или
создаваемых программ. • в языке может быть предусмотрен значительно более широкий набор частично написано на
языке ассемблера.
типов данных по сравнению с набором машинных типов данных.
Программирование
1950 г. - Ассемблер
Первые языки
программирования
Середина 50-х под руководством Джона Бэкуса для фирмы IBM был
разработан алгоритмический язык программирования FORTRAN.
Первые языки
программирования
В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67
Первые языки
программирования
Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и
Кеном Томпсоном.
Первые языки
программирования
Инструмент для создания кроссплатформенных
приложений
• Настольные приложения
• Веб-приложения
• Мобильные приложения
Языки WEB-
программирования
Fortran Python
Pascal Java
C PHP
C++ JavaScript
Objective-C
Применение языков
программирования
По данным TechRepublic:
• К 2025 г. инвестиции в отрасль машинного
обучения превысят 235 миллиардов долларов.
• К концу 2018 года количество специалистов,
работающих в данной сфере, удвоилось, по
сравнению с предыдущим периодом.
Языки программирования в России
Самые известные программисты мира
математик из Великобритании Ада Джон фон Нейман, венгеро-американский математик Компьютерный специалист Деннис Ритчи известен по
Лавлейс (1815-1852), дочь Байрона, сделал важный вклад во многие отрасли науки, участию в создании языков программирования BCPL, B,
считающаяся создательницей первой такие как: квантовая физика, функциональный C, расширения ALTRAN для языка программирования
в мире программы и описания анализ и информатика. С именем фон Неймана FORTRAN. Языки C и FORTRAN получили широкую
вычислительной машины. Сам связывают архитектуру большинства современных популярность в прикладных задачах, также на базе
проект в конечном итоге был компьютеров, подразумевающую совместное языка C были разработаны многие более поздние языки
разработан британским математиком хранение программ и данных для них в памяти программирования. Также, Ритчи участвовал в
Чарльзом Бэббиджем. вычислительной машины. разработке операционных систем Multics и UNIX.
Самые известные программисты мира
Бьёрн Страуструп — автор языка программирования C++ — Основателем движения свободного Алексей Пажитнов — советский программист
одного из самых широко используемых языков ПО, проекта GNU (General Public и изобретатель всемирно известной и
программирования, разработанного на базе C. Страуструп любимой всеми игры "Тетрис". С 1996 по
License), основанного в 1983-м году, а
стал первопроходцем в области использования объектно-
также фонда свободных программ и 2005 год Пажитнов работал в компании
ориентированного программирования, которое позволяет
создавать масштабные проекты за короткое время, Лиги за свободу программирования Microsoft, где занимался разработкой
распределяя задачи между участниками и используя ранее стал американец Ричард Столлман. головоломок Pandora's Box. В 2007 и в 2009
разработанные решения. На базе C++ разработано В числе его изобретений числится годах был удостоен награды Game
несколько современных языков программирования. также концепция "копилефта". Developers Choice Awards First Penguin Award.
Самые известные программисты мира
В ряду с известными программистами и хакерами — Соучредитель компании Apple, разработчик Один из богатейших людей планеты,
Линус Торвальдс. Линус создал Linux — ядро компьютеров американец Стив Возняк по праву изобретатель, программист и бизнесмен Билл
операционной системы GNU/Linux, являющейся на считается одним из отцов революции Гейтс навсегда вошел в историю компьютерных
данный момент самой распространённой из свободных персональных компьютеров в 1970-х гг. Возняк технологий как основатель и крупнейший
операционных систем. основал Apple Computer вместе со Стивом акционер компании Microsoft. В тринадцать лет
На ядре Linux построена операционная система Джобсом в 1976 году и разрабатывал для Билл написал свою первую программу – игру
Android, являющаяся самой распространенной ОС для первых компьютеров как программную, так и «Крестики-нолики» на языке программирования
смартфонов в мире. аппаратную часть. BASIC.
Самые известные программисты мира
Евгений Касперский — российский программист, В 2013 году не стало одного из Человек 2010 года по версии журнала Time, самый молодой
специалист по информационной безопасности, сооснователей поисковой компании миллиардер Марк Цукерберг — создатель всемирно известной
один из основателей, ведущий разработчик и "Яндекс" Ильи Сегаловича. Российский и крайне популярной социальной сети Facebook. В школьные
крупнейший акционер ЗАО "Лаборатория программист, директор по технологиям и годы Марк разработал сетевую версию игры "Риск". Отвергнув
Касперского". Также является лауреатом разработкам, а также активный участник и предложения о трудоустройстве со стороны AOL и Microsoft,
государственной премии в области науки и организатор помощи сиротам и больным совместно с Крисом Хьюзом и Дастином Московицем начал
технологий за 2008 год. детям скончался 23 июля 2013 года. работу над крупнейшей социальной сетью в мире.
Самые известные программисты мира
Сооснователь социальной сети "Вконтакте" Игорь Данилов — российский В 1992 г. Борис Нуралиев вместе с братом —
Павел Дуров еще в период учёбы в СПбГУ программист, автор популярного Сергеем Нуралиевым, создали бухгалтерскую
занимался разработкой некоммерческих программу "1С". В 1996 году возглавляемая им
антивируса Dr.Web, технический
Интернет-проектов, предназначенных для компания выпустила систему "1С:Предприятие",
повышения качества общественной и научной директор и основатель компании начала заниматься разработкой компьютерных
жизни университета. Проект "Вконтакте" — "Доктор Веб". игр. В 2005 году компания "1С" вошла в тройку
также его собственная работа. лидеров российского рынка интегрированных
систем управления предприятиями.
Праздники