Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 797255.01.99
Доступ онлайн
2 000 ₽
В корзину
Рассматриваются вопросы алгоритмизации и программирования. Дается описание современного языка программирования Python в объеме, необходимом для иллюстрации основных понятий программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования. Предназначен для изучения основ алгоритмизации и начального знакомства с программированием на языке Python студентами 1-го курса всех направлений подготовки, а также для самостоятельного изучения.
Андреева, О. В. Основы алгоритмизации и программирования на языке Python : учебник / О. В. Андреева, О. И. Ремизова. - Москва : Издательский Дом НИТУ «МИСиС», 2022. - 149 с. - ISBN 978-5-907560-22-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/1914825 (дата обращения: 14.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Москва 2022

М ИНИС ТЕРС ТВО НАУКИ И ВЫСШ ЕГО О Б РА З О ВА Н И Я РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»

ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК

Кафедра инженерной кибернетики

О.В. Андреева 
О.И. Ремизова

ОСНОВЫ АЛГОРИТМИЗАЦИИ 
И ПРОГРАММИРОВАНИЯ 
НА ЯЗЫКЕ PYTHON

Учебник

Рекомендовано редакционно-издательским 
советом университета

№ 4701

УДК 004.43 
 
А65

Р е ц е н з е н т ы : 
канд. техн. наук, доц. С.В. Никифоров (РГГУ);  
канд. техн. наук, доц. С.В. Солодов

Андреева, Ольга Владимировна.
А65  
Основы алгоритмизации и программирования на языке 
Python : учебник / О.В. Андреева, О.И. Ремизова. – Москва : 
Издательский Дом НИТУ «МИСиС», 2022. – 149 с.
ISBN 978-5-907560-22-2

Рассматриваются вопросы алгоритмизации и программирования. 
Дается описание современного языка программирования Py-
thon в объеме, необходимом для иллюстрации основных понятий 
программирования. Рассматриваются базовые структуры алгоритмов, 
типовые алгоритмы работы с массивами, основные приемы 
программирования.
Предназначен для изучения основ алгоритмизации и начального 
знакомства с программированием на языке Python студентами 
1-го курса всех направлений подготовки, а также для самостоятельного 
изучения.

УДК 004.43

 Андреева О.В., 
Ремизова О.И., 2022
ISBN 978-5-907560-22-2
 НИТУ «МИСиС», 2022

ОГЛАВЛЕНИЕ

Предисловие .................................................................. 5

Введение ........................................................................ 7

Глава 1. Основы алгоритмизации и программирования ....... 8
1.1. Понятие алгоритма ............................................... 8
1.1.1. Понятие о структурном подходе к разработке 
алгоритмов .............................................................. 8
1.1.2. Метод пошаговой детализации ........................ 11
1.2. Основные понятия программирования ................... 12
1.3. Основы языка Python .......................................... 16
1.3.1. Переменные. Типы данных ............................. 16
1.3.2. Константы (литералы) ................................... 18
1.3.3. Математические операторы. Выражения .......... 19
1.3.4. Логические операторы. Выражения ................. 21
1.3.5. Основные операторы Python ........................... 22
1.3.6. Ввод-вывод данных ....................................... 28
1.3.7. Построение программного кода ....................... 35
1.4. Этапы решения задач ........................................... 36
1.5. Среда разработки ................................................ 39
1.5.1. Создание нового проекта ................................ 42
1.5.2. Сохранение проекта ....................................... 43
1.5.3. Открытие существующего проекта ................... 43

Глава 2. Разработка программ циклической структуры .... 45
2.1. Циклы по счетчику ............................................. 45
2.2. Циклы по условию .............................................. 52
2.3. Вложенные циклы. Вычисление рядов ................... 54
Вопросы для самопроверки ......................................... 57
Задания для самостоятельного выполнения ................... 58

Глава 3. Организация разветвлений. Разветвления  
в цикле ........................................................................ 63
3.1. Организация разветвлений. Условный оператор.  
If-блок...................................................................... 63
3.2. Составление программ для обработки потока  
данных ..................................................................... 67
Вопросы для самопроверки ......................................... 69
Задания для самостоятельного выполнения ................... 70

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON

Глава 4. Структурированные типы данных. Типовые 
алгоритмы обработки и их реализация ............................. 73
4.1. Списки .............................................................. 73
4.1.1. Одномерные массивы ..................................... 75
4.1.2. Алгоритмы обработки одномерных массивов ..... 78
4.1.3. Матрицы. Типовые алгоритмы обработки  
матриц .................................................................. 96
4.2. Словари ............................................................111
4.3. Множества ........................................................116
4.4. Кортежи ...........................................................118
Вопросы для самопроверки ........................................118
Задания для самостоятельного выполнения ..................119

Глава 5. Функции .......................................................129
Вопросы для самопроверки ........................................136
Задания для самостоятельного выполнения ..................137

Заключение ................................................................142

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

Приложение. Основные операторы ................................144

ПРЕДИСЛОВИЕ

Современное развитие общества предполагает широкое ис-
пользование компьютерных технологий в различных сферах 
деятельности.
Умение использовать разнообразные возможности, предо-
ставляемые компьютером, обеспечивают конкурентоспособ-
ность специалиста.
Настоящий учебник предназначен для приобретения ком-
петенций в области алгоритмизации задач и разработки при-
ложений с использованием современного языка Python 3.7, 
включенного в среду разработки .NET FrameWork, являющую-
ся средством быстрой разработки приложений. Приобретаемые 
при изучении этого пособия навыки являются необходимыми 
для дальнейшего овладения возможностями, предоставляемы-
ми языком, в полном объеме.
В учебнике рассматривается комплекс вопросов, связанных 
с решением задач на компьютере, включая формализацию по-
становки, алгоритмизацию, современные методы разработки, 
отладки и тестирования программ, выбор структуры данных 
и пр. В каждой главе выделены и систематизированы типовые 
алгоритмы для решения соответствующих задач, в том числе 
для обработки текстов и решения других задач «невычисли-
тельного» характера.
Учебник содержит большое количество примеров, облегча-
ющих восприятие и освоение материала, и заданий различной 
степени сложности для самостоятельного выполнения, что по-
зволит оценивать уровень освоения указанных умений и на-
выков как минимальный, средний или повышенный.
При этом следует отметить, что в рамках настоящего учеб-
ника авторы не ставили цели знакомства со всеми возможностя-
ми, предоставляемыми языком Python, а рассматривали лишь 
ограниченное подмножество средств, необходимых для решения 
предлагаемых задач в рамках изучаемого курса. Дополнительные 
сведения можно почерпнуть в официальном пособии от 
Python Software Foundation, которое является одним из основных 
источников информации для разработчиков, использующих 
Python, оно доступно по ссылке https://www.python.org/psf/

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON

Учебник содержит введение, пять глав и приложение.
Глава 1 в основном посвящена теоретическим вопросам алгоритмизации 
и знакомству с базовыми приемами программирования. 
Здесь дается представление об алгоритмическом 
методе, используемом при решении задач на компьютере, и современных 
подходах к разработке алгоритмов и программ; рассматриваются 
основные аспекты и этапы решения задач на компьютере, 
излагаются приемы и методы разработки и проверки 
правильности программ. Также дается краткое описание основных 
понятий языка Python, начальные сведения об использовании 
интегрированной среды разработки Python 3.7 и технологии .
NET Framework.
Главы 2–5 посвящены приобретению практических навыков. 
В каждой главе приводятся типовые алгоритмы и приемы 
решения задач соответствующего класса, проиллюстрированные 
примерами программ, а также контрольные вопросы, которые 
могут использоваться как для самопроверки, так и для контроля 
преподавателем.
В учебник включены задания для самостоятельного выполнения 
трех уровней сложности:
• задания I уровня требуют решения простых задач, которые 
сводятся к типовым алгоритмам и по существу представляют 
собой упражнения, направленные на приобретение навыков 
использования этих средств;
• задания II уровня содержат более сложные задачи, требующие 
использования типовых алгоритмов в сочетании;
• задания III уровня содержат, как правило, задачи, близкие 
к реальным, которые требуют самостоятельной модификации 
типовых алгоритмов, а также некоторого творческого подхода, 
и рекомендуются для выполнения более подготовленным 
студентам.
Наличие заданий трех уровней позволяет в значительной 
степени индивидуализировать процесс обучения.
Учебник согласован с программой курса «Алгоритмизация 
и программирование» (для студентов института ИТКН), а также 
программами дисциплины «Информатика» (для студентов 
остальных направлений).

ВВЕДЕНИЕ

Язык программирования Python – один из наиболее популярных 
и быстро развивающихся языков программирования 
в мире (третий по популярности в 2019 г., согласно данным 
GitHub). Он применяется для решения самых разных задач, 
включая веб-программирование и анализ данных. Кроме того, 
это один из подходящих языков для реализации машинного 
обучения.
Python – простой язык, но его возможности велики. Изучив 
его, вы получите в свое распоряжение эффективный инструмент 
для исследования, обнаружения и даже визуализации данных.
Python является простым в изучении и при этом мощным 
языком программирования. Он содержит эффективные структуры 
данных высокого уровня и простой, но эффективный подход 
к объектно-ориентированному программированию. Элегантный 
синтаксис и динамический ввод Python, а также интерпретируемый 
характер делают его идеальным языком для сценариев 
и быстрого развития приложений во многих областях на большинстве 
платформ.
Объектно-ориентированное программирование по сравнению 
с традиционными алгоритмическими языками существенно 
расширяет возможности и облегчает разработку сложных 
программных систем в значительной степени благодаря нали-
чию большого количества библиотек, при использовании кото-
рых отпадает необходимость в написании кодов многих типо-
вых алгоритмов.
Однако при решении научно-технических задач алгоритми-
ческая составляющая является весьма существенной. В насто-
ящем учебнике вопросам алгоритмизации и изучению базовых 
приемов программирования уделяется значительное внимание. 
Также рассматриваются и используются и некоторые объект-
ные свойства языка, на наглядных примерах демонстрируются 
предоставляемые ими новые возможности.

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON

ГЛАВА 1. Основы алгоритмизации 

и программирования

1.1. Понятие алгоритма

Алгоритмом называется четкое описание последовательно-
сти действий, которые необходимо выполнить для решения за-
дачи. Практически решение любой задачи требует получения 
результата по заданным исходным данным. То есть можно ска-
зать, что алгоритм описывает последовательный процесс пре-
образования исходных данных в результат.
Разработать алгоритм решения задачи означает разбить за-
дачу на последовательно выполняемые шаги (этапы), причем 
результаты выполнения предыдущих этапов могут использо-
ваться при выполнении последующих. При этом должны быть 
четко указаны как содержание каждого этапа, так и порядок 
выполнения этапов. Отдельный этап (шаг) алгоритма пред-
ставляет собой либо другую, более простую задачу, алгоритм 
решения которой разработан ранее, либо должен быть доста-
точно простым и понятным без объяснений.
Четко сформулированная последовательность правил, опи-
сывающих этот процесс, и является алгоритмом.

1.1.1. Понятие о структурном подходе 

к разработке алгоритмов

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

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

Рис. 1.1. Типовая структура Следование

2. Цикл. Применяется при необходимости выполнить ка-
кие-либо вычисления несколько раз до выполнения некоторого 
условия. Тело цикла – та последовательность действий, кото-
рая выполняется многократно (в цикле). Начальные присваи-
вания – задание начальных значений тем переменным, которые 
используются в теле цикла. Особенность цикла в том, что эта 
структура может реализоваться в двух вариантах. В первом 
случае цикл всегда выполняется хотя бы один раз, так как пер-
вая проверка условия выхода из цикла происходит после того, 
как тело цикла выполнено (рис. 1.2, а). Во втором случае про-
верка условия выхода из цикла производится до выполнения 
тела цикла, и если при первой проверке условие выполняется, 
то тело цикла не выполняется ни разу (рис. 1.2, б).
3. Разветвление (рис. 1.3) применяется, когда в зависимо-
сти от условия нужно выполнить либо одно, либо другое дей-
ствие. Действие 1 или Действие 2 может в свою очередь со-
держать несколько этапов.

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON

 
а 
б 

Рис. 1.2. Типовая структура Цикл: а – цикл с постусловием; 
б – цикл с предусловием

Рис. 1.3. Типовая структура Разветвление

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

4. Обход (рис. 1.4). Частный случай разветвления, когда 
одна ветвь не содержит никаких действий.

Рис. 1.4. Типовая структура Обход

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

1.1.2. Метод пошаговой детализации

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

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON

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

1.2. Основные понятия программирования

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


Рис. 1.5. Схематичное представление переменной

Доступ онлайн
2 000 ₽
В корзину