Алгоритмы и структуры данных в Python. Лабораторный практикум
Покупка
Новинка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
РГЭУ (РИНХ)
Автор:
Шкодина Татьяна Андреевна
Год издания: 2022
Кол-во страниц: 80
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7972-3037-3
Артикул: 860701.01.99
Учебное пособие содержит перечень и краткую теоретическую справку по основным темам лабораторных работ курса «Алгоритмы и структура данных в Python: лабораторный практикум» для направления подготовки 01.03.05 «Статистика». В пособии представлены задания для лабораторных работ, варианты заданий для самостоятельной работы студентов всех форм обучения.
Пособие может использоваться и для иных направлений и специальностей
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ (РИНХ) КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ И ПРИКЛАДНОЙ ИНФОРМАТИКИ Т.А. Шкодина АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ В PYTHON. ЛАБОРАТОРНЫЙ ПРАКТИКУМ УЧЕБНОЕ ПОСОБИЕ Ростов-на-Дону Издательско-полиграфический комплекс РГЭУ (РИНХ) 2022
УДК 004 (075) ББК 32.973.2 Ш 67 Шкодина, Т.А. Ш 67 Алгоритмы и структуры данных в Python. Лабораторный практикум : учебное пособие. – Ростов-на-Дону : Издательско-полиграфический комплекс РГЭУ (РИНХ), 2022. – 80 с. ISBN 978-5-7972-3037-3 Учебное пособие содержит перечень и краткую теоретическую справку по основным темам лабораторных работ курса «Алгоритмы и структура данных в Python: лабораторный практикум» для направления подготовки 01.03.05 «Статистика». В пособии представлены задания для лабораторных работ, варианты заданий для самостоятельной работы студентов всех форм обучения. Пособие может использоваться и для иных направлений и специальностей. УДК 004 (075) ББК 32.973.2 Рецензенты: Рутта Н.А., к.э.н., заведующая кафедрой экономики и управления Южно-Российского гуманитарного института Ефимова Е.В., к.э.н., заведующая кафедрой Информационных технологий и защиты информации РГЭУ (РИНХ) Утверждено в качестве учебного пособия учебно-методическим советом Ростовского государственного экономического университета (РИНХ) ISBN 978-5-7972-3037-3 © Шкодина Т.А. 2022 © Ростовский государственный экономический университет (РИНХ), 2022
СОДЕРЖАНИЕ Лабораторная работа 1. Введение в алгоритмы......................... 5 Задания для самостоятельного выполнения ................................ 10 Лабораторная работа 2. Линейные структуры данных .......... 12 Задания для самостоятельного выполнения ................................ 22 Лабораторная работа 3. Алгоритмы обработки данных линейной структуры. Сортировка. Поиск ................................. 25 Задания для самостоятельного выполнения ................................ 31 Лабораторная работа 4. Нелинейные структуры данных ...... 33 Задания для самостоятельного выполнения ................................ 40 Лабораторная работа 5. Алгоритмы на графах. Представления графов. Алгоритмы поиска в глубину и ширину. Кратчайшие пути в графе .......................................... 43 Задания для самостоятельного выполнения ................................ 47 Лабораторная работа 6. Комбинаторные алгоритмы .............. 50 Задания для самостоятельного выполнения ................................ 51 Лабораторная работа 7. Основные алгоритмы обработки данных. Рекурсивные алгоритмы ................................................ 53 Задания для самостоятельного выполнения ................................ 54 Лабораторная работа 8. Хеширование ........................................ 56 Задания для самостоятельного выполнения ................................ 58 Лабораторная работа 9. Хеширование. Принцип хеширования. Алгоритмы на строках. Хеш-таблица. Криптографическое преобразование. Шифрование ................ 59 Задания для самостоятельного выполнения ................................ 63 Лабораторная работа 10. Динамическое программирование .......................................................................... 64 Задания для самостоятельного выполнения ................................ 68 Состав и структура индивидуального задания ......................... 69
Список рекомендованных и использованных источников ........................................................................................ 76 Приложения ...................................................................................... 77 Приложение А (информационное). Форма титульного листа для индивидуального задания........................................................ 77 Приложение Б (информационное). Форма титульного листа для отчета по лабораторным работам .......................................... 78 Приложение В (информационное). Структура отчета к лабораторным работам ................................................................ 79
ЛАБОРАТОРНАЯ РАБОТА 1. ВВЕДЕНИЕ В АЛГОРИТМЫ Цель: составить программы на языке программирования Python линейных, ветвящихся и циклических алгоритмов Общие сведения Алгоритм – последовательность команд, предназначенная исполнителю, в результате выполнения которой он должен решить поставленную задачу. Виды алгоритмов: линейный алгоритм, разветвляющийся алгоритм, циклический алгоритм. Лексема – последовательность допустимых символов языка программирования. Набор лексем – текст на языке программирования, который понятен компилятору языка. Исходный код – текст программы на языке программирования. Исходный код записывается в текстовом файле с расширением .py. Комментарий – строка в программе, которой предшествует символ #. Комментарии нужны для объяснения программного кода, а также для отладки программы. Комментарии не относятся к тексту программы, во время её выполнения будут пропущены компилятором. Интерактивный режим – режим, при котором введенные инструкции с клавиатуры будут немедленно выполнены, а результат выведен на экран. Интерактивный режим не используется для составления полноценных программ. Интегрированная среда разработки программ (IDLE, Integrated Development and Learning Environment) – среда для составления полноценных программ, которая включает в себя редактор кода, средства работы с компилятором и отладчиком, интеграцию с системами управления версиями и другие возможности. Типы данных в python: int – целочисленный тип данных;
float – вещественный тип данных; str – строковый тип данных; bool – логический тип данных (True/False) Функции ввода и вывода языка программирования python: print() – вывод данных на экран; input() – ввод данных с клавиатуры; Математические операторы Python Оператор Описание x+y Сложение x-y Вычитание x*y Произведение x/y Деление x//y Целочисленное деление x%y Остаток от целочисленного деления x**y Возведение в степень -x Смена знака числа При использовании встроенных функций необходимо импортировать математический модуль import math. Обычно модули прописываются вначале кода. Встроенные математические функции в Python Функция Описание Пример pow(x,y) Степень y числа x math.pow(4,2) abs(x) Модуль числа x math.abs(-100) sin(x) Синус числа x math.sin(45) cos(x) Косинус числа x math.cos(30) sqrt(x) Квадратный корень числа math.sqrt(121) log(x,y) Логарифм числа x по основанию y math.log(625,5) round(x,y) Округление числа x до цифры y math.round(5.3456,2)
Операторы сравнения Python Оператор Описание Пример == Проверяет, одинаково ли значение операндов, условие является истинным, если одинаково a==b != Проверяет, одинаково ли значение операндов, условие является истинным, если не одинаково a!=b > проверяет значение левого операнда, если оно больше, чем правый, то условие является истинным a>b < проверяет значение левого операнда, если оно меньше, чем правый, то условие является истинным a<b >= проверяет значение левого операнда, если оно больше (или равно), чем правый, то условие является истинным a>=b <= проверяет значение левого операнда, если оно меньше (или равно), чем правый, то условие является истинным a<=b Условные операторы и циклы Конструкция Описание Синтаксис if-else Условный оператор ветвления if позволяет выполнять разные блоки команд в зависимости от истинности или ложности некоторого условия. Под ключевым словом else размещается блок команд, выполняемых при ложном условии. if выражение: команды else: команды if-elif-else Применим для реализации выбора из нескольких альтернатив. if выражение1: команды elif выражение2:
Конструкция Описание Синтаксис команды elif выражение3: команды else: команды while-breakcontinue Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. После while указывается некоторое условие (истинное или ложное). После этого снова проверяется условие. Если оно истинно, снова выполняются команды из while-блока и так далее. Процесс продолжается до тех пор, пока условие при проверке не окажется ложным. Если условие ложное, то выполняются команды после ключевого слова else. На этом выполнение оператора цикла завершается. Оператор break предназначен для досрочного прерывания работы цикла while. Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется while условие: команды ……… continue ……… break ……… else: команды for Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе. Оператор цикла for удобно использовать, когда необходимо перебирать эле