Информационные технологии. Программирование на C++
Покупка
Основная коллекция
Тематика:
Программирование на C и C++
Издательство:
Новосибирский государственный технический университет
Автор:
Гридчин Александр Викторович
Год издания: 2020
Кол-во страниц: 68
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-4174-9
Артикул: 778148.01.99
Настоящее учебно-методическое пособие является продолжением учебно-методических пособий «Информационные технологии. Базовые информационные технологии» и «Информационные технологии. Специальные информационные технологии». Его целью является знакомство студентов с основами программирования на языке C++. В пособии даны сведения, необходимые для изучения языка программирования C++ путем выполнения третьего цикла лабораторного практикума, а также содержатся материалы, позволяющие закрепить полученные знания путем выполнения курсовой работы по программированию. В учебно-методическом пособии предлагаются пошаговые инструкции к выполнению всех работ с опорой на специализированные учебные пособия. Оно будет полезно начинающим преподавателям информатики в качестве пособия, позволяющего организовать их работу.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 28.03.01: Нанотехнологии и микросистемная техника
- ВО - Магистратура
- 11.04.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ __________________________________________________________________________ А.В. ГРИДЧИН ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЕ НА C++ Учебно-методическое пособие НОВОСИБИРСК 2020
УДК 621.382-181.48 (075.8) Г 836 Рецензенты: канд. физ.-мат. наук, доцент Б.К. Богомолов канд. техн. наук, доцент Д.Н. Цветков Работа подготовлена на кафедре ППиМЭ и утверждена Редакционно-издательским советом университета в качестве учебно-методического пособия для студентов, обучающихся по программам подготовки бакалавров специальностей 11.04.04 «Электроника и наноэлектроника» и 28.03.01 «Нанотехнологии и микросистемная техника» Гридчин А.В. Г 836 Информационные технологии. Программирование на C++: учебно-методическое пособие / А.В. Гридчин. – Новосибирск: Изд-во НГТУ, 2020. – 68 с. ISBN 978-5-7782-4174-9 Настоящее учебно-методическое пособие является продолжением учебно-методических пособий «Информационные технологии. Базовые информационные технологии» и «Информационные технологии. Специальные информационные технологии». Его целью является знакомство студентов с основами программирования на языке C++. В пособии даны сведения, необходимые для изучения языка программирования C++ путем выполнения третьего цикла лабораторного практикума, а также содержатся материалы, позволяющие закрепить полученные знания путем выполнения курсовой работы по программированию. В учебно-методическом пособии предлагаются пошаговые инструкции к выполнению всех работ с опорой на специализированные учебные пособия. Оно будет полезно начинающим преподавателям информатики в качестве пособия, позволяющего организовать их работу. УДК 621.382-181.48 (075.8) ISBN 978-5-7782-4174-9 © Гридчин А.В., 2020 © Новосибирский государственный технический университет, 2020
ОГЛАВЛЕНИЕ 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C++ ................................... 4 1.1. Общие сведения ........................................................................................... 4 1.1.1. Основы алгоритмизации процессов ................................................. 4 1.1.2. Визуализация алгоритмов ................................................................. 8 1.1.3. Типы данных .................................................................................... 12 1.1.4. Библиотеки функций ....................................................................... 17 1.1.5. Как программа становится программой ........................................ 22 1.2. Общая цель и содержание практикума .................................................... 28 1.3. Порядок выполнения практикума ............................................................ 30 1.4. Содержание отчета .................................................................................... 32 1.5. Вопросы и практические задания на защиту ........................................... 33 1.5.1. Линейное программирование ......................................................... 33 1.5.2. Алгоритмы ветвления и выбора ..................................................... 35 1.5.3. Циклические алгоритмы ................................................................. 37 1.5.4. Работа с одномерными массивами ................................................. 39 1.5.5. Работа с динамическими двумерными массивами ....................... 41 1.5.6. Программирование с использованием строк ................................ 43 1.5.7. Программирование с использованием структур ........................... 45 1.5.8. Программирование с использованием функций ........................... 48 2. РАЗРАБОТКА ПРОГРАММ НА ЯЗЫКЕ С++ ............................................... 51 2.1. Общие сведения ......................................................................................... 51 2.2. Порядок выполнения работы .................................................................... 52 2.3. Рекомендуемый регламент выполнения работы ..................................... 53 2.4. Общие требования к оформлению работы .............................................. 54 2.5. Порядок сдачи отчета и защиты курсовой работы ................................. 55 2.6. Часто задаваемые вопросы (FAQ) ............................................................ 57 2.7. Типовые задания для выполнения курсовой работы .............................. 60 Материалы для разработки программ ............................................................. 66 Библиографический список ................................................................................. 67
1. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C++ 1.1. ОБЩИЕ СВЕДЕНИЯ 1.1.1. Основы алгоритмизации процессов Резкий рост уровня информатизации современного мира, в том числе оснащенности каждого отдельно взятого человека современными средствами вычислительной техники, в настоящее время не подлежит сомнению. Компьютеризируется все: мобильные телефоны, наручные часы, транспортные средства, дома, квартиры и офисы. По сути, все эти устройства представляют собой или включают в свой состав персональные компьютеры (ПК), оснащенные к тому же выходом в ГКС Интернет. Очевидно, что для успешной работы столь огромного количества компьютеров необходимы не только производственные мощности, на которых производятся эти ПК, но и огромное количество специалистов, разрабатывающих программное обеспечение (ПО) для этих ПК. Программное обеспечение (англ. Software) в отличие от аппаратного (англ. Hardware) не требует глубокого знания электроники и электротехники. Однако работа разработчика ПО требует ясной головы, т. е. умения логически мыслить, и на этом основании придумывать алгоритмы решения той или иной поставленной задачи. Алгоритмизация есть необходимый элемент нашей жизни, вытекающий из потребностей самого человека. Например, если у человека есть потребность в молоке, а при этом он живет в городе, то для реализации своей потребности он разрабатывает алгоритм, как это сделать. Это может быть следующая последовательность действий: Встать Одеться и обуться
Выйти из квартиры Спуститься по лестнице Выйти на улицу Дойти до магазина Выбрать молоко Расплатиться Дойти до дома Подняться по лестнице Войти в квартиру Разуться и снять верхнюю одежду Пройти в кухню Налить молоко в стакан Оставшееся молоко поставить в холодильник Этот алгоритм человек выполняет не задумываясь, исходя из своего собственного жизненного опыта. Аналогичным образом, не задумываясь, человек действует и во многих других ситуациях современной жизни. Любой специалист, зная свою профессию и находясь в рамках своей зоны ответственности, также способен действовать в любой, профессионально знакомой ему ситуации, и также способен действовать не задумываясь. Это экономит время, дает возможность выиграть его в тех случаях, когда этого времени просто нет: например, в случае стихийного бедствия, аварии, во время хирургической операции, в космосе, под водой и т. п. Человеку легко следовать уже кем-то придуманному алгоритму. Несравненно более трудно самому разрабатывать алгоритмы. Но именно это искусство и составляет основу того, что называется программированием. Многие, особенно пытающиеся изучать программирование самостоятельно, делают основной упор на изучение языков программирования (например, C#, Delphi или Java). Однако современный ПК есть совокупность трех основных систем: аппаратного обеспечения (в которое входит все так называемое «железо ПК»), лингвистического обеспечения (это и есть компьютерные языки программирования), а также математического обеспечения, которое и отвечает на вопросы: «Что считать?» и «Как считать?». Поэтому для изучения ПК на уровне пользователя, умеющего произвести несложные расчеты или сконструировать программу или сайт из готовых блоков, как это уже практикуется в мире, нет особой нужды задумываться о том, как, собственно говоря, считает ПК. Главное, что
он производит необходимые расчеты. Однако при таком подходе специалист привыкает мыслить шаблонно, что снижает ценность его как специалиста. Таким образом, для того чтобы изучить программирование на серьезном уровне, необходимо начинать вовсе не с языков программирования, а именно с алгоритмов. И лишь затем, разобравшись в вопросах: «Почему?» и «Для чего?» – приступать к изучению языков программирования. Для начала знакомства с алгоритмами разберем небольшой пример. Пусть имеется студент, которому задана курсовая работа по программированию. Есть поставленная задача, которую он должен решить к определенному сроку и притом решить ее с помощью составления программы на определенном языке программирования. Каковы должны быть в таком случае действия студента? Для ответа на этот вопрос рассмотрим возможности студента. Он может: во-первых, обратиться к старшекурсникам за уже готовой программой. Но в этом случае ему придется разобраться с текстом этой программы, не говоря уже о том, что в случае какого-либо сбоя в ее работе (например, при перенесении на другой ПК) ему придется налаживать ее работу. Если это случится, например, при защите курсовой работы, это будет очевидным знаком преподавателю, что этот студент, скорее всего, не сам делал свою работу. Он непременно попытается выяснить, так ли это, путем постановки вопросов по тексту программы. И если студент не разобрался в ее алгоритме работы, то его недостаточное знание немедленно будет обнаружено и оценено неудовлетворительной оценкой; во-вторых, заказать работу в какой-либо фирме. В этом случае студенту также придется разбираться с уже написанной программой. Для облегчения себе задачи он может обратиться за помощью к специалисту, но это увеличивает финансовые затраты и не всегда дает гарантии получения желаемого результата; в-третьих, найти подобную программу и переделать ее под свои потребности. В этом случае студент будет пользоваться алгоритмом, разработанным другим человеком либо приспособленным другим человеком под решение его задачи. Однако для приспособления того же алгоритма под решение уже новой задачи студенту потребуется, во-первых, понять, как именно решалась прежняя задача и какие именно команды требуется удалить из программы; во-вторых, понять,
какие команды поставить на место удаленных команд. Все это требует, по сути, двойной работы, поскольку вместо одной задачи приходится решать полторы, а то и две, а отчитываться, разумеется, только за одну. Мало того, требуется быть внимательным, чтобы где-нибудь в комментариях к программе не осталось того, что относилось к решению прежней задачи. Иначе это непременно вызовет подозрение у преподавателя и приведет студента к необходимости отвечать на дополнительные вопросы по программе; в-четвертых, написать программу самому от начала до конца и «с чистого листа». Этот способ – максимально трудоемок, требует вдумчивого подхода к решению задачи, но он – единственный, который гарантирует студенту максимальное понимание того, о чем программа и как она работает. При таком подходе естественным образом возникает необходимость в консультациях преподавателя либо обращении к специальной литературе (либо и то и другое вместе). Консультации преподавателя позволят студенту точнее двигаться по пути создания программы и вместе с этим снизить количество вопросов преподавателя при защите работы. Очевидно, что для студентов, ответственно относящихся к процессу своего образования, наилучшим образом подходит последний способ. Однако и в нем существуют определенные возможности, способные как усложнить, так и упростить решение поставленной задачи. Например, нам уже известно, что составление программы начинается с использования алгоритмов. Но как представить себе этот алгоритм? В виде последовательности команд на языке программирования? Но для этого нужно, по крайней мере, знать, какие именно команды могут нам потребоваться, а это опять упирается в необходимость понимания того же самого алгоритма. Можно попытаться, конечно, обойти эту трудность, просто представив себе мысленно необходимую последовательность действий, полагаясь при этом на свою собственную интуицию или уже имеющийся опыт в программировании. Но, как правило, такое возможно лишь для относительно простых алгоритмов. Если он достаточно сложен, то представить себе мысленно все его разветвления в виде некой единой разветвленной конструкции едва ли вообще представляется возможным. Поэтому сложные конструкции алгоритмов, как правило, визуализируют. Удобным способом такой визуализации являются блок-схемы.