Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (ОАиП).doc
Скачиваний:
82
Добавлен:
11.05.2015
Размер:
3 Мб
Скачать

М. П. Батура, В. Л. Бусько, А. Г. Корбит, Т. М. Кривоносова

Основы алгоритмизации и программирования. Язык Си

Допущено Министерством образования Республики Беларусь

в качестве учебного пособия

для студентов учреждений, обеспечивающих получение

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

«Автоматизированные системы обработки информации»,

«Электронные вычислительные средства»,

«Инженерно-психологическое обеспечение информационных технологий»

Минск БГУИР 2007

УДК 621.3 (075.8)

ББК 22.193 я 73

Б 28

Р е ц е н з е н т ы :

зав. кафедрой алгоритмики и дискретной математики БГУ,

д-р техн. наук, проф. В. М. Котов;

начальник кафедры систем автоматического управления Военной академии Республики Беларусь, д-р техн. наук, проф. В. А. Куренев

Батура, М. П.

Б 28 Основы алгоритмизации и программирования. Язык Си : учеб. пособие / М. П. Батура, В. Л. Бусько, А. Г. Корбит, Т. М. Кривоносова. – Минск : БГУИР, 2007. – 240 с. : ил.

ISBN 978-985-488-192-8

Материал пособия составлен на основе курса лекций по дисциплине «Основы алгоритмизации и программирования», читаемого авторами в Белорусском государственном университете информатики и радиоэлектроники на факультете информационных технологий и управления.

Содержание пособия охватывает темы, посвященные основным конструкциям языка Си. Приведенные примеры, иллюстрирующие основные возможности языка, прошли проверку в качестве консольных приложений среды программирования Visual C++ 6.0.

Неотъемлемой частью учебного пособия являются индивидуальные задания для практических и лабораторных работ. В приложениях рассматриваются некоторые элементы языка С++, приведены дополнительные задания.

УДК 621.3 (075.8)

ББК 22.193 я 73

ISBN 978-985-488-192-8  УО «Белорусский государственный

университет информатики

и радиоэлектроники», 2007

Содержание

ПРЕДИСЛОВИЕ 8

Глава 1. Введение в алгоритмы 10

1.1. Этапы решения задач на ЭВМ 10

1.2. Понятие алгоритма 10

1.3. Свойства алгоритмов 11

1.4. Сложность алгоритма 11

1.5. Способы описания алгоритмов 12

1.6. Способы реализации алгоритмов 14

1.7. Пример простейшего линейного процесса 14

1.7. Пример циклического процесса 15

Глава 2. Базовые средства языка Си 17

2.1. Алфавит языка Си 17

2.2. Лексемы 17

2.3. Идентификаторы и ключевые слова 18

2.4. Комментарии 19

2.5. Простейшая программа 19

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

2.7. Декларация объектов 21

2.8. Данные целого типа (integer) 22

2.9. Данные символьного типа (char) 22

2.10. Данные вещественного типа (float, double) 23

2.11. Использование модификаторов при декларации производных типов данных 24

Глава 3. Константы в программах 25

3.1. Целочисленные константы 25

3.2. Константы вещественного типа 26

3.3. Символьные константы 26

3.4. Строковые константы 27

Глава 4. Обзор операций 27

4.1. Операции, выражения 27

4.2. Арифметические операции 28

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

4.4. Сокращенная запись операции присваивания 29

4.5. Преобразование типов операндов арифметических операций 30

4.6. Операция приведения типа 31

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

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

4.9. Побитовые логические операции, операции над битами 33

4.10. Операция «,» (запятая) 35

ГЛАВА 5. Обзор базовых инструкций языка Си 35

5.1. Стандартная библиотека языка Си 35

5.2. Стандартные математические функции 35

5.3. Функции вывода данных на дисплей 36

5.4. Функции ввода информации 38

Советы по программированию 39

ЗАДАНИЕ 1. Составление линейных алгоритмов 40

Первый уровень сложности 40

Второй уровень сложности 41

ГЛАВА 6. Составление разветвляющихся алгоритмов 44

6.1. Краткая характеристика операторов языка Си 44

6.2. Условные операторы 44

6.3. Условная операция «? :» 47

6.4. Оператор выбора альтернатив (переключатель) 48

ГЛАВА 7. Составление циклических алгоритмов 52

7.1. Понятие циклического кода 52

7.2. Оператор с предусловием while 52

7.3. Оператор цикла с постусловием dowhile 54

7.4. Оператор цикла с предусловием и коррекцией for 55

ГЛАВА 8. Операторы и функции передачи управления 58

8.1. Оператор безусловного перехода goto 58

8.2. Операторы continue, break и return 58

8.3. Функции exit и abort 59

Советы по программированию 59

ЗАДАНИЕ 2. Разветвляющиеся алгоритмы 60

Первый уровень сложности 60

Второй уровень сложности 61

ЗАДАНИЕ 3. Циклические алгоритмы 62

Первый уровень сложности 62

Второй уровень сложности 63

ГЛАВА 9. Указатели 64

9.1. Определение указателей 64

9.2. Операция sizeof 67

9.3. Инициализация указателей 67

9.4. Операции над указателями 69

ГЛАВА 10. Массивы 70

10.1. Понятие массива 70

10.2. Одномерные массивы 71

10.3. Связь указателей и массивов 72

10.4. Строки как одномерные массивы данных типа char 73

10.5. Указатели на указатели 76

10.6. Многомерные массивы 77

10.7. Адресная функция 79

10.8. Работа с динамической памятью 80

10.9. Библиотечные функции 81

10.10. Пример создания одномерного динамического массива 81

10.11. Пример создания двухмерного динамического массива 83

ГЛАВА 11. Функции пользователя 83

11.1. Декларация функции 84

11.2. Вызов функции 86

11.3. Передача аргументов в функцию 87

11.4. Операция typedef 88

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

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

11.7. Параметры командной строки функции main 96

ГЛАВА 12. Классы памяти и область действия объектов 97

12.1. Классы памяти объектов в языке Cи 97

12.2. Автоматические переменные 98

12.3. Статические и внешние переменные 98

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

Советы по программированию 103

ЗАДАНИЕ 4. Обработка массивов 104

Первый уровень сложности 104

Второй уровень сложности 105

ЗАДАНИЕ 5. Функции пользователя 106

Первый уровень сложности 106

Второй уровень сложности 106

ГЛАВА 13. Структуры, объединения, перечисления 108

13.1. Структуры 108

13.2. Декларация структурного типа данных 108

13.3. Создание структурных переменных 109

13.4. Обращение к полям структур 110

13.5. Вложенные структуры 111

13.6. Массивы структур 112

13.7. Размещение структурных переменных в памяти 113

13.8. Объединения 114

13.9. Перечисления 115

13.10. Битовые поля 116

ГЛАВА 14. Файлы в языке Си 117

14.1. Открытие файла 118

14.2. Закрытие файла 119

14.3. Запись – чтение информации 120

14.4. Позиционирование в файле 121

14.5. Дополнительные файловые функции 122

Советы по программированию 124

ЗАДАНИЕ 6. Создание и обработка структур 124

Первый уровень сложности 124

Второй уровень сложности 125

ЗАДАНИЕ 7. Создание и обработка файлов 126

Первый уровень сложности 126

Второй уровень сложности 126