- •СОДЕРЖАНИЕ
- •ПРЕДИСЛОВИЕ
- •ГЛАВА 1. Введение в алгоритмы
- •1.1. Этапы решения задач на ЭВМ
- •1.2. Понятие алгоритма
- •1.3. Свойства алгоритмов
- •1.4. Сложность алгоритма
- •1.7. Пример простейшего линейного процесса
- •1.7. Пример циклического процесса
- •ГЛАВА 2. Базовые средства языка Си
- •2.1. Алфавит языка Си
- •2.2. Лексемы
- •2.3. Идентификаторы и ключевые слова
- •2.4. Комментарии
- •2.5. Простейшая программа
- •2.7. Декларация объектов
- •2.8. Данные целого типа (integer)
- •2.9. Данные символьного типа (char)
- •2.10. Данные вещественного типа (float, double)
- •ГЛАВА 3. Константы в программах
- •3.2. Константы вещественного типа
- •3.4. Строковые константы
- •ГЛАВА 4. Обзор операций
- •4.1. Операции, выражения
- •4.3. Операция присваивания
- •4.4. Сокращенная запись операции присваивания
- •4.7. Операции сравнения
- •4.8. Логические операции
- •4.10. Операция «,» (запятая)
- •ГЛАВА 5. Обзор базовых инструкций языка Си
- •5.2. Стандартные математические функции
- •5.3. Функции вывода данных на дисплей
- •5.4. Функции ввода информации
- •ГЛАВА 6. Составление разветвляющихся алгоритмов
- •6.1. Краткая характеристика операторов языка Си
- •ГЛАВА 7. Составление циклических алгоритмов
- •7.1. Понятие циклического кода
- •7.2. Оператор с предусловием while
- •7.4. Оператор цикла с предусловием и коррекцией for
- •ГЛАВА 8. Операторы и функции передачи управления
- •8.1. Оператор безусловного перехода goto
- •8.2. Операторы continue, break и return
- •8.3. Функции exit и abort
- •Советы по программированию
- •ГЛАВА 9. Указатели
- •9.1. Определение указателей
- •9.2. Операция sizeof
- •9.3. Инициализация указателей
- •9.4. Операции над указателями
- •ГЛАВА 10. Массивы
- •10.1. Понятие массива
- •10.2. Одномерные массивы
- •10.4. Строки как одномерные массивы данных типа char
- •10.5. Указатели на указатели
- •10.8. Работа с динамической памятью
- •10.9. Библиотечные функции
- •10.10. Пример создания одномерного динамического массива
- •ГЛАВА 11. Функции пользователя
- •11.1. Декларация функции
- •11.2. Вызов функции
- •11.3. Передача аргументов в функцию
- •11.4. Операция typedef
- •11.5. Указатели на функции
- •ГЛАВА 12. Классы памяти и область действия объектов
- •ЗАДАНИЕ 4. Обработка массивов
- •Первый уровень сложности
- •Второй уровень сложности
- •ЗАДАНИЕ 5. Функции пользователя
- •Первый уровень сложности
- •Второй уровень сложности
- •12.3. Статические и внешние переменные
- •12.4. Область действия переменных
- •Советы по программированию
- •13.1. Структуры
- •13.5. Вложенные структуры
- •13.6. Массивы структур
- •13.7. Размещение структурных переменных в памяти
- •13.8. Объединения
- •13.9. Перечисления
- •13.10. Битовые поля
- •ГЛАВА 14. Файлы в языке Си
- •14.1. Открытие файла
- •14.2. Закрытие файла
- •14.3. Запись-чтение информации
- •14.5. Дополнительные файловые функции
- •Советы по программированию
- •ЗАДАНИЕ 7. Создание и обработка файлов
- •Первый уровень сложности
- •Второй уровень сложности
- •ГЛАВА 15. Динамические структуры данных
- •15.1. Линейные списки
- •15.2.1. Алгоритм формирования стека
- •15.2.2. Алгоритм извлечения элемента из стека
- •15.2.3. Просмотр стека
- •15.2.4. Алгоритм освобождения памяти, занятой стеком
- •15.2.5. Алгоритм проверки правильности расстановки скобок
- •15.3.1. Формирование очереди
- •15.3.2. Алгоритм удаления первого элемента из очереди
- •15.4. Двунаправленный линейный список
- •15.4.1. Формирование первого элемента
- •15.4.3. Алгоритм просмотра списка
- •15.4.5. Алгоритм удаления элемента в списке по ключу
- •15.5. Нелинейные структуры данных
- •15.5.1. Бинарные деревья
- •15.5.2. Основные алгоритмы работы с бинарным деревом
- •15.5.4. Вставка нового элемента
- •15.6. Построение обратной польской записи
- •15.6.1. Алгоритм, использующий дерево
- •15.6.2. Алгоритм, использующий стек
- •15.6.3. Пример реализации
- •15.7. Понятие хеширования
- •15.7.2. Примеры хеш-функций
- •15.7.3. Схемы хеширования
- •15.7.4. Примеры реализации схем хеширования
- •Вариант 2. Двунаправленные списки
- •ГЛАВА 16. Переход к ООП
- •16.1. Потоковый ввод-вывод
- •16.3. Проблема ввода-вывода кириллицы в среде Visual C++
- •16.4. Операции new и delete
- •16.6. Шаблоны функций
- •Первый уровень сложности
- •Второй уровень сложности
- •6.1. Основные понятия
- •6.3. Примитивы GDI
- •6.5. Получение описателя контекста устройства
- •6.6. Основные инструменты графической подсистемы
- •6.7. Закрашивание пустот
- •6.8. Рисование линий и кривых
- •6.9. Пример изображения графика функции sin
- •6.10. Рисование замкнутых фигур
- •6.11. Функция Polygon и режим закрашивания многоугольника
- •6.13. Управление областями вывода и отсечением
- •ЗАДАНИЕ 11. Создание графических изображений
- •ЛИТЕРАТУРА
ЛИТЕРАТУРА
1.Аксенкин, М. А. Язык С / М. А. Аксенкин, О. Н. Целобенок. – Минск : Унiверсiтэцкае, 1995.
2.Архангельский, А. Я. Программирование в С++ Builder 6 / А. Я. Архангельский. – М. : ЗАО «Издательство БИНОМ», 2002.
3.Березин, Б. И. Начальный курс С и С++ / Б. И. Березин, С. Б. Березин. – М. : Диалог– МРТИ, 1999.
4.Берри, В. Язык Си: введение для программистов / В. Берри, Б. Микинз. – М. : Финансы и статистика, 1988. Р
5.Больски, М. Н. Язык программирования Си: справочник / М. Н. Больски. –
6.Программирование: лаб. практикум для студ. 1–2ИР-го курсов всех спец. БГУИР и всех форм обуч. Ч.2. Основы Упрограммирования на алгоритмическом языке С / В. Л. Бусько [и др.]. – МинскГ: БГ , 2005.Б
|
8. Бухтияров, А. |
М. Сборник з дач по программированию на |
|||||||
|
|
|
|
|
|
|
|
|
а |
алгоритмических языках / А. М. Бухтияров, Г. Д. Фролов. – М. : Статистика, |
|||||||||
1978. |
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
е |
|
|
|
9. Бабэ, Б. Просто и ясно о Borland C++ / Б. Бабэ. – М. : БИНОМ, 1995. |
||||||||
|
10. |
Бадд, Т. Объектно-ори нтированное программирование в действии / |
|||||||
Т. Бадд. – СПб. : Питер, 1997. |
|
|
|
||||||
|
11. |
Вайнер, Р. С++ изну ри / Р. Вайнер, Л. Пинсон – Киев : ДиаСофт, |
|||||||
1993. |
|
|
|
|
ори |
|
|
|
|
|
12. |
Вирт, Н. Алг |
и мы и структуры данных / Н. Вирт. – СПб. : |
||||||
Невский диалект, 2001. |
т |
|
|
||||||
|
13. |
Вирт, Н. Алг |
тмы + структуры данных = программы / Н. Вирт. – |
||||||
|
|
|
ел |
|
|
|
|
|
|
М. : Мир, 1985. |
и, Х. М. |
|
|
|
|
||||
|
14. |
Дейт |
Как программировать на С / Х. М. Дейтел, П. Дж. |
||||||
Дейтел. – М. : БИНОМ, 2006. |
|
|
|
||||||
Си |
|
|
|
|
|
|
|
||
|
15. |
Демидович, Е. М. Основы алгоритмизации и программирования. |
|||||||
Язык |
б/ Е. М. Демидович. – Минск : Бестпринт, 2001. |
||||||||
|
16. |
Джехани, Н. Программирование на языке Си / Н. Джехани // Радио |
|||||||
Би связь, 1988. |
|
|
|
|
|
|
17.Дэвис, С. С++ для «чайников» / С. Дэвис. – Киев : Диалектика, 1996.
18.Касаткин, А. И. Профессиональное программирование на языке Си: Oт Turbo-C к Borland C++: справ.пособие / А. И. Касаткин, А. Н. Вольвачев. – Минск : Выш. шк., 1992.
19.Касаткин, А. И. Профессиональное программирование на языке Си. Управление ресурсами: справ.пособие / А. И. Касаткин. – Минск : Выш.шк., 1992.
240
20.Керниган, Б. Язык программирования Си / Б. Керниган, Д. Ритчи. – М. : Финансы и статистика, 1992.
21.Керниган, Б. Язык программирования Си. Задачи по языку Си / Б. Керниган, Д. Ритчи, А. Фьюэр. – М. : Финансы и статистика, 1985.
22.Керниган, Б. Универсальная среда программирования UNIX / Б. Керниган, Р. Пайк. – М. : Финансы и статистика, 1992.
23.Климова, Л. И. С++. Практическое программирование / Л. И. Климова. – М. : Кудиц-Образ, 2001.
24.Кнут, Д. Искусство программирования: т. 1–3. Основные алгоритмы / Д. Кнут. – М. : Издательский дом «Вильямс», 2004. Р
25.Котлинская, Г. П. Программирование на языке Си / Г. П. Котлинская, О. И. Галиновский. – Минск : Выш.шк., 1991. И
26.Методы алгоритмизации / В. М. Котов [и др.]. – Минск : Народная асвета, 1996. У
27.Котов, В. М. Методы алгоритмизации: учеб. пособие / В. М. Котов, О. И. Мельников. – Минск : Народная асвета, 2000. Г
28.Котов, В. М. Структуры данных и алгоритмыБ: учеб. пособие / В. М. Котов, Е. П. Соболевская. – Минск : БГУ, 1996.
29.Программирование на С и С++ / А. В. Крячков [и др.]. – М. : Горячая
30.Морозов, А. А. Структуры данныхкаи лгоритмы: учеб. пособие : в 2 ч. / А. А. Морозов. – Минск : БГПУ им. М. Т нка. Ч. 1. – 2000, Ч. 2. – 2001.
31.Павловская, Т. А. С/Се++. Прогр ммирование на языке высокого
33. |
Павловская, |
т |
|||
Т. |
А. С++. Объектно-ориентированное |
||||
|
|
|
и |
|
|
программирование : практикум / Т. А. Павловская, Ю. А. Щупак. – СПб. : |
|||||
Питер, 2004. |
л |
|
|
||
34. |
Петзо ьд, Ч.рогП аммирование для Windows 95 / Ч. Петзольд. – |
||||
BHV.: СПб. : БИНОМ, 1997. |
|
||||
35. |
дб |
|
В. |
Программирование на языке Си / В. В. |
|
По |
е ьский, В. |
||||
ни |
|
|
|
|
|
Подбельский, С. С. Фомин. – М. : Финансы и статистика, 2001. |
|||||
36. Подбельский, В. В. Язык С++ / В. В. Подбельский. – M. : ФиС, 2001. |
|||||
Б |
Пол, И. Объектно-ориентированное программирование с |
||||
37. |
|||||
использова |
ем С++ / И. Пол. – Киев : ДиаСофт, 1995. |
||||
38. |
Романовская, Л. М. Программирование в среде СИ для ПЭВМ ЕС / |
Л. М. Романовская, Т. В. Русс, С. Г. Свитковский. – М. : Финансы и статистика, 1992.
39.Практикум по программированию на алгоритмических языках / Г. И. Светозарова [и др.]. – М. : Наука, 1980.
40.Синицын, А. К. Конспект лекций по курсу «Программирование» для студ. 1–2-го курсов всех спец. БГУИР / А. К. Синицын. – Минск :
БГУИР, 2001.
241
41. Синицын, А. К. Программирование алгориттмов в среде Builder C++: лаб.практикум по курсам «Программирование» и «Основы алгоритмизации и программирование» для студ. 1-2 курсов всех спец. БГУИР дневн.
и веч. форм обуч.: в 2 ч. / А. К. Синицын. – Минск : БГУИР. Ч. 1. – 2004, Ч. 2. –
2005. |
|
|
|
|
|
|
|
|
|
|
|
|
42. |
Страуструп, Б. Язык программирования С++ / Б. Страуструп. – |
|||||||||||
СПб. : БИНОМ, 1999. |
|
|
|
|
|
|
|
|||||
43. Тимофеев, |
В. В. Программирование в среде С++ Builder 5 / В. В. |
|||||||||||
Тимофеев. – М. : БИНОМ, 2000. |
|
|
|
|
|
Р |
||||||
|
|
|
|
|
|
|||||||
44. |
Топп, У. Структуры данных в С++: пер. с англ. / У. Топп, У. Форд. – |
|||||||||||
М. : ЗАО «Издательство БИНОМ», 2000. |
|
|
И |
|||||||||
|
|
|
|
|||||||||
45. |
Уингер, Р. Язык Турбо Си / Р. Уингер. – М. : Мир, 1991. |
|||||||||||
46. |
|
|
|
|
|
|
|
|
У |
|
||
Успенский, В. А. Теория алгоритмов : основные открытия и |
||||||||||||
приложения / В. А. Успенский, А. А. Семенов. – М., 1987. |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
Г |
|
|
|
47. Уэйт, М. Язык Си. Руководство для начинающих / М. эйт, С. Прама, |
||||||||||||
Д. Мартин. – М. : Мир, 1988. |
|
|
Б |
|
|
|
||||||
|
|
|
|
|
|
|||||||
48. |
Фьюэр, А. Задачи по языку Си / А. Фьюэр. – М. : Финансы и |
|||||||||||
статистика, 1985. |
|
|
|
|
|
|
|
|
||||
49. |
Холзнер, С. Visual C++ 6. Учебный курс / С. Холзнер. – СПб. : |
|||||||||||
Питер, 1999. |
|
|
|
к |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||
50. |
Хэнкок, Л. |
Введение в прогр ммиров ние на языке Си / Л. Хэнкок, |
||||||||||
52. |
Юлин, В. А. Приглашениек Си / В. А. Юлин, И. Р. Булатова. – |
|||||||||||
М. Кригер. – М. : Радио и связь,1986. |
а |
|
|
|
||||||||
51. |
Шилд, Г. Программирова |
на Borland С++ / Г. Шилд. – Минск : |
||||||||||
ПОПУРРИ, 1999. |
|
т |
|
|
|
|
|
|
||||
|
|
|
|
|
о |
|
|
|
|
|
|
|
Минск : Выш.шк., 1990. |
|
|
|
|
|
|
|
|||||
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
л |
|
|
|
|
|
|
|
|
|
|
б |
|
|
|
|
|
|
|
|
|
||
и |
|
|
|
|
|
|
|
|
|
|
||
Б |
|
|
|
|
|
|
|
|
|
|
|
|
242
Учебное издание
|
|
|
|
Батура Михаил Павлович |
|
|
Р |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
Бусько Виталий Леонидович |
|
И |
|||||
|
|
|
|
Корбит Анатолий Григорьевич |
|
||||||
|
|
|
|
|
|
|
|||||
|
|
|
Кривоносова Татьяна Михайловна |
У |
|
||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Г |
|
|
|
|
|
|
|
|
|
|
|
Б |
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
Основы алгоритмизации и прогр ммирования. Язык Си |
|||||||||||
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
Учеб пособие |
|
|
|
|
||
|
|
|
|
|
|
ное |
|
|
|
|
|
|
|
|
|
|
т |
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
л |
|
|
|
|
|
|
|
|
|
|
б |
|
|
Редактор Т. Н. Крюкова |
|
|
|
||||
и |
|
|
|
Корректор Е. Н. Батурчик |
|
|
|
||||
Б |
|
|
Компьютерная верстка Е. Н. Мирошниченко |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Подписано в печать 21.05.2007. Формат 60x84 1/16. Бумага офсетная. Гарнитура «Таймс». Печать ризографическая. Усл. печ. л. 14,2. Уч.-изд. л. 14,2. Тираж 500 экз. Заказ 599.
Издатель и полиграфическое исполнение: Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» ЛИ № 02330/0056964 от 01.04.2004. ЛП № 02330/0131666 от 30.04.2004. 220013, Минск, П.Бровки, 6
243