2.99M
Категория: ПрограммированиеПрограммирование

П4. Программирование. Алгоритмы (3)

1.

Программирование.
Алгоритмы

2.

Программирование
Программирование представляет собой многогранную дисциплину, которая
выходит далеко за рамки простого набора символов и команд. Его можно
рассматривать как процесс создания инструкций для компьютера,
направленный на решение конкретной задачи.
Программи́рование — процесс создания и модификации компьютерных
программ

3.

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

4.

Алгоритм и программа
Алгоритм принадлежит к области математики и теории вычислений, где его
корректность, эффективность и другие свойства могут быть изучены без
привязки к конкретному оборудованию. Программа же - это инженерное
решение, которое должно работать в реальном мире, учитывая особенности
выбранного языка, компилятора или интерпретатора.

5.

Языки
программирования и
управление
компьютером

6.

Роль операционной системы (ОС)
Для того чтобы программы могли взаимодействовать с аппаратным
обеспечением, необходим посредник. Эту роль выполняет операционная
система (ОС)
Основная задача ОС - абстрагировать сложность аппаратного обеспечения
от программиста, позволяя ему фокусироваться на логике, а не на «железе»

7.

Роль операционной системы (ОС)
Например, когда программа запрашивает сохранение файла, она не должна
знать, как именно происходит физическая запись на диск, как работает
жесткий диск или какой драйвер нужно использовать. Она просто делает
вызов к ОС, которая уже управляет драйверами и файловой системой.
Эта абстракция позволяет разработчикам создавать универсальные
программы, которые могут работать на разных компьютерах без
необходимости переписывать код под каждое новое устройство.

8.

Ключевые функции ОС
Управление процессами и потоками: ОС координирует работу процессов и
запущенных приложений. Она отвечает за их запуск, приостановку,
завершение и координацию, чтобы избежать конфликтов и обеспечить
параллельное выполнение.

9.

Ключевые функции ОС
Управление памятью: ОС выделяет оперативную память (RAM) программам
и процессам, предотвращая конфликты и сбои. Когда программа
завершается, ОС освобождает занятую ею память, делая её доступной для
других приложений.

10.

Ключевые функции ОС
Управление устройствами и драйверами: ОС контролирует подключенные
аппаратные устройства (клавиатура, мышь, принтер и т.д.) с помощью
специальных программ - драйверов. Драйверы обеспечивают корректное
взаимодействие между оборудованием и ОС.

11.

Ключевые функции ОС
Управление файловой системой: ОС позволяет хранить и управлять
данными на устройствах хранения, поддерживая операции с файлами и
директориями, а также определяя их организацию и доступ к ним.

12.

Уровни языков
программирования

13.

По близости к машинному коду
● Низкоуровневые языки
● Высокоуровневые языки

14.

Низкоуровневые языки
К ним относятся машинный код и язык ассемблера. Эти языки напрямую
работают с инструкциями процессора и адресами памяти. Код на таких
языках трудно писать и читать, но он выполняется максимально быстро и
эффективно.
Интересно, что язык C, хотя и считался высокоуровневым несколько
десятилетий назад, теперь рассматривается как язык с низкоуровневыми
особенностями, такими как ручное управление памятью
C, C++, Rust

15.

Высокоуровневые языки
К ним относятся Python, Java, JavaScript, C#, Ruby, Perl и другие. Их
синтаксис гораздо ближе к естественному языку, что делает их более
простыми и быстрыми в написании. Они используют абстракции и, как
правило, не требуют от программиста прямого управления памятью.

16.

TIOBE Index

17.

Компиляция и интерпретация
Чтобы код, написанный на высокоуровневом языке, был понят компьютером,
его необходимо преобразовать в машинный код. Это достигается двумя
основными способами: компиляцией и интерпретацией.

18.

Компиляция
Компиляция - это процесс, при котором компилятор преобразует весь
исходный код программы в исполняемый машинный код целиком, до её
запуска. В результате создается отдельный файл, который может быть
выполнен напрямую.

19.

Интерпретация
Интерпретация - это процесс, при котором интерпретатор выполняет код
построчно. Он читает одну инструкцию, переводит её в машинный код и
сразу же выполняет, а затем переходит к следующей.

20.

Характеристика
Компилятор
Интерпретатор
Подход
Преобразует всю
программу целиком в
машинный код перед
выполнением
Выполняет код построчно,
преобразуя и исполняя
каждую инструкцию по
отдельности
Время выполнения
Быстрое, так как код уже
скомпилирован
Медленнее, так как
перевод и выполнение
происходят одновременно
Отчет об ошибках
Генерирует полный список
ошибок после трансляции
всей программы
Прекращает работу при
первой найденной ошибке
Примеры языков
C, C++
Python, Ruby, JavaScript

21.

Парадигмы программирования
Помимо уровней, языки программирования можно классифицировать по
подходу к организации кода. Две основные парадигмы, которые лежат в
основе большинства современных языков, - это процедурное и объектноориентированное программирование.

22.

Процедурное программирование
Процедурное программирование основано на разделении кода на отдельные
процедуры, функции и подпрограммы, которые выполняют определенные
задачи. В этом подходе основной фокус делается на последовательности
выполняемых действий.
C, Pascal

23.

Объектно-ориентированное программирование (ООП)
Объектно-ориентированное программирование (ООП) организует код в виде
объектов, которые объединяют данные (атрибуты) и функциональность
(методы) в единый компонент. Эта парадигма базируется на концепции
классов и объектов.

24.

Глубинная причина перехода от процедурного к ООП - это вопрос
масштабирования и управления сложностью.
Утверждение о том, что процедурное программирование неизбежно ведет к
«спагетти-коду», является поверхностным; плохой код можно написать в
любой парадигме.
Однако в процедурном подходе, когда программа разрастается, данные
становятся «глобальными» и множество функций могут их изменять, что
может привести к непредсказуемым последствиям. Код становится трудно
отлаживать и поддерживать.

25.

Алгоритмы

26.

Алгоритм
Алгоритм - это ядро любой программы. Согласно формальному
определению, данному Д. Э. Кнутом, алгоритм - это конечный набор правил,
который определяет последовательность операций для решения
конкретного множества задач.

27.

Для того чтобы последовательность шагов
считалась алгоритмом, она должна обладать 7
важными чертами

28.

Дискретность – процесс решения задачи по алгоритму разбивается на отдельные,
дискретные шаги или действия, которые выполняются последовательно.
Определенность (детерминированность) – каждый шаг алгоритма должен быть четко и
недвусмысленно определен, чтобы не допускать произвольных толкований и приводить к
одному и тому же результату при одинаковых исходных данных.
Массовость (универсальность) – алгоритм должен быть применим к целому классу задач,
отличающихся только исходными данными, а не к одной конкретной задаче.
Результативность – после выполнения алгоритма должен быть получен конечный
результат.
Конечность (финитность) – алгоритм должен завершаться за конечное число шагов, а не
выполняться бесконечно.
Понятность – каждая команда алгоритма должна быть понятна исполнителю, чтобы он мог
ее выполнить.
Формальность – исполнителю не обязательно понимать смысл выполняемых действий; он
должен лишь точно выполнять заданные команды.

29.

Виды алгоритмов по структуре
Линейные: Действия выполняются последовательно, одно за другим, без
условий и повторений.
Разветвляющиеся: В зависимости от проверки определенного условия (ifelse блок), алгоритм выбирает один из нескольких возможных путей
выполнения.
Циклические: Определенная последовательность действий повторяется
(итеративно) до тех пор, пока не будет выполнено определенное условие.
Это реализуется с помощью циклов while или for.

30.

Способы записи алгоритмов
1. Словесный
2. Графический
3. Псевдокод
4. Программный

31.

32.

Установите правильную последовательность действий
для использования флешки
1. Вынуть флешку из разъема.
2. Проверить содержимое флешки на вирусы.
3. Вставить флешку в компьютер.
4. Остановить работу флешки.
5. Скачать нужный файл.

33.

Составьте алгоритм, как одеться по погоде.
English     Русский Правила