Лабораторная работа № 1. Изучение операций языка Си. Программирование линейных и разветвляющихся алгоритмов
А.Ю. Быков
Решение задач на языке программирования Си с элементами языка Си++
Методические указания к лабораторным работам
по дисциплине «Алгоритмические языки»
для студентов направления 1005010065 – Компьютерная безопасность и 1005030065 – Информационная безопасность автоматизированных систем
Москва
(С) 2015 МГТУ им. Н.Э. БАУМАНА
УДК 004.43
Рецензент:
Быков А.Ю.
Решение задач на языке программирования Си с элементами языка Си++. М.: МГТУ имени Н.Э. Баумана, 2015. 116 с.
Методические указания являются руководством для выполнения лабораторных работ по дисциплине «Алгоритмические языки». Они охватывают основные средства языка программирования Си, иногда используются некоторые возможности языка Си++.
Пособие предназначено для студентов МГТУ имени Н.Э. Баумана, обучающихся по специальностям 1005010065 «Компьютерная безопасность» и 1005030065 «Информационная безопасность автоматизированных систем». Может быть полезна студентам других специальностей, интересующимися программированием.
Рекомендовано учебно-методической комиссией факультета «Информатика и системы управления» МГТУ им. Н.Э. Баумана
Быков Александр Юрьевич
Решение задач на языке
программирования Си с элементами языка Си++
© 2015 МГТУ имени Н.Э. Баумана
Оглавление
Введение. 5
1. Лабораторная работа № 1. Изучение операций языка Си. Программирование линейных и разветвляющихся алгоритмов. 7
1.1. Цель и задачи работы, требования к результатам ее выполнения. 7
1.2. Краткая характеристика объекта изучения. 7
1.2.1. Понятие переменной и типа данных. 7
1.2.2. Стандартные типы языка Си. 8
1.2.3. Объявления переменных в языке Си. 10
1.2.4. Константы в языке Си. 10
1.2.5. Операторы – выражения и операции языка Си. 14
1.2.6. Условный оператор. 18
1.2.6. Оператор - переключатель. 20
1.2.7. Некоторые функции ввода- вывода. 22
1.3. Задачи и порядок выполнения работы.. 28
1.4. Форма отчета по лабораторной работе. 29
1.5. Вопросы для самоконтроля. 30
2. Лабораторная работа № 2. Изучение операторов- циклов в языке Си. 31
2.1. Цель и задачи работы, требования к результатам ее выполнения. 31
2.2. Краткая характеристика объекта изучения. 31
2.3. Задачи и порядок выполнения работы.. 33
2.4. Форма отчета по лабораторной работе. 35
2.5. Вопросы для самоконтроля. 35
3. Лабораторная работа № 3. Изучение массивов в языке Си. 37
3.1. Цель и задачи работы, требования к результатам ее выполнения. 37
3.2. Краткая характеристика объекта изучения. 37
3.2.1. Одномерные массивы.. 37
3.2.2. Массивы и указатели. 38
3.2.3. Строки. 39
3.2.4. Динамические массивы.. 39
3.2.5. Многомерные массивы.. 40
3.3. Задачи и порядок выполнения работы.. 42
3.4. Форма отчета по лабораторной работе. 45
3.5. Вопросы для самоконтроля. 45
4. Лабораторная работа № 4. Изучение структурных типов языка Си. 46
4.1. Цель и задачи работы, требования к результатам ее выполнения. 46
4.2. Краткая характеристика объекта изучения. 46
4.3. Задачи и порядок выполнения работы.. 48
4.4. Форма отчета по лабораторной работе. 49
4.5. Вопросы для самоконтроля. 50
5. Лабораторная работа № 5. Изучение функций языка Си. 51
5.1. Цель и задачи работы, требования к результатам ее выполнения. 51
5.2. Краткая характеристика объекта изучения. 51
5.3. Задачи и порядок выполнения работы.. 55
5.4. Форма отчета по лабораторной работе. 57
5.5. Вопросы для самоконтроля. 57
6. Лабораторная работа № 6. Изучение динамических структур данных. Списки. 58
6.1. Цель и задачи работы, требования к результатам ее выполнения. 58
6.2. Краткая характеристика объекта изучения. 58
6.3. Задачи и порядок выполнения работы.. 59
6.4. Форма отчета по лабораторной работе. 62
6.5. Вопросы для самоконтроля. 62
7. Лабораторная работа № 7. Изучение стандартных функций ввода-вывода в языке Си. 63
7.1. Цель и задачи работы, требования к результатам ее выполнения. 63
7.2. Краткая характеристика объекта изучения. 63
7.2.1. Общие сведения о вводе-выводе. 63
7.2.2. Ввод- вывод в файлы.. 65
7.3. Задачи и порядок выполнения работы.. 69
7.4. Форма отчета по лабораторной работе. 71
7.5. Вопросы для самоконтроля. 71
8. Лабораторная работа № 8. Изучение приложений с графическим интерфейсом пользователя для Windows 72
8.1. Цель и задачи работы, требования к результатам ее выполнения. 72
8.2. Краткая характеристика объекта изучения. 72
8.2.1. Сообщения Windows. 72
8.2.2. Структура приложения в Windows. 73
8.2.3. Вывод графики в Windows. 74
8.3. Задачи и порядок выполнения работы.. 76
8.4. Форма отчета по лабораторной работе. 81
8.5. Вопросы для самоконтроля. 81
Заключение. 82
Рекомендуемые источники. 83
Приложение А. Варианты заданий для выполнения лабораторных работ. 84
Введение
Язык программирования Си, разработанный в США сотрудниками фирмы Bell Laboratories в начале 70-х годов для разработки операционной системы (ОС) UNIX, вместе с разработанным вслед за ним языком Си++, который дополнительно к возможностям языка Си включает объектно- ориентированные средства, является одним из наиболее распространенных языков программирования в мире. Первое описание языка дано его авторами Б. Керниганом и Д. Ритчи [1]. Язык Си иногда называют языком программирования «среднего» уровня. С одной стороны, язык поддерживает операции «низкого» уровня (операции над битами), а базовые типы отражают те же объекты, что и язык Ассемблера (байты, машинные слова, символы, строки). С другой стороны - имеет основные управляющие конструкции, присущие языкам «высокого» уровня. Таким образом, язык Си может использоваться как для решения системных задач, так и для решения прикладных задач (хотя язык создавался, прежде всего, для системного программирования). Язык программирования Си++ является расширением языка Си, т.е. включает в себя основные средства языка Си и новые возможности, в частности, поддерживает объектно- ориентированный подход в программировании.
Важность изучения языка Си (Си++) состоит также в том, что многие языки программирования, созданные позже для других целей, например, для разработки Интернет- приложений, наследовали основные элементы синтаксиса языка Си, так называемые, Си- подобные языки. К таким языкам можно отнести: Java, C# (Си шарп), PHP. Зная синтаксис языка Си, освоить данные языки можно достаточно быстро.
Методические указания к лабораторным работам включают в себя работы по решению прикладных задач на языке Си. Рассмотрены примеры решения задач с использованием следующих синтаксических конструкций и возможностей языка: операции языка для расчета выражений, условный оператор, операторы циклов, массивы, структуры, функции, динамические структуры данных, функции ввода-вывода в файлы. В конце рассмотрен пример приложения с графическим интерфейсом пользователя для ОС Windows.
При выполнении лабораторных работ целесообразно использовать программный продукт Microsoft Visual Studio версии 2013 или более поздних. Студент может этот программный продукт получить бесплатно, воспользовавшись программой DreamSpark (бывшая MSDN AA) [2], для этого достаточно зарегистрироваться на сайте библиотеки МГТУ им. Н.Э. Баумана.
При подготовке отчета по каждой лабораторной работе необходимо последовательно и полно представить все основные шаги алгоритма решения задачи. В тексте программы необходимо представить необходимые комментарии. Студент должен быть знаком с понятием алгоритма и быть способным ответить на предложенные ему контрольные вопросы.
Типовые варианты лабораторных работ представлены в приложении А. Студент выбирает свой вариант в соответствии с номером в списке группы, представленном в системе «Электронный университет».
Целевая аудитория методических указаний - студенты МГТУ имени Н.Э. Баумана, обучающиеся по специальностям 1005010065 «Компьютерная безопасность» и 1005030065 «Информационная безопасность автоматизированных систем», также методические указания могут быть использованы студентами других специальностей, занимающимися программированием.
Лабораторная работа № 1. Изучение операций языка Си. Программирование линейных и разветвляющихся алгоритмов