SlideShare a Scribd company logo
Основы программирования
Что такое программирование?
Программирование — процесс создания
компьютерных программ.
Программирование основывается на
использовании языков программирования,
на которых записываются исходные тексты
программ.
Что такое язык программирования?
Язык программирования — формальный язык,
предназначенный для записи компьютерных
программ.
Что такое компьютерная
программа?
Компьютерная программа — набор инструкций
для выполнения на вычислительной технике
(компьютерах).
Как правило, программы могут быть представлены
в виде исходного кода и объектного
(бинарного) кода.
Языки программирования
• Низкого уровня или языки первого поколения
• Среднего уровня
• Высокого уровня
A
B
CD
E
F
G
H I
J
K
L
M
N O
P
QR
S T
U
V
W
X
Y
Z
Языки низкого уровня
Полный контроль практически надо всем;
вы используете только то, что вам нужно.
Больший контроль над памятью;
вы можете сделать то, что практически невозможно
в других языках.
Позволит вам лучше понять,
что происходит за кулисами в высокоуровневых
языках и научит ценить абстракции.
Языки низкого уровня
Мотивирует думать об эффективности.
Мотивирует думать об архитектуре наперёд.
Языки низкого уровня
Дополнительный контроль означает
дополнительные сложности, которые могут сделать
вроде бы простые задачи более трудными в реализации.
Управлять памятью может быстро стать очень сложным.
Легко закопаться в синтаксисе и мелких деталях
вместо того, чтобы понимать концепцию и общую картину.
Требуется предварительная оптимизация.
Языки низкого уровня
Изменения в плохой архитектуре могут быть
болезненными. А хорошую архитектуру
тяжело придумать.
Относительно бедная стандартная библиотека означает,
что вы должны часто полагаться на третьих лиц
или изобретать колесо.
Необходимо часто вставлять вспомогательные куски кода,
что увеличивает время на разработку.
Языки низкого уровня
Assembler
Языки среднего уровня
Управлять памятью необязательно,
но при желании вы можете это делать самостоятельно.
Богатые стандартные библиотеки.
Компилируется в байт-код,
упрощающий взаимодействие с другими языками.
Языки среднего уровня
До сих пор нужно понимать, как устроена память
и как работает сборка мусора, но язык этому
обучению не способствует.
Многие абстракции мешают новичку в освоении
концепций, т.к. непонятно, почему они
созданы именно таким образом.
Байт-код требует установленной среды выполнения.
До сих пор нужно часто вставлять стандартные куски кода,
несмотря на наличие абстракций.
Языки среднего уровня
C, C++
Java, C#
Языки высокого уровня
Абстракции делают сложные задачи простыми.
В целом всё просто и интуитивно,
даже при внесении изменений.
Сравнительно большие стандартные библиотеки
означают, что то, что вы хотите сделать, скорее всего
уже реализовано и доступно.
Меньше вставок стандартного кода – синтаксис
значительно проще.
Языки высокого уровня
Надстройки для реализации абстракций
снижают производительность.
Архитектура может страдать, т.к. довольно просто
вносить изменения почти в любом месте вместо того,
чтобы вносить их там, где действительно нужно.
Из-за скрытых деталей сложно выяснять причины
возникновения проблем, когда они появляются.
Динамическая типизация усложняет поиск ошибок
без запуска кода.
Языки среднего уровня
C#, Delphi, Fortran,
JavaScript, LISP, Pascal,
PHP
Немного истории
В 1949 году в Филадельфии (США) под руководством
Джона Мочли создан «Краткий код» — первый примитивный
интерпретатор языка программирования.
В 1951 году в фирме Remington Rand американская
программистка Грейс Хоппер разработала первую
транслирующую программу.
Хоппер назвала ее компилятором
(compiler — компоновщик).
В 1957 году на 20-м этаже штаб-квартиры фирмы IBM на
Мэдисон-авеню в Нью-Йорке родился язык Фортран
(FORmula TRANslation — трансляция формул).
21 июня 1948 года в Манчестерском
университете(Великобритания) на машине «Марк-1»
выполнена первая в мире хранимая в памяти машины
программа — поиск наибольшего сомножителя заданного
числа.
В 1949 году под руководством Мориса Уилкса создан
компьютер «Эдсак». Морис Уилкс назвал мнемоническую
схему и библиотеку подпрограмм собирающей системой
(assembly system) — отсюда слово «ассемблер».
В 1963 году был создан язык программирования
Бейсик.Основателями языка стали Джон Кемени и Томас
Курт,сотрудники Дартмут Колледжа.
C 1958–1968 годы велись разработка и усовершенствование
языка программирования под названием Алгол, название
которого произошло от словосочетания «алгоритмический
язык» (algorithmic language).
В 1970 Никлаус Вирт, создал язык программирования,
название которому дал в честь французского физика и
математика Блеза Паскаля. Паскаль планировался Виртом,
как язык, обучающий процедурному программированию.
В 1972 году 31-летний специалист по системному
программированию из фирмы Bell Labs Деннис Ритчи
разработал язык программирования Си ( С ).
В начале 80-х годов в той же Веll Lаbоratory Бьерном
Страуструпом в результате дополнения и расширения языка
С был создан новый по сути язык, получивший название «С с
классами». В 1983 году это название было заменено на С++.
23 мая 1995 года компания Sun Microsystems выпустила
новый язык программирования под названием Oak. Язык был
разработан для программирования бытовой электроники. В
последствии Oak был переименован в язык Java
В 2000-2001 годах был принят и стандартизирован
новый язык программирования C# (си-шарп), специально
разработанный для платформы .NET.
Рейтинги языков программирования
TIOBE Index
The software quality company
IEEE Spectrum 2018
Зарплаты
Сколько готовы платить и
кого ищут работодатели
Компилятор,
Линковщик,
Интерпретатор
Интерпретатор - это программа, которая при разборе и
проверки написанного программного кода превращает его в
машинный код и выполняет его покомандно или все
полностью, при этом не создавая исходного файла.
Компилятор - это программа, которая выполняет проверку
корректности написанного программного кода и превращает
его в программу на машинном языке (Assembler или
совокупность двоичных команд). Во время выполнения этого
процесса создается объектный файл, который и содержит
эквивалентную исходной программу на машинном языке.
Programming history. Algorithm
Programming history. Algorithm
Алгоритм
Алгоритм – определенная система правил,
сформулированная на ясном исполнителю языке,
которая имеет свой порядок,
точнее определяет процесс перехода от допустимых
исходных данных к некоторому последствию и
обладает свойствами массовости, конечности,
определенности, детерминированности.
План
Действия
Результат
«Сказал Алгоритми.
Воздадим должную хвалу Богу,
нашему вождю и защитнику»
Перевод работы «Арифметическая»
среднеазиатского ученого 8–9 вв.
Абу Абдуллах Мухаммеда ибн Мусса аль-Хорезми
На латинский язык
Алгоритмы в быту
• Правила
• Рецепты
• Инструкции
Свойства алгоритмов
Конечность(результативность).
Решение алгоритма представляет собой, что
за конечное, определенное число шагов
должен быть получен итог.
Дискретность.
Разбитие алгоритма на отдельные действия.
Массовость(универсальность).
Использование с разными исходными
данными.
Означает, что как-то раз составленный
алгоритм существует для решения подобных
задач с разными исходными данными.
Детерминированность
(определенность).
Свойство алгоритма, показывающее то, что
каждый шаг алгоритма строго определяется и
не может допускать иных толкований.
Т.е. cтрогое определение действия
Правильность.
Алгоритм считается верным, если его
выполнение дает верные результаты решения
поставленной задачи.
Формальность.
Свойство означающее, что какой угодно
исполняющий, который выполняет алгоритм
строго следует инструкции созданной
разработчиком алгоритма.
Типы алгоритмов
Линейный.
Или последовательный алгоритм, который
описывает действия, выполняющиеся
однократно в определенном порядке.
Programming history. Algorithm
Циклический.
Характеристика действий, повторяющихся
заданное число раз или пока не будет
выполнено данное условие. Такой список
действий называют телом цикла. Почти все
процессы в окружающем нас мире существуют
на постоянном повторении одной и той же
последовательности каких-либо действий.
Programming history. Algorithm
Разветвляющийся.
Алгоритм, имеющий несколько исходов, в
зависимости от условия выполняется либо
одна, либо другая последовательность
действий. Такой алгоритм подразделяется на
полную или неполную форму.
Programming history. Algorithm
Вспомогательный.
Указав только его имя данный алгоритм можно
применять в любых других алгоритмах.
Покраска досок
Схема решения задачи
Идея решения Алгоритм Программа
Блок-схема
Блок-схема – графическое представление
алгоритма.
Она состоит из функциональных блоков,
которые выполняют различные назначения
Основные элементы
блок-схемы
• Начало алгоритма
• Конец алгоритма
• Ввод или вывод
данных
Начало
Конец
Ввод | вывод
• Выполнение
действия
(например c=a+b)
• Проверка
условия
(например a < b)
Действие
Условие
ДаНет
• Обособленная часть
кода. Код выполняется после
вызова его по имени
• Повторение ряда действий.
Количество повторений может
быть задано заранее или
зависеть от условия
выполнения цикла
Подпрограмма
Цикл
Тело цикла
Пословицы и
алгоритмы
Ученье – свет, а неученье – тьма
Конец
Начало
Ученье?
Да Нет
Свет Тьма
Семь раз отмерь, один отрежь
Начало
Меньше 7?
Да
Отрежь
Нет
Отмерь
Конец
Начало
Измерить остаток
Вернуть
результат
Конец
Создание проекта
Запустите Visual Studio
Нажмите «Создание проекта»
В выпадающем списке «Язык» выберите C++
В выпадающем списке «Тип проекта»
выберите Консоль
Из отфильтрованных результатов выберите
«Консольное приложение»
В открывшемся окне:
1. Введите название проекта
2. Выберите (при необходимости)
расположение, где будут хранится файлы
Вашего первого проекта
3. Нажмите кнопку «Создать»
Programming history. Algorithm
У Вас откроется главное окно для работы с
проектом
Для сборки проекта в пункте меню «Сборка»
Выберите «Собрать решение»
Для запуска проекта в пункте меню «Отладка»
Выберите «Запуск без отладки»

More Related Content

PPTX
языки программирования
PPT
презентация языки программирования
PPTX
Языки программирования
PPT
Pascal+
PPTX
эволюция языков программирования
PPT
языки программирования
ODP
игровая логика, проблемы и решения
PPT
43828
языки программирования
презентация языки программирования
Языки программирования
Pascal+
эволюция языков программирования
языки программирования
игровая логика, проблемы и решения
43828

What's hot (20)

PDF
Programming Concepts
PPTX
409bb948 9463-4d6b-b885-63955ea67f1e-210512195958
PDF
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
PDF
терминология vol.2
PDF
Терминология как основной способ поиска разработчиков или как не опозорится п...
PPT
Генерация программы поведения игрового персонажа по естественно-языковой спец...
PPTX
языки программирования презетнация
PPTX
Эмин Р. "Языки Программирования"
PPS
Язык программирования Pascal
PPT
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
PPT
Интегрированная среда для языка Рефал
PPT
Программирование
PDF
Languages b6cc1c17
PPSX
378 васильев куницын
PDF
Технология OpenMP
PPTX
Custom Language Plugin for JetBrains IDEA
PPSX
ODT
TAP
PPTX
Ayan9r1 po(1)
PPTX
паттерны проектирования
Programming Concepts
409bb948 9463-4d6b-b885-63955ea67f1e-210512195958
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
терминология vol.2
Терминология как основной способ поиска разработчиков или как не опозорится п...
Генерация программы поведения игрового персонажа по естественно-языковой спец...
языки программирования презетнация
Эмин Р. "Языки Программирования"
Язык программирования Pascal
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
Интегрированная среда для языка Рефал
Программирование
Languages b6cc1c17
378 васильев куницын
Технология OpenMP
Custom Language Plugin for JetBrains IDEA
TAP
Ayan9r1 po(1)
паттерны проектирования
Ad

Similar to Programming history. Algorithm (20)

PDF
Algorithms and programming lecture in ru
PDF
Алгоритмизация и программирование С/С++
PPT
Qasimli aysel 9 r2 klassifikasiya proqrammnoqo obespeceniya
PPT
Qasimli Aysel 9r2
PDF
основы ооп на языке C#. часть 1. введение в программирование
PPT
Функции в языке программирования QBasic
PDF
C++ Базовый. Занятие 01.
PPT
Afandiyeva kamala yazik programmirovaniya pascal
PPTX
Net framework
DOCX
C++ теория
DOCX
C++ теория
DOCX
C++ теория
PPTX
Scripting languages
PPT
запахи кода
PDF
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
PDF
Step cpp0101
PDF
Компьютерная графика. Введение в Processing
PDF
Андрей Вересов - .NET Reflection
ODP
Выступление: инструменты и методы эффективной удалённой работы
Algorithms and programming lecture in ru
Алгоритмизация и программирование С/С++
Qasimli aysel 9 r2 klassifikasiya proqrammnoqo obespeceniya
Qasimli Aysel 9r2
основы ооп на языке C#. часть 1. введение в программирование
Функции в языке программирования QBasic
C++ Базовый. Занятие 01.
Afandiyeva kamala yazik programmirovaniya pascal
Net framework
C++ теория
C++ теория
C++ теория
Scripting languages
запахи кода
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Step cpp0101
Компьютерная графика. Введение в Processing
Андрей Вересов - .NET Reflection
Выступление: инструменты и методы эффективной удалённой работы
Ad

More from Ihor Porotikov (9)

PDF
PPSX
rand srand sum
PPSX
PPSX
Debug with Visual Studio
PPSX
scanf(). Операторы ветвления. Тернарный оператор. switch
PDF
Преобразования типов. Операторы ветвления
PDF
Типы данных (продолжение). Операторы. Стандартные библиотеки
PDF
Data types. Variables
PPTX
Algorithm and flowchart
rand srand sum
Debug with Visual Studio
scanf(). Операторы ветвления. Тернарный оператор. switch
Преобразования типов. Операторы ветвления
Типы данных (продолжение). Операторы. Стандартные библиотеки
Data types. Variables
Algorithm and flowchart

Programming history. Algorithm

  • 2. Что такое программирование? Программирование — процесс создания компьютерных программ. Программирование основывается на использовании языков программирования, на которых записываются исходные тексты программ.
  • 3. Что такое язык программирования? Язык программирования — формальный язык, предназначенный для записи компьютерных программ.
  • 4. Что такое компьютерная программа? Компьютерная программа — набор инструкций для выполнения на вычислительной технике (компьютерах). Как правило, программы могут быть представлены в виде исходного кода и объектного (бинарного) кода.
  • 5. Языки программирования • Низкого уровня или языки первого поколения • Среднего уровня • Высокого уровня A B CD E F G H I J K L M N O P QR S T U V W X Y Z
  • 6. Языки низкого уровня Полный контроль практически надо всем; вы используете только то, что вам нужно. Больший контроль над памятью; вы можете сделать то, что практически невозможно в других языках. Позволит вам лучше понять, что происходит за кулисами в высокоуровневых языках и научит ценить абстракции.
  • 7. Языки низкого уровня Мотивирует думать об эффективности. Мотивирует думать об архитектуре наперёд.
  • 8. Языки низкого уровня Дополнительный контроль означает дополнительные сложности, которые могут сделать вроде бы простые задачи более трудными в реализации. Управлять памятью может быстро стать очень сложным. Легко закопаться в синтаксисе и мелких деталях вместо того, чтобы понимать концепцию и общую картину. Требуется предварительная оптимизация.
  • 9. Языки низкого уровня Изменения в плохой архитектуре могут быть болезненными. А хорошую архитектуру тяжело придумать. Относительно бедная стандартная библиотека означает, что вы должны часто полагаться на третьих лиц или изобретать колесо. Необходимо часто вставлять вспомогательные куски кода, что увеличивает время на разработку.
  • 11. Языки среднего уровня Управлять памятью необязательно, но при желании вы можете это делать самостоятельно. Богатые стандартные библиотеки. Компилируется в байт-код, упрощающий взаимодействие с другими языками.
  • 12. Языки среднего уровня До сих пор нужно понимать, как устроена память и как работает сборка мусора, но язык этому обучению не способствует. Многие абстракции мешают новичку в освоении концепций, т.к. непонятно, почему они созданы именно таким образом. Байт-код требует установленной среды выполнения. До сих пор нужно часто вставлять стандартные куски кода, несмотря на наличие абстракций.
  • 14. Языки высокого уровня Абстракции делают сложные задачи простыми. В целом всё просто и интуитивно, даже при внесении изменений. Сравнительно большие стандартные библиотеки означают, что то, что вы хотите сделать, скорее всего уже реализовано и доступно. Меньше вставок стандартного кода – синтаксис значительно проще.
  • 15. Языки высокого уровня Надстройки для реализации абстракций снижают производительность. Архитектура может страдать, т.к. довольно просто вносить изменения почти в любом месте вместо того, чтобы вносить их там, где действительно нужно. Из-за скрытых деталей сложно выяснять причины возникновения проблем, когда они появляются. Динамическая типизация усложняет поиск ошибок без запуска кода.
  • 16. Языки среднего уровня C#, Delphi, Fortran, JavaScript, LISP, Pascal, PHP
  • 18. В 1949 году в Филадельфии (США) под руководством Джона Мочли создан «Краткий код» — первый примитивный интерпретатор языка программирования. В 1951 году в фирме Remington Rand американская программистка Грейс Хоппер разработала первую транслирующую программу. Хоппер назвала ее компилятором (compiler — компоновщик). В 1957 году на 20-м этаже штаб-квартиры фирмы IBM на Мэдисон-авеню в Нью-Йорке родился язык Фортран (FORmula TRANslation — трансляция формул).
  • 19. 21 июня 1948 года в Манчестерском университете(Великобритания) на машине «Марк-1» выполнена первая в мире хранимая в памяти машины программа — поиск наибольшего сомножителя заданного числа. В 1949 году под руководством Мориса Уилкса создан компьютер «Эдсак». Морис Уилкс назвал мнемоническую схему и библиотеку подпрограмм собирающей системой (assembly system) — отсюда слово «ассемблер».
  • 20. В 1963 году был создан язык программирования Бейсик.Основателями языка стали Джон Кемени и Томас Курт,сотрудники Дартмут Колледжа. C 1958–1968 годы велись разработка и усовершенствование языка программирования под названием Алгол, название которого произошло от словосочетания «алгоритмический язык» (algorithmic language). В 1970 Никлаус Вирт, создал язык программирования, название которому дал в честь французского физика и математика Блеза Паскаля. Паскаль планировался Виртом, как язык, обучающий процедурному программированию.
  • 21. В 1972 году 31-летний специалист по системному программированию из фирмы Bell Labs Деннис Ритчи разработал язык программирования Си ( С ). В начале 80-х годов в той же Веll Lаbоratory Бьерном Страуструпом в результате дополнения и расширения языка С был создан новый по сути язык, получивший название «С с классами». В 1983 году это название было заменено на С++. 23 мая 1995 года компания Sun Microsystems выпустила новый язык программирования под названием Oak. Язык был разработан для программирования бытовой электроники. В последствии Oak был переименован в язык Java
  • 22. В 2000-2001 годах был принят и стандартизирован новый язык программирования C# (си-шарп), специально разработанный для платформы .NET.
  • 23. Рейтинги языков программирования TIOBE Index The software quality company IEEE Spectrum 2018 Зарплаты Сколько готовы платить и кого ищут работодатели
  • 25. Интерпретатор - это программа, которая при разборе и проверки написанного программного кода превращает его в машинный код и выполняет его покомандно или все полностью, при этом не создавая исходного файла. Компилятор - это программа, которая выполняет проверку корректности написанного программного кода и превращает его в программу на машинном языке (Assembler или совокупность двоичных команд). Во время выполнения этого процесса создается объектный файл, который и содержит эквивалентную исходной программу на машинном языке.
  • 29. Алгоритм – определенная система правил, сформулированная на ясном исполнителю языке, которая имеет свой порядок, точнее определяет процесс перехода от допустимых исходных данных к некоторому последствию и обладает свойствами массовости, конечности, определенности, детерминированности.
  • 31. «Сказал Алгоритми. Воздадим должную хвалу Богу, нашему вождю и защитнику» Перевод работы «Арифметическая» среднеазиатского ученого 8–9 вв. Абу Абдуллах Мухаммеда ибн Мусса аль-Хорезми На латинский язык
  • 32. Алгоритмы в быту • Правила • Рецепты • Инструкции
  • 34. Конечность(результативность). Решение алгоритма представляет собой, что за конечное, определенное число шагов должен быть получен итог.
  • 36. Массовость(универсальность). Использование с разными исходными данными. Означает, что как-то раз составленный алгоритм существует для решения подобных задач с разными исходными данными.
  • 37. Детерминированность (определенность). Свойство алгоритма, показывающее то, что каждый шаг алгоритма строго определяется и не может допускать иных толкований. Т.е. cтрогое определение действия
  • 38. Правильность. Алгоритм считается верным, если его выполнение дает верные результаты решения поставленной задачи.
  • 39. Формальность. Свойство означающее, что какой угодно исполняющий, который выполняет алгоритм строго следует инструкции созданной разработчиком алгоритма.
  • 41. Линейный. Или последовательный алгоритм, который описывает действия, выполняющиеся однократно в определенном порядке.
  • 43. Циклический. Характеристика действий, повторяющихся заданное число раз или пока не будет выполнено данное условие. Такой список действий называют телом цикла. Почти все процессы в окружающем нас мире существуют на постоянном повторении одной и той же последовательности каких-либо действий.
  • 45. Разветвляющийся. Алгоритм, имеющий несколько исходов, в зависимости от условия выполняется либо одна, либо другая последовательность действий. Такой алгоритм подразделяется на полную или неполную форму.
  • 47. Вспомогательный. Указав только его имя данный алгоритм можно применять в любых других алгоритмах.
  • 49. Схема решения задачи Идея решения Алгоритм Программа
  • 51. Блок-схема – графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения
  • 53. • Начало алгоритма • Конец алгоритма • Ввод или вывод данных Начало Конец Ввод | вывод
  • 54. • Выполнение действия (например c=a+b) • Проверка условия (например a < b) Действие Условие ДаНет
  • 55. • Обособленная часть кода. Код выполняется после вызова его по имени • Повторение ряда действий. Количество повторений может быть задано заранее или зависеть от условия выполнения цикла Подпрограмма Цикл Тело цикла
  • 57. Ученье – свет, а неученье – тьма Конец Начало Ученье? Да Нет Свет Тьма
  • 58. Семь раз отмерь, один отрежь Начало Меньше 7? Да Отрежь Нет Отмерь Конец Начало Измерить остаток Вернуть результат Конец
  • 62. В выпадающем списке «Язык» выберите C++
  • 63. В выпадающем списке «Тип проекта» выберите Консоль
  • 64. Из отфильтрованных результатов выберите «Консольное приложение»
  • 65. В открывшемся окне: 1. Введите название проекта 2. Выберите (при необходимости) расположение, где будут хранится файлы Вашего первого проекта 3. Нажмите кнопку «Создать»
  • 67. У Вас откроется главное окно для работы с проектом
  • 68. Для сборки проекта в пункте меню «Сборка» Выберите «Собрать решение»
  • 69. Для запуска проекта в пункте меню «Отладка» Выберите «Запуск без отладки»