Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплексное пособие Си.pdf
Скачиваний:
62
Добавлен:
12.03.2015
Размер:
1.57 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПРИОРИТЕТНЫЙ НАЦИОНАЛЬНЫЙ ПРОЕКТ «ОБРАЗОВАНИЕ»

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. А.Н.ТУПОЛЕВА

А.Р. БИКМУРЗИНА, К.В. ШЕРШУКОВ

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C (Программирование на языке высокого уровня, часть 2)

Комплексное учебное пособие

КАЗАНЬ

2009

УДК 681.3.06

Бикмурзина А.Р., Шершуков К.В.

Основы программирования на языке С: Учебное пособие. – Казань: Изд-во Казан. техн. ун-та, 2009. – 215 с.

Излагаются основы алгоритмизации и программирования на языке высокого уровня на примере языка C.

Учебное пособие содержит краткое описание основных средств языка С, примеры различных программ. Даются указания по самостоятельной работе студентов и выполнению курсовой работы. Изложение рассчитано на начинающих изучение программирования.

Для студентов специальностей «Автоматизированные системы обработки информации и управления», «Вычислительные машины, комплексы, системы и сети», «Программное обеспечение вычислительной техники и автоматизированных систем», направления подготовки бакалавров «Информатика и вычислительная техника» и других лиц, изучающих программирование.

Табл. - , Ил. - , Библиогр. - 6 назв.

©Бикмурзина Альфия Рустемовна, 2009

©Шершуков Кирилл Вячеславович, 2009

2

Содержание

 

Предисловие.............................................................................................................

6

Знакомство с языком C ...........................................................................................

9

Структура программы........................................................................................

10

Пример простой программы .............................................................................

10

Более сложный пример......................................................................................

11

Контрольные вопросы .......................................................................................

15

Основные понятия, объявление переменных, типы данных............................

16

Объявление переменных ...................................................................................

18

Основные типы данных.....................................................................................

19

Производные типы. ............................................................................................

21

Контрольные вопросы .......................................................................................

23

Ввод/вывод с помощью функций printf() и scanf(). ...........................................

25

Модификаторы спецификаций преобразования используемые в функции

 

printf()...................................................................................................................

27

Применение функции scanf() ............................................................................

29

Контрольные вопросы .......................................................................................

31

Операции................................................................................................................

32

Простейшие арифметические операции..........................................................

32

Операция присваивания.....................................................................................

33

Использование в выражениях операндов разных типов................................

33

Операции преобразования типов......................................................................

34

Дополнительные арифметические операции ..................................................

34

Дополнительные операции присваивания.......................................................

35

Операции отношения.........................................................................................

36

Логические операции.........................................................................................

37

Приоритеты операций........................................................................................

38

Контрольные вопросы .......................................................................................

38

Операторы..............................................................................................................

40

Оператор-выражение .........................................................................................

40

Ветвление............................................................................................................

40

Циклы ..................................................................................................................

47

Другие операторы...............................................................................................

49

Контрольные вопросы .......................................................................................

51

Обработка числовых последовательностей........................................................

53

Последовательная обработка............................................................................

53

Последовательность исходных данных может задаваться: ..............................

53

Обработка числовых последовательностей.....................................................

53

Примеры..............................................................................................................

56

Контрольные вопросы .......................................................................................

60

Последовательная обработка символьных данных...........................................

61

Символьные данные...........................................................................................

61

Последовательная обработка символов...........................................................

62

3

Функции getchar( ) и putchar( ) ......................................................................

62

Контрольные вопросы .......................................................................................

64

Обработка массивов..............................................................................................

66

Массивы ..............................................................................................................

66

Объявление массива...........................................................................................

66

Использование и обработка массивов.............................................................

68

Примеры..............................................................................................................

69

Контрольные вопросы .......................................................................................

73

Указатели и динамические массивы...................................................................

75

Указатели.............................................................................................................

75

Динамическое выделение памяти.....................................................................

80

Статические и динамические массивы ............................................................

83

Контрольные вопросы .......................................................................................

84

Подпрограммы.......................................................................................................

85

Описание подпрограмм .....................................................................................

85

Параметры подпрограмм...................................................................................

89

Область действия переменных..........................................................................

91

Примеры..............................................................................................................

91

Контрольные вопросы .......................................................................................

95

Рекурсивные функции ..........................................................................................

97

Понятие рекурсивной функции ........................................................................

97

Контрольные вопросы .......................................................................................

98

Символьные строки и функции обработки строк..............................................

99

Посимвольная обработка строк......................................................................

102

Контрольные вопросы .....................................................................................

105

Структуры............................................................................................................

106

Тип данных структура .....................................................................................

106

Контрольные вопросы .....................................................................................

109

Работа с файлами.................................................................................................

111

Примеры............................................................................................................

115

Контрольные вопросы .....................................................................................

117

Массивы и функции как параметры..................................................................

118

Указатели на функции .....................................................................................

118

Массивы и указатели........................................................................................

119

Указатели и двумерные массивы....................................................................

121

Пример...............................................................................................................

124

Контрольные вопросы .....................................................................................

124

Технологии программирования.........................................................................

126

Структурное программирование....................................................................

126

Модульное программирование.......................................................................

127

Объектно-ориентированное программирование...........................................

127

Компонентное программирование.................................................................

128

Структурная декомпозиция задачи и разработка алгоритмов и программ

 

методами сверху вниз и снизу вверх..............................................................

128

Контрольные вопросы .....................................................................................

132

4

Модульное программирование..........................................................................

134

Контрольные вопросы .....................................................................................

140

Работа с графикой на языке C и модуль graphics.h..........................................

141

Типы видео мониторов и их режимы.............................................................

141

Инициализация графики..................................................................................

141

Система координат...........................................................................................

143

Основные графические функции....................................................................

143

Задание на расчетно-графическую работу.......................................................

146

Порядок выполнения работы..........................................................................

146

Задание ..............................................................................................................

146

Варианты индивидуальных заданий..............................................................

147

Задания на курсовую работу..............................................................................

164

Требования к курсовой работе........................................................................

164

Этапы разработки программ...........................................................................

165

Содержание отчета по курсовой работе ........................................................

169

Задания к курсовой работе..............................................................................

169

Литература...........................................................................................................

180

Приложение 1. Некоторые библиотечные функции языка C .........................

181

Функции консольного ввода/вывода..............................................................

181

Функции обработки строк...............................................................................

183

Функции преобразования данных..................................................................

185

Приложение 2. Пример оформления отчета по РГР........................................

188

Приложение 3. Пример оформления по курсовой работе..............................

197

5

Предисловие

Данный УМК предназначен для изучения дисциплины «Программирование на языке высокого уровня» студентами направления 230100 «Информатика и вычислительная техника» и специальностей 230102 “Автоматизированные системы обработки информации и управления”, 230101 “Вычислительные машины, комплексы, системы и сети” (очнозаочной и заочной форм обучения). Дополнительно УМК содержит необходимые компоненты для дистанционного обучения.

Дисциплина «Программирование на языке высокого уровня» является базовой дисциплиной для подготовки специалистов в различных областях знаний, связанных с компьютерными технологиями (Computing). В зависимости от поставленной цели, содержание дисциплины, последовательность изложения материала, методика преподавания могут несколько различаться.

В настоящее время, на кафедре Прикладной математики и информатики (ПМИ) учебный процесс ориентирован на подготовку специалистов в области программной инженерии (Software Engineering) и в соответствии с международными стандартами семейства Computing Curricula, дисциплина «Программирование на языке высокого уровня» соответствует дисциплинам

«CS101I. Programming Fundamentals» («Основы программирования») и «SE201. Introduction to Software Engineering» («Введение в программную инженерию»). Данный УМК посвящен второй части дисциплины «Программирование на языке высокого уровня. Основы программирования», изучаемой во втором семестре. Первая часть изучается в первом семестре и описывается в УМК «Основы программирования на языке Pascal».

На кафедре Автоматизированных систем обработки информации и управления (АСОИУ) учебный процесс ориентирован на подготовку специалистов в области автоматизированных систем обработки информации и управления и информационных технологий (Information Technology) и в

6

соответствии с международными стандартами семейства Computing Curricula, дисциплина «Программирование на языке высокого уровня» соответствует дисциплинам «CS101I. Programming Fundamentals» («Основы программирования») и «CS103I. Data Structures and Algorithms» («Структуры данных и алгоритмы»). Последняя изучается на кафедре ПМИ отдельно.

Кроме того, материал дисциплины может быть изложен с использованием разных базовых языков программирования. Традиционно на кафедре АСОИУ используется язык C, в то время как на кафедре ПМИ практикуется многоязыковый подход.

Авторы данного УМК ставили перед собой задачу максимального удовлетворения потребностей различных кафедр и разработали вариативный УМК, допускающий различные подходы к преподаванию дисциплины, в том числе выбор в качестве базового языка Pascal или C, либо их сочетания.

Содержание УМК: основы программирования на языке C, обработка массивов, строк, работа с файлами и динамическими структурами, технологии и методы программирования .

Комплексное пособие содержит теоретический материал по языку программирования C (включая большое количество примеров), рассчитанный на 36 часов лекций, методические указания по РГР и курсовой работе с примером отчета и заданиями.

Конспект лекций адаптирован к дистанционной форме обучения и включает в себя материалы двух семестров обучения (52 часа лекций). Содержание соответсвует действующей на кафедре АСОИУ рабочей программе заочного и очно-заочного обучения.

Лабораторные работы, приведенные в «Методических указаниях по выполнению лабораторных работ», как правило, рассчитаны на выполнение как на языке C (базовый язык данного УМК), так и на языке Pascal. Исключением является первая работа, посвященная основам работы в среде Turbo C. Остальные работы развивают навыки алгоритмизации и программирования, полученные в первом семестре, не дублируя материалы и

7

задания лабораторных работ изложенных в УМК «Основы программирования на языке Pascal».

Всего разработано 9 лабораторных работ, что превышает количество, указанное в учебном плане (на данный момент во втором семестре предусмотрено выполнение 4-х работ). Таким образом, преподаватель получает возможность выбора лабораторных работ и построения учебного процесса в соответствии с поставленной задачей.

При необходимости, в состав лабораторных работ можно включить работы, приведённые в УМК «Программирование и структуры данных», для охвата тематики связанной с построением структур данных и алгоритмами их обработки.

УМК соответсвует требованиям по организации дистанционного обучения и включает в себя руководство дополнительно глоссарий, справочные материалы.

УМК ориентирован на подготовку специалистов по профессиям «Программист», «Системный архитектор», «Системный аналитик», «Специалист по информационным системам» в соответствии с квалификационными требованиями стандарта.

Всоответствии с компетентностной моделью бакалавра, определяемой требованиями работодателей, в области информатики и вычислительной техники, в результате изучения дисциплины студенты должны получить навыки практического программирования на языке C.

Всоответствии с техническим заданием в разрабатываемый УМК включаются: компьютерные презентации лекций и лабораторных работ и курсовой работы, позволяющие повысить наглядность и качество изложения учебного материала, вопросы для автоматизированной системы тестирования.

8