Основы программирования
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Новосибирский государственный технический университет
Год издания: 2020
Кол-во страниц: 66
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-4089-6
Артикул: 778156.01.99
В учебном пособии подробно рассмотрены все этапы решения задач по основам программирования, приведены рекомендации по выполнению и варианты практических заданий. Предназначено для студентов I курса ФПМИ направлений 01.03.02 - Прикладная математика и информатика; 02.03.03 - Математическое обеспечение и администрирование информационных систем.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.03: Механика и математическое моделирование
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Ю.В. ТРАКИМУС, В.П. ХИЦЕНКО ОСНОВЫ ПРОГРАММИРОВАНИЯ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2020
УДК 004.42(075.8) Т 652 Рецензенты: д-р техн. наук, профессор кафедры ПМт М.Э. Рояк канд. техн. наук, доцент кафедры ТПИ И.Л. Еланцева Работа подготовлена на кафедре прикладной математики НГТУ Тракимус Ю.В. Т 652 Основы программирования: учебное пособие / Ю.В. Тракимус, В.П. Хиценко. – Новосибирск: Изд-во НГТУ, 2020. – 66 с. ISBN 978-5-7782-4089-6 В учебном пособии подробно рассмотрены все этапы решения задач по основам программирования, приведены рекомендации по выполнению и варианты практических заданий. Предназначено для студентов I курса ФПМИ направлений 01.03.02 – Прикладная математика и информатика; 02.03.03 – Математическое обеспечение и администрирование информационных систем. УДК 004.42(075.8) ISBN 978-5-7782-4089-6 © Тракимус Ю.В., Хиценко В.П., 2020 © Новосибирский государственный технический университет, 2020
ОГЛАВЛЕНИЕ Основные этапы компьютерного решения задач ............................................ 5 Понятие алгоритма ............................................................................................... 5 Этапы компьютерного решения задачи .............................................................. 7 Алгоритм решения задачи .................................................................................. 14 Рекомендации по выполнению ПЗ ................................................................... 17 Требования к выполнению ПЗ ........................................................................... 17 Формализация и анализ задачи .......................................................................... 18 Структуры данных .............................................................................................. 21 Описание алгоритма ........................................................................................... 22 Разработка и структура программы .................................................................. 24 Отладка программы ............................................................................................ 25 Оформление отчета и защита ПЗ ...................................................................... 26 Варианты для ПЗ ................................................................................................. 28 Геометрия ............................................................................................................ 28 Матрицы и векторы ............................................................................................ 32 Об отступах в текстах программ ....................................................................... 35 Рекомендации по программированию ............................................................. 37 Принципы машинной обработки данных ......................................................... 38 Введение в программирование на С .................................................................. 39 Структурная разработка программ .................................................................... 42 Управление программой .................................................................................... 45
Функции ............................................................................................................... 47 Массивы ............................................................................................................... 52 Указатели ............................................................................................................. 54 Символы и строки ............................................................................................... 57 Форматированный ввод/вывод .......................................................................... 58 Структуры, объединения, операции с битами и перечисления ...................... 60 Работа с файлами ................................................................................................ 62 Библиографический список ............................................................................... 64
ОСНОВНЫЕ ЭТАПЫ КОМПЬЮТЕРНОГО РЕШЕНИЯ ЗАДАЧ Понятие алгоритма В основе решения задачи на ЭВМ лежит понятие алгоритма. Алгоритм – это конечный набор правил, задающих последовательность необходимых для решения задачи действий, при этом понятных исполнителю этих действий. Кроме того, алгоритм должен удовлетворять целому ряду требований (или, иначе говоря, обладать целым рядом свойств). Приведем важнейшие из них. – Конечность. Алгоритм должен завершаться после выполнения конечного числа шагов и не просто конечного, а достаточно ограниченного, разумного числа шагов. – Определенность. Каждый шаг алгоритма должен быть определен строго и недвусмысленно, поэтому для описания алгоритма используются формально определенные способы – от графического представления, например на языке блок-схем, до специально разработанных языков описания алгоритма. Конечным этапом описания алгоритма является язык программирования, или машинный язык (язык машинных команд). Современные языки программирования высокого уровня задают небольшой набор действий, каждое из которых определено строго, формально и в соответствии с технологией структурного программирования: у каждого действия один вход и один выход. Это позволяет создавать алгоритмы, которые можно читать как обычный текст – сверху вниз. Для описания алгоритма часто используются так называемые псевдоязыки программирования. Псевдоязык (псевдокод) – язык описания алгоритма, использующий управляющие структуры (операторы) какого-то языка программирования, но опускающий несущественные для понимания алгоритма человеком подробности и строгий синтаксис,
позволяющий также использовать понятия и действия, свойственные предметной области задачи. Такими несущественными деталями, могут быть описания переменных, системно зависимый код (ввод-вывод значений и подпрограммы). Главная цель использования псевдоязыка – сделать описание алгоритма более воспринимаемым человеком, чем текст на языке программирования. Псевдоязык удобно использовать на начальных стадиях обучения программированию. Описание алгоритма можно делать с разной степенью детализации в зависимости от своего профессионального опыта, практических навыков, новизны задачи. Если задача является новой, то алгоритм описывается, как правило, в несколько этапов: сначала крупно с целью уяснения основных действий, а затем более детально, пока они не окажутся выраженными в терминах действий, понятных исполнителю алгоритма (т. е. когда отвечаем на вопрос, как это реализовать на языке исполнителя алгоритма). В нашем случае в терминах действий языка программирования высокого уровня. – Ввод. Алгоритм имеет некоторое число (иногда возможно равное нулю) входных данных, т. е. величин, значения которых должны быть известны к моменту решения задачи. Значения этих величин являются результатами каких-то измерений, исследований, опросов специалистами предметной области задачи. В алгоритме входные данные задаются как результат действия, которое называется чтение значений из внешней среды компьютера, т. е. с внешних устройств компьютера. – Вывод. У алгоритма должны быть выходные данные, т. е. величины, значения которых вычисляются в процессе решения задачи и могут быть интерпретированы как результаты решения специалистами задачи из предметной области. Выходные данные имеют вполне определенную связь с входными данными. Поставленная задача не всегда может быть решена, но и в этом случае алгоритм должен иметь выходные данные, которые своим значением сообщают об этом. – Эффективность. Определяет качество алгоритма. Алгоритм считается эффективным, если он удовлетворяет критериям эффективности. Одним из них является время, необходимое для его выполнения; другим важным критерием является объем оперативной памяти (ОП), используемой в процессе компьютерного решения. Критериями качества также могут быть читабельность алгоритма, наглядность, надежность,
массовость, адаптируемость к различным изменениям (например, к различным компьютерам). Часто одну и ту же задачу можно решить с помощью нескольких алгоритмов и нужно выбирать наилучший из них в соответствии с выбранным критерием эффективности. Оценка эффективности алгоритма требует исследования (анализа) алгоритма с целью получения его количественных характеристик, таких как время выполнения, объем оперативной памяти, и позволяет получить важную характеристику алгоритма – оценку его сложности. Алгоритм может быть использован для определения целого ряда математических понятий главным образом для того, чтобы определить новое действие (операцию) через ранее известные действия. Это позволяет расширить набор операций исполнителя, вводя в употребление более крупные и свойственные предметной области действия. Это свойство алгоритма на языке программирования реализуется механизмом подпрограмм и позволяет осуществлять декомпозицию задачи. Этапы компьютерного решения задачи Анализ задачи Перед началом разработки алгоритма решения необходимо внимательно прочитать и проанализировать условие задачи, чтобы понять всю сложность проблемы и выработать подходы к ее решению. Анализ задачи включает ответы на три основных вопроса. – Что дано? Ответ на этот вопрос состоит в определении входных данных задачи. Входные данные задаются перечислением имен переменных, значения которых надо знать, чтобы решить задачу, а также описанием свойств переменных. Значения входных данных поступают из внешней среды, т. е. вводятся с внешнего устройства компьютера. Главные свойства, которые необходимо отметить, это структура значения величины (простая или сложная), множество значений величины. – Что будет результатом решения? Ответ на этот вопрос состоит в определении выходных данных задачи: выходные данные задаются перечислением имен переменных, значения которых надо вычислить как результат задачи, а также описанием их свойств. Главные свойства: структура значения величины (простая или сложная), множество значений величины.