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

Алгоритмизация и программирование на языке С++. Часть 1

Покупка
Артикул: 831536.01.99
Доступ онлайн
2 000 ₽
В корзину
Содержит материал для изучения основ алгоритмизации и начального знакомства с программированием на языке С++ в рамках курса «Алгоритмизация и программирование». Многочисленные примеры в учебнике написаны и отлажены в трех средах разработки С++. Предназначен для студентов 1-го курса института ИТКН, а так же для самостоятельного изучения студентами других специальностей.
Андреева, О. В. Алгоритмизация и программирование на языке С++. Часть 1 : учебник / О. В. Андреева, А. И. Широков. - Москва : Издательский Дом НИТУ «МИСиС», 2023. - 219 с. - ISBN 978-5-907560-77-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2148216 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
№ 4700
Университет науки и технологий МИСИС
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК
Кафедра инженерной кибернетики
О.В. Андреева 
А.И. Широков
АЛГОРИТМИЗАЦИЯ 
И ПРОГРАММИРОВАНИЕ 
НА ЯЗЫКЕ С++
Учебник
Рекомендовано редакционно-издательским  
советом университета
Москва 2023


УДК 004.438 
 
А65
Р е ц е н з е н т ы : 
канд. техн. наук, доц. кафедры моделирования  
в экономике и управлении С.В. Никифоров (РГГУ);  
канд. техн. наук, доц. НИТУ МИСИС С.В. Громов
Андреева, Ольга Владимировна.
А65  
Алгоритмизация и программирование на языке С++. 
Часть 1 : учебник / О.В. Андреева, А.И. Широков. – Москва : Издательский Дом НИТУ МИСИС, 2023. – 219 с.
ISBN 978-5-907560-77-2
Содержит материал для изучения основ алгоритмизации и начального знакомства с программированием на языке С++ в рамках курса «Алгоритмизация и  программирование». Многочисленные примеры в учебнике написаны и отлажены в трех средах 
разработки С++.
Предназначен для студентов 1-го курса института ИТКН, а также для самостоятельного изучения студентами других специальностей.
УДК 004.438
Андреева О.В., 
Широков А.И., 2023
ISBN 978-5-907560-77-2
НИТУ МИСИС, 2023


СОДЕРЖАНИЕ
Введение.
......................................................................5
1.  История и стандарты С++...........................................6
2.  Среды разработки С++ и написание первой  
программы.
...................................................................9
2.1.  Начало разработки программ в среде Dev C++........ 11
2.2.  Начало разработки программ в среде  
Visual Studio 2022..................................................... 15
2.3.  Начало разработки программ в среде OnlineGDB.... 26
3.  Переменные и типы данных...................................... 29
3.1.  О понятии «переменная».
.................................... 29
3.2.  Основные типы данных С++................................ 31
3.3.  Литералы.
......................................................... 42
4.  Операции (выражения)............................................. 47
5.  Ввод-вывод данных.................................................. 54
5.1.  Ввод-вывод с использованием потоков STL............ 54
5.2.  Ввод-вывод с использованием функций в стиле С.
... 60
6.  Инструкции выбора................................................. 63
7.  Циклы................................................................... 76
8.  Массивы............................................................... 102
8.1.  Указатели, ссылки и массивы............................ 102
8.2.  Алгоритмы обработки одномерных массивов....... 106
8.3.  Обработка двухмерных массивов........................ 125
8.3.1.  Ввод-вывод двумерных массивов.................. 125
8.3.2.  Типовые алгоритмы двухмерного массива..... 129
9.  Функции.............................................................. 154
Задания для самостоятельного выполнения................... 168
Заключение.............................................................. 184
Библиографический список.
........................................ 185


АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++
Приложение  1.  Директивы препроцессора................... 189
Приложение  2.  Типизация языков программирования.
... 198
Приложение  3.  Приоритет и ассоциативность  
операций С++.
........................................................... 209
Приложение  4.  Использование функции вычисления 
степени и сравнение алгоритмов по эффективности  
(времени выполнения)................................................ 212


ВВЕДЕНИЕ
Развитие общества сегодня определяется внедрением компьютерных технологий в  разнообразных областях деятельности человека. Навыки использования таких технологий 
обеспечивают конкурентоспособность специалистов самых 
разных специальностей. Знакомство с современными технологиями разработки и  реализации программно-алгоритмического обеспечения делают более осознанным участие в реализации компьютерных систем на всех этапах жизненного 
чикла. Очевидно, что  у  специалистов, непосредственно занятых в разработке и внедрении компьютерных технологий, 
навыки программирования и алгоритмизации должны быть 
освоены на высоком уровне.
Настоящий учебник содержит описание методов и средств 
языка программирования С++, являющегося сегодня одним 
из самых применяемых при разработке приложений широкой 
направленности. Материал учебника ориентирован на обучающихся в области компьютерных технологий и, желательно, 
уже имеющих хотя бы начальные навыки программирования 
на алгоритмических языках.
В  учебнике приведено описание базовых конструкций 
языка С++ (без претензий на полное освещение вопроса). Но 
в учебниках по языкам программирования, например в [1], 
часто содержится такая мысль: «Язык программирования 
нельзя изучать «линейно», то есть от аксиом к теоремам, задачам, выводам». Исходя из этого, многие конструкции будут введены сначала в примерах, а затем приведено их строгое формальное описание.
Примеры, содержащиеся в учебнике, написаны и отлажены в трех средах разработки С++: Visual Studio 2022, Dev C++ 
и OnlineGDB.


1.  ИСТОРИЯ И СТАНДАРТЫ С++
От каких языков произошел С++? Конечно, прежде всего 
от С. Вот что пишет об этом Б. Страуструп, создатель С++, в 
одной из своих книг: «С++ – язык общего назначения и задуман для  того, чтобы настоящие программисты получили 
удовольствие от  самого процесса программирования. За  исключением второстепенных деталей он содержит язык С как 
подмножество» [2]. Далее он добавляет, что  С++ дополнен 
расширением, связанным, прежде всего, с  появлением новых типов. Первый из них – класс, являющийся, по словам 
Б. Страуструпа, «ключевым понятием». Среди добавлений в 
С++ он в упомянутой книге называет еще и такие: «… символические константы, функции-подстановки, стандартные 
значения параметров функций, перегрузка имен функций, 
операции управления свободной памятью и ссылочный тип». 
Следует добавить, что автор языка работал над его совершенствованием не один десяток лет, и эта работа продолжается.
Язык программирования С, «предшественник» рассматриваемого здесь С++, был разработан в 1969–1973 годах сотрудником Bell Labs Деннисом Ритчи. Первым стандартом 
этого языка является книга Б. Кернигана и Д. Ритчи [3]. Вот 
что еще пишет Б. Страуструп об идее построения С++ на основе С: «В С существуют свои проблемы, но в языке, разрабатываемом «с нуля», они появились бы тоже, а проблемы С, 
по крайней мере, хорошо известны. Более важно то, что ориентация на С позволила использовать язык «С с классами» 
как полезный (хотя и не очень удобный) инструмент в течение первых месяцев раздумий о введении в С классов в стиле 
Симулы [4]». В этой же книге приводятся и другие языки, 
идеи которых использованы при создании С++. Это, в частности, такие как:
• Алгол 68 [5] (перегрузка операций и свобода размещения операций всюду);
• Ада [6];
• CLU [7] (механизм обработки особых ситуаций).


1.  История и стандарты С++
О названии языка С++ ее автор говорит следующее: «Название C++ было придумано Риком Маскитти (Rick Mascitti) 
летом 1983 года. Имя отражает природу изменений в языке 
по сравнению с C. «++» – это оператор инкремента в C» [8].
На странице Википедии [9] приводится схема, названная 
«Генеалогия и взаимовлияние версий C и C++». На рис.  1.1 
эта схема дополнена версиями С++03 и С++20.
Рис.  1.1.  Генеалогия и взаимовлияние версий C и C++
Приведем выдержки из главы «История и совместимость» 
книги автора С++ [10], один из  разделов которой называется «Временная диаграмма развития». Вот кратко несколько 
фрагментов оттуда.


АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++
1979 год. Начата работа над «С с классами».
1984 год. «С с классами» переименован в С++.
1985 год. Первый коммерческий выпуск С++ (14 октября).
1998 год. Стандарт ISO С++.
2011 год. Стандарт ISO С++11.
2013 год. Первая полная реализация С++11.
2014 год. Стандарт ISO С++14.
2020 год. Стандарт ISO С++20.
Здесь видно, как  развитие языка С++ сопровождалось и 
продолжает сопровождаться выпуском стандартов, в  которых учитывается мнение множества специалистов. Это делает 
его отвечающим современным требованиям. Все подробности 
можно получить от  автора в  упомянутой книге, и, конечно, 
изучая стандарты, начиная от первого (1998) и включая последний (2022). Но совершенствование языка продолжается. 
Сейчас анонсирован стандарт 2023.
Там же Страуструп пишет: «Я изобрел С++, написал его 
первые определения и создал его первую реализацию.
Я  выбрал и  сформулировал критерии проектирования 
для С++, разработал основные языковые функции, разработал или помогал разрабатывать многие ранние библиотеки и 
в течение 25 лет отвечал за обработку предложений по расширению в комитете по стандартам С++».
Из этих слов становится понятно, что этот язык программирования, созданный более 30 лет назад, постоянно совершенствуется, приобретая новые возможности, диктуемые потребностями современного состояния компьютерных технологий.
Многие годы язык программирования С++ занимает места 
в  первой пятерке рейтингов популярности языков программирования. Это делает важным изучение этого языка для специалистов в области компьютерных технологий.
Переходим к описанию инструментов, позволяющих изучать методы и средства разработки программ на С++. Таких 
инструментов множество, но в учебнике используется только три.


2.  СРЕДЫ РАЗРАБОТКИ С++ 
И НАПИСАНИЕ ПЕРВОЙ ПРОГРАММЫ
Для написания и отладки программы на языке программирования (реализации алгоритма решения задачи) необходимы программные средства. Прежде всего, это тестовый 
редактор. Он используется для подготовки исходного текста. 
Далее потребуется транслятор (для формирования программы 
в терминах машинных команд). И на последнем этапе в действие вступает средство формирования программы в виде исполнимого файла (готовой для  выполнения программы). На 
последнем этапе к  программе подключаются библиотечные 
модули (это заранее созданные часто используемые алгоритмы, например, выполняющие операции ввода-вывода). Эти 
средства (редактор, транслятор) могут существовать отдельно (так часто бывает при  работе в  Unix-подобных операционных системах) или  объединяться в  единый программный 
комплекс, называемый интегрированной средой разработки 
(IDE – Integrated Development Environment). Такие программы появились давно. Первая была создана в  Дартмутском 
колледже в  мае 1964  года [11]. Ее создали два профессора 
Дартмутского колледжа Джон Г. Кемени и Томас Э. Курц – 
авторы языка программирования BASIC. Она обеспечивала 
интерактивную разработку программ для  версии Dartmouth 
BASIC.
В процессе своего развития IDE приобрели множество новых возможностей. Первой из таких возможностей являются 
средства, помогающие при  отладке программы. Но  сегодня 
такие комплексы включают «… также средства для интеграции с  системами управления версиями и  разнообразные инструменты для  упрощения конструирования графического 
интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов 
и диаграмму иерархии классов – для использования при объектно-ориентированной разработке ПО. IDE обычно предназначены для нескольких языков программирования …» [12]. 


АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++
Например, Visual  Studio 2020 обеспечивает написание программ на таких языках, как С++, C#, F#, Python, JavaScript, 
TypeScript, Visual Basic [13]. Но эта среда также содержит множество встроенных инструментов, например редактор пользовательских форм для создания графического интерфейса, дизайнер классов, дизайнер схемы базы данных и др.
Существует множество сред разработки для С++. Информация о некоторых из них приведена в табл.  2.1 [14].
Таблица  2.1
Сравнение средств разработки для С++
Поддерживаемые платформы: Windows
Visual 
Studio Code
Тип: IDE
Цена: бесплатно
Поддерживаемые платформы: Windows, Linux, 
macOS
Microsoft 
Visual C++
Тип: IDE
Стоимость: сommunityверсия распространяется бесплатно
Xcode
Тип: IDE
Стоимость: бесплатно
Поддерживаемые платформы: macOS
g++
Тип: компилятор
Стоимость: бесплатно
Поддерживаемые платформы: Linux, macOS
Dev C++
Тип: IDE
Стоимость: бесплатно
Поддерживаемые платформы: Windows
Intel C++
Тип: компилятор
Стоимость: бесплатно
Поддерживаемые платформы: Windows, Linux
Mingw-w64
Тип: компилятор
Стоимость: бесплатно
Поддерживаемые платформы: Windows
Clang C++
Тип: компилятор
Стоимость: бесплатно
Поддерживаемые платформы: macOS, Linux, 
FreeBSD
Clion
Тип: IDE
Стоимость: 
от 14 100 руб.
Поддерживаемые платформы: A cross-platform 
IDE for C and C++
Следует сказать, что  представленный список далеко не 
исчерпывает возможности разработки программ на С++.
В  настоящем пособии приводятся примеры реализации 
алгоритмов в трех IDE: Dev C++ (v. 5.11 и v. 6.3), Visual Stu
Доступ онлайн
2 000 ₽
В корзину