Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Osnovy_algoritmizatsii_i_programmirovania_-_Bat....doc
Скачиваний:
52
Добавлен:
25.12.2018
Размер:
3.21 Mб
Скачать

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

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

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

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

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

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

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

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

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

Минск БГУИР 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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

2.2. Лексемы 18

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7.3. Оператор цикла с постусловием do – while 55

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]