Скачать 3.06 Mb.
|
М. П. Батура, В. Л. Бусько, А. Г. Корбит, Т. М. Кривоносова Основы алгоритмизации и программирования. Язык Си Допущено Министерством образования Республики Беларусь в качестве учебного пособия для студентов учреждений, обеспечивающих получение высшего образования по специальностям «Искусственный интеллект», «Программное обеспечение информационных технологий», «Автоматизированные системы обработки информации», «Электронные вычислительные средства», «Инженерно-психологическое обеспечение информационных технологий» Минск БГУИР 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 СОДЕРЖАНИЕ ПРЕДИСЛОВИЕ 10 ГЛАВА 1. Введение в алгоритмы 12 1.1. Этапы решения задач на ЭВМ 12 1.2. Понятие алгоритма 12 1.3. Свойства алгоритмов 13 1.4. Сложность алгоритма 13 1.5. Способы описания алгоритмов 14 1.6. Способы реализации алгоритмов 16 1.7. Пример простейшего линейного процесса 17 1.7. Пример циклического процесса 18 ГЛАВА 2. Базовые средства языка Си 19 2.1. Алфавит языка Си 19 2.2. Лексемы 19 2.3. Идентификаторы и ключевые слова 20 2.4. Комментарии 21 2.5. Простейшая программа 21 2.6. Основные типы данных 22 2.7. Декларация объектов 23 2.8. Данные целого типа (integer) 24 2.9. Данные символьного типа (char) 24 2.10. Данные вещественного типа (float, double) 25 2.11. Использование модификаторов при декларации производных типов данных 26 ГЛАВА 3. Константы в программах 27 3.1. Целочисленные константы 27 3.2. Константы вещественного типа 28 3.3. Символьные константы 28 3.4. Строковые константы 29 ГЛАВА 4. Обзор операций 29 4.1. Операции, выражения 29 4.2. Арифметические операции 30 4.3. Операция присваивания 30 4.4. Сокращенная запись операции присваивания 31 4.5. Преобразование типов операндов арифметических операций 32 4.6. Операция приведения типа 33 4.7. Операции сравнения 33 4.8. Логические операции 34 4.9. Побитовые логические операции, операции над битами 35 4.10. Операция «,» (запятая) 37 ГЛАВА 5. Обзор базовых инструкций языка Си 37 5.1. Стандартная библиотека языка Си 37 5.2. Стандартные математические функции 38 5.3. Функции вывода данных на дисплей 38 5.4. Функции ввода информации 40 Советы по программированию 41 ЗАДАНИЕ 1. Составление линейных алгоритмов 42 Первый уровень сложности 42 Второй уровень сложности 43 ГЛАВА 6. Составление разветвляющихся алгоритмов 46 6.1. Краткая характеристика операторов языка Си 46 6.2. Условные операторы 46 6.3. Условная операция «? :» 49 6.4. Оператор выбора альтернатив (переключатель) 50 ГЛАВА 7. Составление циклических алгоритмов 54 7.1. Понятие циклического кода 54 7.2. Оператор с предусловием while 54 7.3. Оператор цикла с постусловием do – while 56 7.4. Оператор цикла с предусловием и коррекцией for 57 ГЛАВА 8. Операторы и функции передачи управления 60 8.1. Оператор безусловного перехода goto 60 8.2. Операторы continue, break и return 60 8.3. Функции exit и abort 61 Советы по программированию 61 ЗАДАНИЕ 2. Разветвляющиеся алгоритмы 62 Первый уровень сложности 62 Второй уровень сложности 63 ЗАДАНИЕ 3. Циклические алгоритмы 64 Первый уровень сложности 64 Второй уровень сложности 65 ГЛАВА 9. Указатели 66 9.1. Определение указателей 66 9.2. Операция sizeof 68 9.3. Инициализация указателей 69 9.4. Операции над указателями 70 ГЛАВА 10. Массивы 72 10.1. Понятие массива 72 10.2. Одномерные массивы 73 10.3. Связь указателей и массивов 74 10.4. Строки как одномерные массивы данных типа char 75 10.5. Указатели на указатели 78 10.6. Многомерные массивы 79 10.7. Адресная функция 81 10.8. Работа с динамической памятью 82 10.9. Библиотечные функции 82 10.10. Пример создания одномерного динамического массива 83 10.11. Пример создания двухмерного динамического массива 84 ГЛАВА 11. Функции пользователя 85 11.1. Декларация функции 86 11.2. Вызов функции 87 11.3. Передача аргументов в функцию 89 11.4. Операция typedef 90 11.5. Указатели на функции 90 11.6. Рекурсивные функции 94 11.7. Параметры командной строки функции main 97 ГЛАВА 12. Классы памяти и область действия объектов 98 12.1. Классы памяти объектов в языке Cи 99 12.2. Автоматические переменные 99 12.3. Статические и внешние переменные 100 12.4. Область действия переменных 102 Советы по программированию 105 ЗАДАНИЕ 4. Обработка массивов 106 Первый уровень сложности 106 Второй уровень сложности 107 ЗАДАНИЕ 5. Функции пользователя 108 Первый уровень сложности 108 Второй уровень сложности 108 ГЛАВА 13. Структуры, объединения, перечисления 109 13.1. Структуры 109 13.2. Декларация структурного типа данных 110 13.3. Создание структурных переменных 111 13.4. Обращение к полям структур 112 13.5. Вложенные структуры 113 13.6. Массивы структур 114 13.7. Размещение структурных переменных в памяти 115 13.8. Объединения 115 13.9. Перечисления 116 13.10. Битовые поля 118 ГЛАВА 14. Файлы в языке Си 119 14.1. Открытие файла 119 14.2. Закрытие файла 121 14.3. Запись-чтение информации 122 14.4. Позиционирование в файле 123 14.5. Дополнительные файловые функции 124 Советы по программированию 125 ЗАДАНИЕ 6. Создание и обработка структур 126 Первый уровень сложности 126 Второй уровень сложности 127 ЗАДАНИЕ 7. Создание и обработка файлов 127 Первый уровень сложности 127 Второй уровень сложности 128 ГЛАВА 15. Динамические структуры данных 129 15.1. Линейные списки 129 15.2. Структура данных СТЕК 130 15.2.1. Алгоритм формирования стека 131 15.2.2. Алгоритм извлечения элемента из стека 133 15.2.3. Просмотр стека 133 15.2.4. Алгоритм освобождения памяти, занятой стеком 134 15.2.5. Алгоритм проверки правильности расстановки скобок 134 15.3. Структура данных ОЧЕРЕДЬ 135 15.3.1. Формирование очереди 136 15.3.2. Алгоритм удаления первого элемента из очереди 138 15.4. Двунаправленный линейный список 138 15.4.1. Формирование первого элемента 139 15.4.2. Добавление элементов в конец списка 139 15.4.3. Алгоритм просмотра списка 140 15.4.4. Алгоритм поиска элемента в списке по ключу 140 15.4.5. Алгоритм удаления элемента в списке по ключу 141 15.4.6. Алгоритм вставки элемента в список после элемента с указанным ключом 142 15.5. Нелинейные структуры данных 143 15.5.1. Бинарные деревья 144 15.5.2. Основные алгоритмы работы с бинарным деревом 145 15.5.3. Формирование дерева 145 15.5.4. Вставка нового элемента 146 15.5.5. Удаление узла 147 15.5.6. Алгоритмы обхода дерева 150 15.5.7. Функция просмотра 151 15.5.8. Освобождение памяти 152 15.6. Построение обратной польской записи 152 15.6.1. Алгоритм, использующий дерево 153 15.6.2. Алгоритм, использующий стек 154 15.6.3. Пример реализации 155 15.7. Понятие хеширования 158 15.7.1. Хеш-таблица и хеш-функции 158 15.7.2. Примеры хеш-функций 159 15.7.3. Схемы хеширования 161 15.7.4. Примеры реализации схем хеширования 162 ЗАДАНИЕ 8. Обработка списков 164 Вариант 1. Однонаправленные списки 164 Вариант 2. Двунаправленные списки 165 ЗАДАНИЕ 9. Деревья и польская запись 166 Вариант 1. Создание и обработка структур типа «дерево» 166 Вариант 2. Создание и использование польской записи 167 ГЛАВА 16. Переход к ООП 169 16.1. Потоковый ввод-вывод 169 16.2. Управление выводом 169 16.3. Проблема ввода-вывода кириллицы в среде Visual C++ 172 16.4. Операции new и delete 174 16.5. Дополнительные возможности при работе с пользовательскими функциями 175 16.6. Шаблоны функций 179 Советы по программированию 183 ЗАДАНИЕ 10. Перегрузка функций 184 Первый уровень сложности 184 Второй уровень сложности 185 Таблицы символов ASCII 187 Операции языка Си 189 Возможности препроцессора 191 Интегрированная среда программирования Visual C++ 195 195 Некоторые возможности отладчика Visual C++ 202 Некоторые возможности графической подсистемы 208 6.1. Основные понятия 208 6.2. Контекст устройства 208 6.3. Примитивы GDI 208 6.4. Пример вывода текста 209 6.5. Получение описателя контекста устройства 220 6.6. Основные инструменты графической подсистемы 221 6.7. Закрашивание пустот 227 6.8. Рисование линий и кривых 227 6.9. Пример изображения графика функции sin 229 6.10. Рисование замкнутых фигур 231 6.11. Функция Polygon и режим закрашивания многоугольника 233 6.12. Пример отображения линий 233 6.13. Управление областями вывода и отсечением 234 6.14. Растровая графика 237 ЗАДАНИЕ 11. Создание графических изображений 240 ЛИТЕРАТУРА 242 |
Задачах программирования лабораторный практикум по дисциплине «Системное... Методические указания предназначены для подготовки дипломированных специалистов направления 230100 «Информатика и вычислительная... |
Российской Федерации Московский инженерно-физический институт (государственный... Учебное пособие предназначено для студентов специальностей «эвм», «Прикладная математика и информатика» и«Автоматизированные системы... |
||
Пояснительная записка дисциплина «Русский язык» Автоматизированные системы обработки информации и управления (в промышленности, в бюджетных отраслях) |
Учебное пособие Допущено Ученым советом института в качестве учебного... Допущено Ученым советом института в качестве учебного пособия для обучения курсантов по специальности 220200 – «Автоматизированные... |
||
1. Основные определения и понятия информации, информационных технологий... В отечественной общеобразовательной школе в последние годы компьютерная техника и другие средства информационных технологий стали... |
Учебно-методический комплекс по дисциплине английский язык Автоматизированные системы обработки информации и управления (в промышленности, в бюджетных отраслях) |
||
Тематический план Введение. Предмет курса и его связь со смежными... Целью изучения дисциплины является получение общих представлений о содержании и тенденциях развития базовых информационных технологий... |
Курс лекций для студентов специальности «Финансы и кредит» специализации... Целью изучения первой темы является раскрытие понятия и значения информационных технологий обработки налоговой информации, как важного... |
||
Ооо "Ромашка" Отдел информационных технологий Протокол валидации компьютеризированной системы Обеспечивает эксплуатацию информационной системы подразделение информационных технологий |
С. В. Колосов Программирование в среде Допущено Министерством образования Республики Беларусь в качестве учебного пособия для студентов специальностей «Автоматизированные... |
||
«Изучение стандарта „Методы и средства обеспечения безопасности.... Санкт-петербургский государственный университет информационных технологий, механики и оптики |
Методические указания по выполнению выпускной квалификационной работы... Требования к оформлению и содержанию структурных элементов квалификационной работы 10 |
||
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
||
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
Методические указания и задания к лабораторным работам для учащихся... Методическое указания рекомендованы к изданию цикловой комиссией информатики Белорусского техникума бизнеса и права для учащихся... |
Поиск |