Основы алгоритмизации и программирования

Содержание

Слайд 2

Организационные моменты

Формат лекций
Формат экзамена
Бонусы:
- конспект
- посещения

Организационные моменты Формат лекций Формат экзамена Бонусы: - конспект - посещения

Слайд 3

О чем этот курс?

Общие сведения об алгоритмах
Основные элементы языка C++
Сложные типы данных

О чем этот курс? Общие сведения об алгоритмах Основные элементы языка C++
(массивы)
Распределения памяти, указатели
Функции
Алгоритмы поиска и сортировки
Работа со строками
Работа с файлами

Слайд 4

Литература

C++:
Шилдт Г. Теория и практика C++
Страуструп Б. Язык программирования C++: специальное издание
Алгоритмы:
Томас

Литература C++: Шилдт Г. Теория и практика C++ Страуструп Б. Язык программирования
Кормен и др. Алгоритмы. Построение и анализ
Роберт Седжвик. Алгоритмы на C++
Кнут, Д.Э. Искусство программирования

Слайд 5

Содержание лекции

Алгоритмы и их свойства
Способы записи алгоритмов
Базовые алгоритмические структуры
Величины в алгоритмах
Примеры

Содержание лекции Алгоритмы и их свойства Способы записи алгоритмов Базовые алгоритмические структуры Величины в алгоритмах Примеры

Слайд 6

Этапы решения задач на ЭВМ

Постановка задачи
Формализация (математическая постановка)
Выбор (или разработка) метода решения
Разработка

Этапы решения задач на ЭВМ Постановка задачи Формализация (математическая постановка) Выбор (или
алгоритма.
Составление программы
Отладка программы
Вычисление и обработка результатов.

Слайд 7

Постановка задачи

определить цель и категорию программы (системная, прикладная)
определить исходные данные и требуемый

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

Слайд 8

Формализация

все объекты задачи описываются на языке математики
выбираются математические абстракции, адекватно, то есть

Формализация все объекты задачи описываются на языке математики выбираются математические абстракции, адекватно,
с требуемой точностью и полнотой, представляющие исходные данные и результаты
выбирается форма хранения данных
составляются все необходимые формулы

Слайд 9

Выбор метода решения. Разработка алгоритма

анализ существующих методов решения поставленной задачи
разработка нового метода решения

Выбор метода решения. Разработка алгоритма анализ существующих методов решения поставленной задачи разработка
(при необходимости) или определение метода решения задачи – метод преобразования исходных данных в результат
при необходимости возможен возврат к предыдущему этапы для уточнения моделей данных

Слайд 10

Составление программы

преобразование алгоритма в код, написанным на языке программирования (C, C++, Java,

Составление программы преобразование алгоритма в код, написанным на языке программирования (C, C++, Java, Python etc.)
Python etc.)

Слайд 11

Вычисление и обработка результатов

анализ полученных результатов
внесение правок в алгоритм и/или код программы
отладка

Вычисление и обработка результатов анализ полученных результатов внесение правок в алгоритм и/или код программы отладка программы
программы

Слайд 12

Что такое алгоритм?

Слово «алгоритм» произошло от латинского написания имени ученого из города

Что такое алгоритм? Слово «алгоритм» произошло от латинского написания имени ученого из
Хорезма, Абдуллы (или абу Джафара) Мухаммеда бен Муса аль-Хорезми (Alhorithmi), жившего в 783 – 850 гг.

Слайд 13

Что такое алгоритм?

Алгоритм – это подробное описание последовательности арифметических и логических действий,

Что такое алгоритм? Алгоритм – это подробное описание последовательности арифметических и логических
расположенных в строгом логическом порядке и позволяющих решить конкретную задачу.
Шаг алгоритма – это каждое отдельное действие алгоритма
Алгоритмизация – составление пошагового описания процесса решения задачи.

Слайд 14

Свойства алгоритмов

Определенность (детерминированность, точность) – единственность толкования правил выполнения действий и порядка

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

Слайд 15

Алгоритмы

Иногда также выделяют дополнительные свойства:
Эффективность
Связанность
Каждый алгоритм имеет вход и выход. Вход алгоритма

Алгоритмы Иногда также выделяют дополнительные свойства: Эффективность Связанность Каждый алгоритм имеет вход
– это совокупность его исходных данных. Множество допустимых значений переменных на входе алгоритма называются областью определения алгоритма.
Выход алгоритма – это совокупность результатов его работы.

Слайд 16

Пример задачи

Постановка задачи:
Разработать алгоритм нахождения наименьшего простого делителя натурального числа k, большего

Пример задачи Постановка задачи: Разработать алгоритм нахождения наименьшего простого делителя натурального числа
единицы.
Формализация:
Входные данные: k – натуральное число, k>1;
Выходные данные: i – наименьший простой делитель числа k, i≠1.

Слайд 17

Пример задачи

Метод решения:
Простым называется число, не имеющее делителей, отличных от единицы и

Пример задачи Метод решения: Простым называется число, не имеющее делителей, отличных от
его самого, причем единица во множество простых чисел не входит.
Алгоритм решения задачи:
Положить целое число i равным двум и перейти на шаг 2.
Если k делится нацело на i, то завершить работу алгоритма, выдав в качестве результата i, иначе перейти на шаг 3.
Увеличить значение i на единицу и перейти на шаг 2.

Слайд 18

Пример задачи

Детерминированность. Все действия определены строго и недвусмысленно.
Конечность. Величина i вначале меньше

Пример задачи Детерминированность. Все действия определены строго и недвусмысленно. Конечность. Величина i
k, ее значение увеличивается на единицу к каждому очередному выполнению шага 2, и поэтому выполнение алгоритма будет прекращено на шаге 2 при i=k, если k – простое число, или ранее при составном k.
Результативность и массовость. Этот алгоритм пригоден для нахождения наименьшего простого делителя любого натурального числа k, большего единицы.
Дискретность. Процесс разбит на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

Слайд 19

Способы представления алгоритмов

Словесный – описание алгоритмов на естественном языке;
Структурно-стилизованный способ (псевдокоды);

Способы представления алгоритмов Словесный – описание алгоритмов на естественном языке; Структурно-стилизованный способ

Графический (с помощью блок-схем);
Программный.

Слайд 20

Словесное описание

Этап обработки(вычисления)
V=выражение
Где V – переменная
Проверка условия
Если условие, то идти к N
Переход

Словесное описание Этап обработки(вычисления) V=выражение Где V – переменная Проверка условия Если
к этапу с номером N
Идти к N
Конец вычислений
Конец

Слайд 21

Словесное описание: пример

 

Словесное описание: пример

Слайд 22

Недостатки

отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации;
страдают многословностью записей;
допускают неоднозначность

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

Слайд 23

Псевдокод

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

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

Слайд 24

Пример

Выбираем первый элемент (i=1)
IF A>xi или xi печать сообщения и

Пример Выбираем первый элемент (i=1) IF A>xi или xi печать сообщения и
переход на конец
ELSE переход к следующему элементу(i=i+1)
IF массив не кончился (i<=n) THEN
переход на проверку интервала
ELSE печать сообщения, что все элементы входят
в интервал
Конец

Слайд 25

Графический способ

Блок-схема – это графическая интерпретация алгоритма, представляющая набор геометрических фигур, каждая

Графический способ Блок-схема – это графическая интерпретация алгоритма, представляющая набор геометрических фигур,
из которых изображает какую-либо операцию или действие.
Внутри фигур (блоков) кратко записывают выполняемое действие. Такую схему называют схемой программы. Схема программы – отображает последовательность операций в программе.

Слайд 26

Графический способ

Формат блок-схем стандартизирован:
ГОСТ 19.701-90,
ISO 5807-85 "Схемы алгоритмов, данных, программ и

Графический способ Формат блок-схем стандартизирован: ГОСТ 19.701-90, ISO 5807-85 "Схемы алгоритмов, данных, программ и систем"
систем"

Слайд 27

Графический способ

4 основных правила:
Блок-схема строится сверху вниз.
В любой блок-схеме имеется только один

Графический способ 4 основных правила: Блок-схема строится сверху вниз. В любой блок-схеме
элемент, соответствующий началу алгоритма, и один элемент, соответствующий концу алгоритма.
Должен быть хотя бы один путь из начала блок-схемы к любому элементу.
Должен быть хотя бы один путь от каждого элемента блок-схемы в конец блок-схемы.

Слайд 28

Графический способ. Блоки

Начало и конец вычислительного процесса
Блок ввода и вывода

Графический способ. Блоки Начало и конец вычислительного процесса Блок ввода и вывода

Слайд 29

Графический способ. Блоки

Вычислительный блок
Логический блок

Графический способ. Блоки Вычислительный блок Логический блок

Слайд 30

Графический способ. Блоки

Циклический блок
Соединитель

Графический способ. Блоки Циклический блок Соединитель

Слайд 31

Пример

 

Пример

Слайд 32

Пример

Пример

Слайд 33

Основные структуры алгоритмов

Основные структуры алгоритмов – это ограниченный набор блоков и стандартных

Основные структуры алгоритмов Основные структуры алгоритмов – это ограниченный набор блоков и
способов их соединения для выполнения типичных последовательностей действий.
Классификация алгоритмов по структуре:
Линейный
Разветвленный (ветвление)
Циклический (повтор)

Слайд 34

Виды алгоритмов

Алгоритм линейной структуры - это алгоритм, в котором направление вычислений является

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

Слайд 35

Пример

 

Пример

Слайд 36

Виды алгоритмов

Алгоритм разветвляющейся структуры - это алгоритм, в котором направление вычислений определяется

Виды алгоритмов Алгоритм разветвляющейся структуры - это алгоритм, в котором направление вычислений
некоторыми условиями
Каждое возможное направление вычислений называется ветвью.
Каждая из ветвей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Структура ветвление существует в трех основных вариантах: если–то (неполная форма ветвления); если–то–иначе (полная форма ветвления); выбор.

Слайд 37

Пример

 

Пример

Слайд 38

Пример

Пример

Слайд 39

Пример

Вывести модуль действительного числа x.

Пример Вывести модуль действительного числа x.

Слайд 40

Виды алгоритмов

Алгоритм циклической структуры - это алгоритм, в котором отдельные участки вычислений

Виды алгоритмов Алгоритм циклической структуры - это алгоритм, в котором отдельные участки
выполняются многократно
Циклические алгоритмы позволяют существенно сократить объем программы за счет многократного выполнения группы повторяющихся вычислений

Слайд 41

Циклы: основные понятия

Цикл – совокупность действий алгоритма, связанная с повторением.
Тело цикла –

Циклы: основные понятия Цикл – совокупность действий алгоритма, связанная с повторением. Тело
многократно повторяющиеся действия алгоритма.
Параметр цикла – величина, с изменением которой связано многократное выполнение цикла.
Условие цикла – это некоторое утверждение, которое обязательно принимает одно из значений: истина или ложь.

Слайд 42

Циклы

Для организации цикла необходимо выполнить следующие действия:
Перед началом цикла задать начальные значения

Циклы Для организации цикла необходимо выполнить следующие действия: Перед началом цикла задать
параметров (переменных, используемых в логическом выражении, отвечающем за продолжение или завершение цикла;
Внутри цикла изменять переменную (или переменные), которая сменит значение логического выражения, за счет которого продолжается цикл, на противоположное;
Вычислять логическое выражение – проверять условие продолжения или окончания цикла;
Управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из цикла в противном случае.

Слайд 43

Классификация циклов

Простые – циклы, не содержащие внутри себя другие циклы
Сложные - циклы,

Классификация циклов Простые – циклы, не содержащие внутри себя другие циклы Сложные
содержащие внутри себя другие циклы
Вложенные (внутренние) – циклы, входящие в состав других циклов (цикл в цикле)
Внешние – циклы, не являющиеся составной частью других циклов, но содержащие в своем составе внутренние циклы.

Слайд 44

Классификация циклов

В зависимости от месторасположения условия выполнения цикла:
циклы с предусловием (ПОКА)
циклы с

Классификация циклов В зависимости от месторасположения условия выполнения цикла: циклы с предусловием
постусловием (ДО)
В соответствии с видом условия выполнения:
циклы с параметром
итерационные циклы

Слайд 45

Циклическая структура «ДО»

Повторять до тех пор, пока не будет выполнено условие.
Особенность этого

Циклическая структура «ДО» Повторять до тех пор, пока не будет выполнено условие.
цикла состоит в том, что он выполняется хотя бы один раз, так как первая проверка условия происходит после того, как тело цикла выполнено.

Слайд 46

Пример

 

Пример

Слайд 47

Циклическая структура «ПОКА»

Повторять до тех пор, пока выполняется условие.
Отличается от цикла «ДО»

Циклическая структура «ПОКА» Повторять до тех пор, пока выполняется условие. Отличается от
тем, что здесь проверка условия проводится до выполнения тела цикла.
Если при первой проверке условие выхода из цикла выполняется, то тело цикла не выполнится ни разу.

Слайд 48

Пример

Дано X. Надо делить его пополам до тех пор, пока X будет

Пример Дано X. Надо делить его пополам до тех пор, пока X будет больше 0.1.
больше 0.1.

Слайд 49

Циклическая структура «ДЛЯ»

В блоке «модификация» объединяются несколько блоков: подготовка цикла, проверка окончания,

Циклическая структура «ДЛЯ» В блоке «модификация» объединяются несколько блоков: подготовка цикла, проверка
изменение параметра цикла.
i – параметр цикла
a – начальное значение параметра цикла
b – конечное значение параметра цикла
h – шаг изменения параметра цикла

Слайд 50

Пример

Вычислить сумму всех целых чисел от 1 до N.

Пример Вычислить сумму всех целых чисел от 1 до N.

Слайд 51

Величины в алгоритмах

В алгоритмах для данных используются специальные символические обозначения, которые аналогичны

Величины в алгоритмах В алгоритмах для данных используются специальные символические обозначения, которые
обозначениям в математике, представляют имена величин или их идентификаторы.
Типы данных: целые, вещественные, логические, текстовые (символьные) и другие.

Слайд 52

Величины в алгоритмах

В алгоритмах и программах используются два вида величин:
Константа – это

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

Слайд 53

Величины в алгоритмах

Используются простые и индексные переменные (переменные с индексом). Переменная с

Величины в алгоритмах Используются простые и индексные переменные (переменные с индексом). Переменная
индексом – это элемент некоторой заданной последовательности значений, которые называются массивом.
Массивом называется совокупность однотипных данных, связанных общим именем.

Слайд 54

Величины в алгоритмах

Массив может быть одномерным (вектор), количество индексов – один; двумерным,

Величины в алгоритмах Массив может быть одномерным (вектор), количество индексов – один;
количество индексов – два и т.д. (матрицы).
Количество индексов определяет размерность массива.
Обращение к элементам массива: X(1), Y(2)(3).
Имя файла: Основы-алгоритмизации-и-программирования.pptx
Количество просмотров: 49
Количество скачиваний: 0