Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цифровая грамотность. В 2 частях. Ч.2. Разработка консольных приложений на языке программирования C. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
«Омский государственный технический университет»
Н. А. Моисеева
Учебное текстовое электронное издание
локального распространения
В двух частях
Часть 2. РАЗРАБОТКА КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ
НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ C
Рекомендовано редакционно-издательским советом
Омского государственного технического университета
Омск
Издательство ОмГТУ
2023
————————————————————————————————
Сведения об издании: 1, 2
© ОмГТУ, 2023
ISBN 978-5-8149-3703-2 (ч. 2)
ISBN 978-5-8149-3701-8
1
УДК 004(075) ББК 32.81я73
М74
Сибирского автомобильно-дорожного университета (СибАДИ);
Рецензенты:
З. В. Семенова, доктор пед. наук,
проф., зав. каф. информационной безопасности
Т. В. Аршба, канд. пед. наук, доцент
каф. информатики и методики обучения информатике ОмГПУ
Моисеева, Н. А. Цифровая грамотность : учеб. пособие : в 2 ч. / Н. А. Моисеева ;
Минобрнауки России, Ом. гос. техн. ун-т. – Омск : Изд-во ОмГТУ, 2023. – Систем. тре­бования: процессор с частотой 800 МГц и выше ; 128 Мб RAM и более ; свободное место на жестком диске 300 Мб и более ; Linux / Windows XP и выше ; MacOS X 10.4 и выше ; CD/DVD-ROM-дисковод ; ПО для просмотра pdf- и mp4-файлов. – Загл. с титул. экрана. – ISBN 978-5-8149-3701-8.
Ч. 2 : Разработка консольных приложений на языке программирования C. –
2023. – CD-ROM (1,88 Мб) : ил. – ISBN 978-5-8149-3703-2.
Учебное пособие состоит из двух частей. Вторая часть посвящена изучению ба-
зовых технологий программирования на примере языка C.
Предназначено для студентов всех форм обучения инженерно-технических спе-
циальностей и направлений подготовки, в том числе направлений 11.03.01 «Радио­техника», 11.03.02 «Инфокоммуникационные технологии и системы связи», 11.03.03 «Конструирование и технология электронных средств», 11.03.04 «Электроника и наноэлектроника», 12.03.01 «Приборостроение».
Редактор Е. Н. Завьялова
Компьютерная верстка Ю. П. Шелехиной
Для дизайна этикетки использованы материалы
из открытых интернет-источников
——————————————––––––––––––—————————————————
Сводный темплан 2023 г. © ОмГТУ, 2023 Подписано к использованию 23.09.23. Объем 1,88 Мб.
2
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ......................................................................................................... 5
РЕКОМЕНДАЦИИ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ .......... 6
ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ .............................. 6
Раздел 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ ЯЗЫКА C ........... 7
Введение в программирование консольных приложений на языке C... 7
Тема 1.1. Программирование линейных вычислительных процессов .. 8
Контрольные вопросы ...................................................................................... 18
Лабораторная работа № 1. ФУНКЦИИ ВВОДА-ВЫВОДА.
ЛИНЕЙНЫЕ ВЫЧИСЛЕНИЯ ........................... 19
Контрольные вопросы ...................................................................................... 25
Тема 1.2. Программирование разветвляющихся вычислительных
процессов .................................................................................. 26
Контрольные вопросы ...................................................................................... 30
Лабораторная работа № 2. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЕННЫХ АЛГОРИТМОВ.............. 31
Контрольные вопросы ...................................................................................... 39
Тема 1.3. Программирование циклических вычислительных
процессов .................................................................................. 39
Контрольные вопросы ...................................................................................... 43
Лабораторная работа № 3. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ
АЛГОРИТМОВ С ЗАДАННЫМ ЧИСЛОМ
ПОВТОРЕНИЙ .................................................. 43
Контрольные вопросы ...................................................................................... 51
Лабораторная работа № 4. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ
АЛГОРИТМОВ С ПРЕДУСЛОВИЕМ ............ 51
Контрольные вопросы ...................................................................................... 55
Лабораторная работа № 5. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ
АЛГОРИТМОВ С ПОСТУСЛОВИЕМ ............. 55
Контрольные вопросы ...................................................................................... 59
Тема 1.4. Массивы. Обработка массивов................................................ 59
3
Лабораторная работа № 6 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ
ОБРАБОТКИ ОДНОМЕРНЫХ МАССИВОВ . 63
Лабораторная работа № 7. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ
ОБРАБОТКИ ДВУМЕРНЫХ МАССИВОВ .... 68
Раздел 2. ОСНОВЫ МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ
НА ЯЗЫКЕ С .................................................................................... 73
Тема 2.1. Пользовательские функции ..................................................... 73
Контрольные вопросы ...................................................................................... 76
Лабораторная работа № 8. ПРОГРАММИРОВАНИЕ
ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ ............. 77
Контрольные вопросы ...................................................................................... 81
Тема 2.2. Модульное программирование с использованием функций в
языке C ...................................................................................... 81
Контрольные вопросы ...................................................................................... 83
Лабораторная работа № 9. ОСНОВЫ РАБОТЫ С МОДУЛЯМИ
НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С ....... 84
Контрольные вопросы ...................................................................................... 86
Тема 2.3. Файловый ввод/вывод .............................................................. 87
Контрольные вопросы ...................................................................................... 89
Лабораторная работа № 10. РАБОТА С ФАЙЛАМИ НА ЯЗЫКЕ
ПРОГРАММИРОВАНИЯ С ........................... 89
Контрольные вопросы ...................................................................................... 92
Тема 2.4. Создание консольного приложения с элементами
информационной безопасности .............................................. 92
Контрольные вопросы ...................................................................................... 98
Лабораторная работа № 11. ОСНОВЫ ПРОГРАММИРОВАНИЯ
ЗАЩИЩЕННОГО КОНСОЛЬНОГО
ПРИЛОЖЕНИЯ ................................................. 98
Контрольные вопросы .................................................................................... 102
ЗАКЛЮЧЕНИЕ ............................................................................................... 103
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ........................................................... 104
4

ВВЕДЕНИЕ

Современное глобальное информационное общество характеризуется интенсивными процессами цифровизации всех его сфер, особенно про­мышленного сектора, обусловленными цифровизацией экономики как од­ного из следствий Industry 4.0. На смену информационной грамотности пришла цифровая грамотность. В этой связи современный специалист должен обладать развитыми цифровыми компетенциями, которые способ­ствуют повышению уровня его цифровой грамотности и, тем самым, поз­воляют ему эффективно и безопасно применять как фундаментальные, так и современные цифровые технологии при решении задач профессиональ­ной деятельности.
Одно из важнейших направлений научно-технического прогресса – интенсивная разработка цифровых продуктов, в том числе программного обеспечения для современной промышленности в условиях цифровой экономики. Учебное пособие «Цифровая грамотность» состоит из двух частей. Вторая часть посвящена изучению базовых технологий програм­мирования на примере языка C и основ информационной безопасности, что крайне необходимо для понимания современным специалистом инже­нерно-технического профиля процесса создания программных средств, функционирующих в безопасном режиме.
Во второй части учебного пособия «Цифровая грамотность» студенту предлагается освоить следующие разделы, сопровождающиеся соответ­ствующими лабораторными работами и контрольными вопросами:
– Раздел 1. «Основы программирования в среде языка C»;
– Раздел 2. «Основы модульного программирования»;
– Раздел 3. «Создание консольного приложения с элементами инфор- мационной безопасности».
5

РЕКОМЕНДАЦИИ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ

При выполнении заданий придерживайтесь следующих правил.
1. Определяйте тип данных для используемых в программе перемен-
ных, принимая во внимание диапазон значений и необходимую точность
представления цифровых данных.
2. Формируйте переменным имена идентификаторов, которые отра-
жают их назначение.
3. При вводе данных с клавиатуры выводите на экране пояснения, что нужно ввести, т. е. организуйте диалог. Для контроля сразу после ввода выводите исходные данные на дисплей (хотя бы в процессе отладки).
4. До запуска программы подготовьте тестовые примеры, содержащие исходные данные и ожидаемые результаты. Отдельно проверьте реакцию программы на заведомо неверные исходные данные. Для таких ситуаций необходимо предусмотреть вывод сообщений, например: «Ошибка! Реше­ния нет».
5. При составлении выражений учитывайте приоритет используемых операций.
6. В функциях ввода/вывода scanf() и printf() для каждой переменной указывайте спецификацию формата, соответствующую ее типу.
7. При использовании стандартных функций с помощью директивы препроцессору include подключите к программе соответствующие заголо­вочные файлы.

ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ

1. Постройте графическую схему алгоритма (ГСА) решения задачи в каждом задании.
2. Подготовьте текст программы на языке программирования C.
3. Откомпилируйте программу, при необходимости исправьте синтак- сические ошибки.
4. Оформите отчет о выполненной лабораторной работе, в который
включите: титульный лист с указанием номера и темы лабораторной рабо­ты, формулировку задачи, ГСА, тексты программ, скрины результатов выполнения программ. К отчету приложите файлы программ.
6
Раздел 1

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ ЯЗЫКА C

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ КОНСОЛЬНЫХ
ПРИЛОЖЕНИЙ НА ЯЗЫКЕ C
Язык программирования C – это процедурный императивный язык программирования общего назначения, разработанный в 1972 г. Деннисом М. Ритчи из Bell Telephone Laboratories для операционной системы UNIX.
Он делит первое место по популярности с языком программирования Java, который также не менее популярен и наиболее широко используется современными программистами.
На сегодняшний день существует достаточно много сред программи­рования, позволяющих разрабатывать консольные приложения с помо­щью языка программирования высокого уровня С.
Сперва рассмотрим разницу между консолью, Windows, web-прило­жениями и web-сервисами.
Консольные приложения – легкие программы, запускаемые в окне командной строки (DOS).
Приложения Windows – стандартные настольные приложения Windows, основанные на форме, для обычных повседневных задач.
Web-приложения – программы, которые раньше запускались внутри некоторого web-сервера (например, IIS) для выполнения пользовательских запросов по протоколу http. Пример: Google.
Web-сервисы – web-приложения, которые предоставляют услуги другим приложениям через интернет. Например, web-служба поисковой системы Google позволяет другим приложениям делегировать задачу по­иска в интернете web-службе Google и использовать полученный ею ре­зультат в своих собственных приложениях.
7
Для работы с языком программирования C используются интегриро-
ванные среды разработки C/C++ (Integrated Development Environment, IDE), большинство из которых является бесплатными и с открытым исходным ко­дом и имеет всемирное сообщество пользователей и разработчиков. Напри­мер, Microsoft Visual Studio, NetBeans, Code::Blocks, Dev-C++.
На рис. 1 представлен пример создания проекта для разработки кон-
сольных приложений на языке программирования C.
Рис. 1. Диалоговое окно создания консольного приложения в IDE Dev-C++
ТЕМА 1.1. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Линейный вычислительный процесс – процесс, в котором все опе-
раторы выполняются последовательно друг за другом.
Оператор – символ, который указывает компьютеру выполнить
определенные математические или логические операции. Он используется в программах для управления данными и переменными. Простыми слова­ми, операторы – слова или символы, которые заставляют программу что­то делать с переменной.
8
Например: a + b, где a и b – операнды или элементы данных, «+» –
+
Сложение
А + В = 30
−
Вычитание
А - В = -10
*
Умножение
А * В = 200
/
Деление
B / А = 2
%
Остаток от деления
В % А = 0
Оператор инкремента увеличивает целочис­ленное значение на единицу
А++ = 11
Оператор декремента уменьшает целочислен-
А-- = 9
оператор.
Операторы C подразделяются на несколько категорий, а именно:
1. Арифметические операторы.
2. Операторы сравнения.
3. Логические операторы.
4. Побитовые операторы.
5. Операторы присваивания.
6. Прочие операторы.
Рассмотрим некоторые операторы.
Арифметические операторы выполняют математические вычисления с операндами. В табл. 1 показаны все арифметические операторы, под­держиваемые языком C. Предположим, что переменная A = 10, а пере­менная B = 20.
Арифметические операторы
Оператор Описание Пример
++
--
ное значение на единицу
Приоритет операторов в C
Таблица 1
Приоритет оператора определяет группировку терминов в выражении и определяет способ оценки выражения. Некоторые операторы имеют бо­лее высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения.
9
Например: х = 7 + 3 * 2. Здесь x присваивается 13, а не 20, потому что
char
1 байт
–128…127 или 0…255
int
2 или 4 байта
–32,768…32,767 или –2,147,483,648…2,147,483,647
short
2 байта
–32,768…32,767
long
8 байтов
–9223372036854775808…9223372036854775807
оператор * имеет более высокий приоритет, чем +, поэтому он сначала умножается: 3*2, а затем добавляется к 7.
Здесь операторы с наивысшим приоритетом отображаются в верхней
части таблицы, а с наименьшим – в нижней. Внутри выражения операторы с более высоким приоритетом будут оцениваться первыми.
Типы данных
Типы данных используются для объявления переменных или функций
различных типов. Тип переменной определяет, сколько места она занима­ет в памяти и как интерпретируется сохраненная битовая комбинация. Ти­пы данных в C можно классифицировать следующим образом.
Основные типы: арифметические типы; подразделяются на: (а) це-
лые типы и (б) типы с плавающей запятой.
Перечисленные типы: арифметические типы, и они используются
для определения переменных, которые могут присваивать только опреде­ленные дискретные целочисленные значения во всей программе.
Тип пустоты: спецификатор типа void указывает, что значение недо-
ступно.
Производные типы: включают в себя (а) типы указателей, (б) типы
массивов, (в) типы структур, (г) типы объединений и (д) типы функций.
В табл. 2 и 3 представлены целые типы и с плавающей запятой соот-
ветственно.
Таблица 2
Целые типы
Тип данных Размер Диапазон значений
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]