Главная страница
Навигация по странице:

  • Батура

  • Алгоритмизации


    Скачать 1.15 Mb.
    НазваниеАлгоритмизации
    Дата27.09.2022
    Размер1.15 Mb.
    Формат файлаdocx
    Имя файла12_100229_1_124427 (1).docx
    ТипДокументы
    #700459
    страница1 из 67
      1   2   3   4   5   6   7   8   9   ...   67

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

    ОСНОВЫАЛГОРИТМИЗАЦИИИПРОГРАММИРОВАНИЯ. ЯЗЫК СИ


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

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

    «Программноеобеспечениеинформационныхтехнологий»,

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

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

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


    Минск БГУИР 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 УО «Белорусский государственный университет информатики


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

    СОДЕРЖАНИЕ


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

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

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

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

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

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

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

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

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

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

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

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

      2. Лексемы 17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ГЛАВА 4. Обзор операций 27

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      2. Оператор с предусловием while52

      3. Оператор цикла с постусловием do while 54

      4. Оператор цикла с предусловием и коррекцией for55

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

      1. Оператор безусловного перехода goto58

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      4. Строки как одномерные массивы данных типа char74

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

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

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

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

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

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

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

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

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

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

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

      4. Операция typedef89

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

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

      7. Параметры командной строки функции main96

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ГЛАВА 15. Динамические структуры данных 128

      1. Линейные списки 128

      2. Структура данных СТЕК 129

        1. Алгоритм формирования стека 130

        2. Алгоритм извлечения элемента из стека 132

        3. Просмотр стека 132

        4. Алгоритм освобождения памяти, занятой стеком 133

        5. Алгоритм проверки правильности расстановки скобок 133

      3. Структура данных ОЧЕРЕДЬ 134

        1. Формирование очереди 135

        2. Алгоритм удаления первого элемента из очереди 137

      4. Двунаправленный линейный список 137

        1. Формирование первого элемента 138

        2. Добавление элементов в конец списка 138

        3. Алгоритм просмотра списка 139

        4. Алгоритм поиска элемента в списке по ключу 139

        5. Алгоритм удаления элемента в списке по ключу 140

        6. Алгоритм вставки элемента в список после элемента

    с указанным ключом 141

      1. Нелинейные структуры данных 142

        1. Бинарные деревья 143

        2. Основные алгоритмы работы с бинарным деревом 144

        3. Формирование дерева 144

        4. Вставка нового элемента 145

        5. Удаление узла 146

        6. Алгоритмы обхода дерева 149

        7. Функция просмотра 150

        8. Освобождение памяти 151

      2. Построение обратной польской записи 151

        1. Алгоритм, использующий дерево 152

        2. Алгоритм, использующий стек 153

        3. Пример реализации 154

      3. Понятие хеширования 157

        1. Хеш-таблица и хеш-функции 157

        2. Примеры хеш-функций 158

        3. Схемы хеширования 160

        4. Примеры реализации схем хеширования 161

    ЗАДАНИЕ 8. Обработка списков 163

    Вариант 1. Однонаправленные списки 163

    Вариант 2. Двунаправленные списки 164

    ЗАДАНИЕ 9. Деревья и польская запись 165

    Вариант 1. Создание и обработка структур типа «дерево» 165

    Вариант 2. Создание и использование польской записи 166

    ГЛАВА 16. Переход к ООП 168

      1. Потоковый ввод-вывод 168

      2. Управление выводом 168

      3. Проблема ввода-вывода кириллицы в среде VisualC++171

      4. Операции newи delete173

      5. Дополнительные возможности при работе с пользовательскими функциями 174

      6. Шаблоны функций 178

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

    ЗАДАНИЕ 10. Перегрузка функций 183

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

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

    ПРИЛОЖЕНИЕ 1. Таблицы символов ASCII186

    ПРИЛОЖЕНИЕ 2. Операции языка Си 187

    ПРИЛОЖЕНИЕ 3. Возможности препроцессора 189

    ПРИЛОЖЕНИЕ 4. Интегрированная среда программирования VisualC++ 193

    ПРИЛОЖЕНИЕ 5. Некоторые возможности отладчикаVisualC++ 200

    ПРИЛОЖЕНИЕ 6. Некоторые возможности графической подсистемы 206

      1. Основные понятия 206

      2. Контекст устройства 206

      3. Примитивы GDI206

      4. Пример вывода текста 207

      5. Получение описателя контекста устройства 218

      6. Основные инструменты графической подсистемы 219

      7. Закрашивание пустот 225

      8. Рисование линий и кривых 225

      9. Пример изображения графика функции sin227

      10. Рисование замкнутых фигур 229

      11. Функция Polygonи режим закрашивания многоугольника 231

      12. Пример отображения линий 231

      13. Управление областями вывода и отсечением 232

      14. Растровая графика 235

    ЗАДАНИЕ 11. Создание графических изображений 238

    ЛИТЕРАТУРА 240
      1   2   3   4   5   6   7   8   9   ...   67


    написать администратору сайта