Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Цифровая грамотность. В 2 частях. Ч.2. Разработка консольных приложений на языке программирования C. Учебное пособие.pdf
X
- •ВВЕДЕНИЕ
- •РЕКОМЕНДАЦИИ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ
- •ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ
- •Раздел 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ ЯЗЫКА C
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Тема 1.4. Массивы. Обработка массивов
- •Раздел 2. ОСНОВЫ МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С
- •Тема 2.1. Пользовательские функции
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Тема 2.3. Файловый ввод/вывод
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Задание 1.
- •Программный код:
- •Задание 2.
- •Программный код:
- •Задание 3.
- •Контрольные вопросы
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК

МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
«Омский государственный технический университет»
Н. А. Моисеева
ЦИФРОВАЯ ГРАМОТНОСТЬ
Учебное текстовое электронное издание
локального распространения
В двух частях
Часть 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
