SlideShare une entreprise Scribd logo
1  sur  69
Основы программирования
Что такое программирование?
Программирование — процесс создания
компьютерных программ.
Программирование основывается на
использовании языков программирования,
на которых записываются исходные тексты
программ.
Что такое язык программирования?
Язык программирования — формальный язык,
предназначенный для записи компьютерных
программ.
Что такое компьютерная
программа?
Компьютерная программа — набор инструкций
для выполнения на вычислительной технике
(компьютерах).
Как правило, программы могут быть представлены
в виде исходного кода и объектного
(бинарного) кода.
Языки программирования
• Низкого уровня или языки первого поколения
• Среднего уровня
• Высокого уровня
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 или
совокупность двоичных команд). Во время выполнения этого
процесса создается объектный файл, который и содержит
эквивалентную исходной программу на машинном языке.
Алгоритм
Алгоритм – определенная система правил,
сформулированная на ясном исполнителю языке,
которая имеет свой порядок,
точнее определяет процесс перехода от допустимых
исходных данных к некоторому последствию и
обладает свойствами массовости, конечности,
определенности, детерминированности.
План
Действия
Результат
«Сказал Алгоритми.
Воздадим должную хвалу Богу,
нашему вождю и защитнику»
Перевод работы «Арифметическая»
среднеазиатского ученого 8–9 вв.
Абу Абдуллах Мухаммеда ибн Мусса аль-Хорезми
На латинский язык
Алгоритмы в быту
• Правила
• Рецепты
• Инструкции
Свойства алгоритмов
Конечность(результативность).
Решение алгоритма представляет собой, что
за конечное, определенное число шагов
должен быть получен итог.
Дискретность.
Разбитие алгоритма на отдельные действия.
Массовость(универсальность).
Использование с разными исходными
данными.
Означает, что как-то раз составленный
алгоритм существует для решения подобных
задач с разными исходными данными.
Детерминированность
(определенность).
Свойство алгоритма, показывающее то, что
каждый шаг алгоритма строго определяется и
не может допускать иных толкований.
Т.е. cтрогое определение действия
Правильность.
Алгоритм считается верным, если его
выполнение дает верные результаты решения
поставленной задачи.
Формальность.
Свойство означающее, что какой угодно
исполняющий, который выполняет алгоритм
строго следует инструкции созданной
разработчиком алгоритма.
Типы алгоритмов
Линейный.
Или последовательный алгоритм, который
описывает действия, выполняющиеся
однократно в определенном порядке.
Циклический.
Характеристика действий, повторяющихся
заданное число раз или пока не будет
выполнено данное условие. Такой список
действий называют телом цикла. Почти все
процессы в окружающем нас мире существуют
на постоянном повторении одной и той же
последовательности каких-либо действий.
Разветвляющийся.
Алгоритм, имеющий несколько исходов, в
зависимости от условия выполняется либо
одна, либо другая последовательность
действий. Такой алгоритм подразделяется на
полную или неполную форму.
Вспомогательный.
Указав только его имя данный алгоритм можно
применять в любых других алгоритмах.
Покраска досок
Схема решения задачи
Идея решения Алгоритм Программа
Блок-схема
Блок-схема – графическое представление
алгоритма.
Она состоит из функциональных блоков,
которые выполняют различные назначения
Основные элементы
блок-схемы
• Начало алгоритма
• Конец алгоритма
• Ввод или вывод
данных
Начало
Конец
Ввод | вывод
• Выполнение
действия
(например c=a+b)
• Проверка
условия
(например a < b)
Действие
Условие
ДаНет
• Обособленная часть
кода. Код выполняется после
вызова его по имени
• Повторение ряда действий.
Количество повторений может
быть задано заранее или
зависеть от условия
выполнения цикла
Подпрограмма
Цикл
Тело цикла
Пословицы и
алгоритмы
Ученье – свет, а неученье – тьма
Конец
Начало
Ученье?
Да Нет
Свет Тьма
Семь раз отмерь, один отрежь
Начало
Меньше 7?
Да
Отрежь
Нет
Отмерь
Конец
Начало
Измерить остаток
Вернуть
результат
Конец
Создание проекта
Запустите Visual Studio
Нажмите «Создание проекта»
В выпадающем списке «Язык» выберите C++
В выпадающем списке «Тип проекта»
выберите Консоль
Из отфильтрованных результатов выберите
«Консольное приложение»
В открывшемся окне:
1. Введите название проекта
2. Выберите (при необходимости)
расположение, где будут хранится файлы
Вашего первого проекта
3. Нажмите кнопку «Создать»
У Вас откроется главное окно для работы с
проектом
Для сборки проекта в пункте меню «Сборка»
Выберите «Собрать решение»
Для запуска проекта в пункте меню «Отладка»
Выберите «Запуск без отладки»

Contenu connexe

Tendances

Programming Concepts
Programming ConceptsProgramming Concepts
Programming ConceptsMister_Lee
 
409bb948 9463-4d6b-b885-63955ea67f1e-210512195958
409bb948 9463-4d6b-b885-63955ea67f1e-210512195958409bb948 9463-4d6b-b885-63955ea67f1e-210512195958
409bb948 9463-4d6b-b885-63955ea67f1e-210512195958vavaxd
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2SBTech
 
Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...SBTech
 
языки программирования презетнация
языки программирования презетнацияязыки программирования презетнация
языки программирования презетнацияsonyadark
 
Эмин Р. "Языки Программирования"
Эмин Р. "Языки Программирования"Эмин Р. "Языки Программирования"
Эмин Р. "Языки Программирования"Emin Rahmanov
 
Язык программирования Pascal
Язык программирования PascalЯзык программирования Pascal
Язык программирования PascalSchool 242
 
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...IT Share
 
Программирование
ПрограммированиеПрограммирование
Программированиеalecsa
 
Технология OpenMP
Технология OpenMPТехнология OpenMP
Технология OpenMPTatyanazaxarova
 
Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEAAlexander Zastashkov
 
Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)Ayan_R
 
паттерны проектирования
паттерны проектированияпаттерны проектирования
паттерны проектированияAlex Mamonchik
 

Tendances (20)

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

Similaire à Programming history. Algorithm

Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in russuser0562f1
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++ssuser0562f1
 
Qasimli aysel 9 r2 klassifikasiya proqrammnoqo obespeceniya
Qasimli aysel 9 r2  klassifikasiya proqrammnoqo obespeceniyaQasimli aysel 9 r2  klassifikasiya proqrammnoqo obespeceniya
Qasimli aysel 9 r2 klassifikasiya proqrammnoqo obespeceniyaaysel9r2
 
Qasimli Aysel 9r2
Qasimli Aysel 9r2  Qasimli Aysel 9r2
Qasimli Aysel 9r2 aysel9r2
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 
Функции в языке программирования QBasic
Функции в языке программирования QBasicФункции в языке программирования QBasic
Функции в языке программирования QBasickvlar
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
Afandiyeva kamala yazik programmirovaniya pascal
Afandiyeva kamala yazik programmirovaniya pascalAfandiyeva kamala yazik programmirovaniya pascal
Afandiyeva kamala yazik programmirovaniya pascalkamala_afandiyeva_zahs
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
Scripting languages
Scripting languagesScripting languages
Scripting languagesLev Panov
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Андрей Вересов - .NET Reflection
Андрей Вересов - .NET ReflectionАндрей Вересов - .NET Reflection
Андрей Вересов - .NET ReflectionDataArt
 
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыryba4
 

Similaire à Programming history. Algorithm (20)

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

Plus de Ihor Porotikov

Debug with Visual Studio
Debug with Visual StudioDebug with Visual Studio
Debug with Visual StudioIhor Porotikov
 
scanf(). Операторы ветвления. Тернарный оператор. switch
scanf(). Операторы ветвления. Тернарный оператор. switchscanf(). Операторы ветвления. Тернарный оператор. switch
scanf(). Операторы ветвления. Тернарный оператор. switchIhor Porotikov
 
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияIhor Porotikov
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиIhor Porotikov
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
Algorithm and flowchartIhor Porotikov
 

Plus de Ihor Porotikov (9)

Arrays
ArraysArrays
Arrays
 
rand srand sum
rand srand sumrand srand sum
rand srand sum
 
Arrays
ArraysArrays
Arrays
 
Debug with Visual Studio
Debug with Visual StudioDebug with Visual Studio
Debug with Visual Studio
 
scanf(). Операторы ветвления. Тернарный оператор. switch
scanf(). Операторы ветвления. Тернарный оператор. switchscanf(). Операторы ветвления. Тернарный оператор. switch
scanf(). Операторы ветвления. Тернарный оператор. switch
 
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвления
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
 
Data types. Variables
Data types. VariablesData types. Variables
Data types. Variables
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
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 или совокупность двоичных команд). Во время выполнения этого процесса создается объектный файл, который и содержит эквивалентную исходной программу на машинном языке.
  • 26.
  • 27.
  • 29. Алгоритм – определенная система правил, сформулированная на ясном исполнителю языке, которая имеет свой порядок, точнее определяет процесс перехода от допустимых исходных данных к некоторому последствию и обладает свойствами массовости, конечности, определенности, детерминированности.
  • 31. «Сказал Алгоритми. Воздадим должную хвалу Богу, нашему вождю и защитнику» Перевод работы «Арифметическая» среднеазиатского ученого 8–9 вв. Абу Абдуллах Мухаммеда ибн Мусса аль-Хорезми На латинский язык
  • 32. Алгоритмы в быту • Правила • Рецепты • Инструкции
  • 34. Конечность(результативность). Решение алгоритма представляет собой, что за конечное, определенное число шагов должен быть получен итог.
  • 36. Массовость(универсальность). Использование с разными исходными данными. Означает, что как-то раз составленный алгоритм существует для решения подобных задач с разными исходными данными.
  • 37. Детерминированность (определенность). Свойство алгоритма, показывающее то, что каждый шаг алгоритма строго определяется и не может допускать иных толкований. Т.е. cтрогое определение действия
  • 38. Правильность. Алгоритм считается верным, если его выполнение дает верные результаты решения поставленной задачи.
  • 39. Формальность. Свойство означающее, что какой угодно исполняющий, который выполняет алгоритм строго следует инструкции созданной разработчиком алгоритма.
  • 41. Линейный. Или последовательный алгоритм, который описывает действия, выполняющиеся однократно в определенном порядке.
  • 42.
  • 43. Циклический. Характеристика действий, повторяющихся заданное число раз или пока не будет выполнено данное условие. Такой список действий называют телом цикла. Почти все процессы в окружающем нас мире существуют на постоянном повторении одной и той же последовательности каких-либо действий.
  • 44.
  • 45. Разветвляющийся. Алгоритм, имеющий несколько исходов, в зависимости от условия выполняется либо одна, либо другая последовательность действий. Такой алгоритм подразделяется на полную или неполную форму.
  • 46.
  • 47. Вспомогательный. Указав только его имя данный алгоритм можно применять в любых других алгоритмах.
  • 49. Схема решения задачи Идея решения Алгоритм Программа
  • 51. Блок-схема – графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения
  • 53. • Начало алгоритма • Конец алгоритма • Ввод или вывод данных Начало Конец Ввод | вывод
  • 54. • Выполнение действия (например c=a+b) • Проверка условия (например a < b) Действие Условие ДаНет
  • 55. • Обособленная часть кода. Код выполняется после вызова его по имени • Повторение ряда действий. Количество повторений может быть задано заранее или зависеть от условия выполнения цикла Подпрограмма Цикл Тело цикла
  • 57. Ученье – свет, а неученье – тьма Конец Начало Ученье? Да Нет Свет Тьма
  • 58. Семь раз отмерь, один отрежь Начало Меньше 7? Да Отрежь Нет Отмерь Конец Начало Измерить остаток Вернуть результат Конец
  • 62. В выпадающем списке «Язык» выберите C++
  • 63. В выпадающем списке «Тип проекта» выберите Консоль
  • 64. Из отфильтрованных результатов выберите «Консольное приложение»
  • 65. В открывшемся окне: 1. Введите название проекта 2. Выберите (при необходимости) расположение, где будут хранится файлы Вашего первого проекта 3. Нажмите кнопку «Создать»
  • 66.
  • 67. У Вас откроется главное окно для работы с проектом
  • 68. Для сборки проекта в пункте меню «Сборка» Выберите «Собрать решение»
  • 69. Для запуска проекта в пункте меню «Отладка» Выберите «Запуск без отладки»