73HFADEL.gif (1594 bytes)

А. П. Полищук

ИНФОРМАТИКА

Персональный компьютер

и его программирование

(С, С++, Паскаль)

Учебно-справочное пособие

Оглавление

1. Введение.

1.1. Назначение книги.

1.2. Состав пособия.

1.3. Об общеобразовательной роли компьютерного программирования.

1.4. О методологии преподавания программирования.

2. Компьютер, который мы программируем.

2.1. Что умеет обрабатывать электронный компьютер?

2.2. Кое-что из компьютерной истории.

2.3. Электронная память компьютера, центральный процессор и операционная система.

2.3.1. Электронная память - "технологическое пространство" для обработки представленных в числовой форме данных. 2.3.2. Биты памяти как отражение цифр двоичных чисел.

2.3.3. Байт - двоичное число минимальной длины в памяти компьютера, для которого можно определить его местонахождение (адрес). 2.3.4. Поработаем с числами в памяти.

2.3.7. Шестнадцатеричное представление 2-ичных чисел. 2.3.8. Числовое кодирование текстовых символов.

2.3.9. Кодирование изображений текстовых символов. 2.3.10. Адрес числа в памяти - это тоже число.

2.3.11. Адрес и указатель.

2.3.12. Текстовые строки как последовательность двоичных чисел и некоторые операции с ними.

2.3.13. Команды обработки чисел - это тоже числа.

2.3.14. Память с произвольным доступом и память только для чтения.

2.3.15. Регистры и порты устройств, входящих в состав компьютера.

2.3.16. Побитовые операции с целыми двоичными числами.

2.3.17. Архитектура центрального процессора.

2.3.18. Реакция центрального процессора на сигналы и команды прерывания.

3. Операционная система.

3.1. Механизм прерываний и операционная система MS-DOS (Microsoft Disk Operating System).

3.2. Внешняя дисковая память для долговременного хранения программ и данных.

3.3. Средства MS DOS для доступа к файлам.

3.4. Внутренние команды DOS.

3.5. Командные файлы.

3.6. Замещаемые параметры или шаблоны имен файлов.

3.7. Выполняемые файлы.

4. Алгоритмизация и программирование.

4.1. Понятие алгоритма и автомата (исполнителя алгоритма).

4.2. Методы описания алгоритмов.

4.3. Управление операциями в алгоритмах.

4.4. Запись алгоритмов в виде блок-схем.

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

4.6. Типы трансляторов.

4.7. Требования трансляторов к текстам программ.

4.8. Выбор языка высокого уровня для начального обучения.

4.9. Описание некоторых алгоритмов для последующего программирования на языках Си и Паскаль.

4.9.1. Простые числа.

4.9.2. Сравнение 2-х строк, заданных указателями на их начала и заканчивающихся нулевыми байтами

4.9.3. Выделение и преобразование в целое цифровой подстроки в строке, заданной указателем на начало и завершающейся нулем.

4.9.4. Рекурсии - задача о Ханойских башнях.

4.9.5. Рекурсии - программный генератор перестановок N попарно различных чисел.

4.9.6. Рекурсия и алгоритмы перебора вариантов с возвратом. 4.9.7. Определение простых чисел "просеиванием" нечетных на "решете Эратосфена" с битовой упаковкой при хранении. 4.9.8. Запись в файл.

4.9.10. Подмена таблицы знакогенератора. 4.9.11. Обработка одномерных числовых массивов (векторов). 4.9.12.Обработка двумерных числовых массивов (таблиц или матриц или массивов векторов).

4.9.12.1.Сложение двух матриц.

4.9.12.2. Умножение матриц.

4.9.12.3. Решение системы линейных алгебраических уравнений (СЛАУ) методом Гаусса.

4.9.12.4. Вычисление определителя матрицы методом Гаусса.

4.9.12.5. Метод ортогонализации исходного базиса и его использование для решения СЛАУ.

4.9.13. Двоичный поиск в упорядоченных массивах.

5. Краткое описание языка Си.

5.1. Базовые понятия.

5.2. Типы данных и их внутреннее представление.

5.3. Операции над данными в Си.

5.4. Общая структура Си-программы.

5.5. Более подробно о подпрограммах вообще и функциях Си.

5.6. Обработка текстов программ.

5.7. Управляющие структуры в Си.

5.8. Краткий обзор некоторых библиотек.

5.8.1. Общие замечания.

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

5.8.3. Функции классификации и преобразования символов

5.8.4. Функции для работы с блоками памяти

5.8.5. Функции обработки текстовых строк

5.9. Управление ресурсами - динамическое управление памятью в ДОС и Си.

5.9.1. Основные сведения.

5.9.2. Динамическое управление памятью в Си.

5.10. Управление ресурсами компьютера из прикладных программ. Файловый обмен в языке С.

5.10.1. Общие сведения.

5.10.2. Потоковый ввод-вывод.

5.10.3. Префиксный доступ к файлам

5.10.4. Переадресация файлового ввода - вывода.

5.10.5. Создание и уничтожение файла - каталога.

5.10.6. Управление текущим накопителем и каталогом.

5.10.7. Чтение содержимого каталога и поиск файлов.

5.10.8. Переход от префиксной к потоковой форме доступа.

5.10.9. Удаление и переименование файлов.

5.10.10. Определение существования файла или каталога.

5.10.11. Определение и установка параметров файла.

5.11. Управление ресурсами из прикладных программ. Ввод с клавиатуры средствами библиотек языка Си.

5.11.1. Общие сведения.

5.11.2. Буфер клавиатуры.

5.11.3. Ввод в (Турбо, Борланд) С (С++) средствами BIOS.

5.12. Управление ресурсами компьютера из прикладных программ. Видеосистема.

5.12.1. Краткие сведения по архитектуре видеосистем. Основные типы дисплеев.

5.12.2. Управление видеосистемой в Borland С++. Функции консольного ввода - вывода.

5.12.3. Вывод в окна средствами Borland С++.

5.12.4. Чтение информации с экрана.

5.12.4. Особенности вывода текстов в графических режимах.

5.12.5. Управление знакогенератором EGA и VGA.

5.12.6. Вывод графической информации.

5.12.7. Вывод графической информации. Параметры и атрибуты графического вывода.

6. Практическое процедурное программирование на Си. 6.1. Извлечение аргументов из командной строки. 6.2. Предостережения о синтаксических ошибках, которых вы должны старательно избегать.

6.3. Программа, решающая квадратные уравнения с вещественными коэффициентами, заданными в командной строке. 6.4. Простые числа.

6.5. Определение длины строки, заданной указателем на начало и "закрытой" нулем.

6.6. Копирование строки, заданной указателем на начало и заканчивающейся двоичным нулем.

6.7. Сравнение 2-х строк.

6.8. Выделение и преобразование в целое цифровой подстроки в строке, заданной указателем на начало и завершающейся нулем. 6.9. Печать отрезка ряда чисел Фибоначчи с длиной, заданной в командной строке.

6.10. Наибольший общий делитель.

6.11. Программирование рекурсивных алгоритмов. 6.11.1. Простейший пример использования рекурсии - вычисление факториала натурального числа.

6.11.2. Рекурсии - задача о Ханойских башнях. 6.11.3. Рекурсии - программный генератор перестановок N попарно различных чисел.

6.11.4. Задача: найти все возможные варианты расстановок N не бьющих друг друга ферзей на шахматной доске размером N*N. 6.12. Простые числа - решето Эратосфена и битовая упаковка булевских переменных.

6.13. Примеры простых программ, работающих с файлами.

6.13.1. Запись в файл.

6.13.2. Чтение из файла.

6.14. Простые примеры непосредственной работы с видеобуфером.

6.15. Пример работы с таблицей знакогенератора. 6.16. Прикладное программирование в среде (Турбо, Борланд) С, C++ на более сложных примерах.

6.16.1. Обработка одномерных числовых массивов (векторов). 6.16.2. Обработка двумерных числовых массивов (таблиц, или матриц, или массивов векторов).

6.17. Работа с текстовыми строками.

6.17.1. Сортировка строк.

6.17.2. Двоичный поиск в упорядоченных массивах. 6.17.3. Синтаксический анализ выражений (формул), заданных символьной строкой.

6.17.4. Вычисление значений выражений, заданных пользователем в символьной форме на стадии выполнения обслуживающей программы. 6.18. Работа в графическом режиме с библиотекой Borland Graphics Interface (BGI) при построении графиков функций.структур файлового хранения.

6.20. Методы разработки резидентных программ. 7. Описание языка (Турбо, Борланд) Паскаль. 7.1. Общая структура текста программы на Паскале. 7.2. Скалярные (одноэлементные) типы данных в Паскале. 7.3. Простые константы.

7.4. Операции над простыми типами.

7.4.1. Операции над целочисленными типами 7.4.2. Операции с вещественными числовыми типами 7.4.3. Операции с любыми числовыми типами 7.4.4. Операции над символами в Паскале. 7.4.5. Операции над строками.

7.4.6. Операции над адресами

7.5.Сложные типы данных - массивы.

7.6. Сложные типы - записи.

7.7. Сложные типы - множества.

7.8. Управляющие структуры.

7.8.1. Условные операторы в Паскале. 7.8.2. Циклы в Паскале.

7.8.2.1. Цикл с предусловием в Паскале:

7.8.2.2. Цикл с постусловием:

7.8.2.3. Цикл FOR... DO.

7.8.3. Процедуры break и continue в теле циклов. 7.9. Подпрограммы.

7.9.1. Разновидности подпрограмм, способ определения. 7.9.2. Опережающие объявления подпрограмм. 7.9.3. Объявление внешних подпрограмм. 7.9.4. Подпрограммы как параметры других подпрограмм. 7.9.5. Переменные процедурного типа. 7.9.6. Обмен данными между подпрограммами через общие области памяти.

7.9.7. Статические локальные переменные. 7.9.8. Бестиповые параметры - переменные.

7.9.9. Рекурсия.

7.10. Модули и библиотеки модулей в Паскале. 7.10.1. Структура модулей.

7.10.2. Система библиотечных модулей Паскаля (краткие справочные данные).

7.10.2.1. Подпрограммы обработки символов. 7.10.2.2. Подпрограммы обработки строк.

7.10.2.3. Математические подпрограммы. 7.10.2.4. Подпрограммы для работы с адресами. 7.10.2.5. Подпрограммы работы с динамически распределяемой на стадии выполнения программы памятью - "кучей". 7.10.2.6. Подпрограммы для работы с файлами. 7.10.2.7. Подпрограммы для работы с каталогами. 7.10.3.Модуль CRT.

7.10.4. Модуль DOS.

7.10.4.1. Подпрограммы опроса и установки параметров MS DOS. 7.10.4.2. Подпрограммы для работы с часами и календарем. 7.10.4.3. Анализ ресурсов дисков. 7.10.4.4. Подпрограммы для работы с каталогами и файлами. 7.10.4.5. Подпрограммы для работы с прерываниями MS DOS. 7.10.5. Модуль Strings. 7.11. Использование ресурсов в прикладных программах. 7.11.1. Обработка "хвоста" командной строки 7.11.2. Организация субпроцессов в Турбо Паскале

7.11.4. Некоторые типовые подпрограммы работы с клавиатурой в прикладных Паскаль - программах.

7.11.4.1. Общие сведения о клавиатуре и средствах ОС для обработки клавиатурного ввода. 7.11.4.2. Подпрограммы для обработки клавиатурного ввода.

7.11.5. Управление выводом на дисплей средствами языка Паскаль 7.11.5.1. Еще о модуле CRT.

7.11.5.2. Нестандартные методы работы с текстовыми изображениями.

7.11.5.3. Организация доступа к видеопамяти.

7.11.5.4. Управление формой курсора.

7.11.5.5. Графический вывод.

8. Практическое процедурное программирование в (Турбо, Borland) Паскаль.

8.1. Извлечение аргументов из командной строки. 8.2. Процедура, решающая квадратные уравнения с вещественными коэффициентами, заданными в командной строке. 8.3. Простые числа.

8.4. Определение длины строки, заданной указателем на начало и "закрытой" нулем.

8.5. Копирование строки, заканчивающейся двоичным нулем. 8.6. Сравнение 2-х строк.

8.7. Выделение и преобразование в целое цифровой подстроки в строке, заданной указателем на начало и завершающейся нулем. 8.8. Печать отрезка ряда чисел Фибоначчи с длиной, заданной в командной строке.

8.9. Подпрограмма обмена значениями между двумя областями памяти. 8.10. Программирование рекурсивных алгоритмов.

8.10.1. Простейший пример использования рекурсии - вычисление факториала натурального числа.

8.10.2. Рекурсии - задача о Ханойских башнях.

8.10.3. Рекурсии - программный генератор перестановок N попарно различных чисел.

8.10.4. Рекурсия и алгоритмы перебора вариантов с возвратом.

8.10.5. Простые числа - решето Эратосфена и битовая упаковка булевских переменных.

8.11. Примеры простых программ, работающих с файлами. 8.11.1. Запись в файл: Вывести в файл с заданным в командной строке именем текущую таблицу кодировки символов.

8.11.2. Чтение из файла.

8.12. Простые примеры непосредственной работы с видеобуфером. 8.13. Пример работы с таблицей знакогенератора. 8.14. Прикладное программирование в среде (Турбо, Борланд) Паскаль на более сложных примерах.

8.14.1. Обработка одномерных числовых массивов (векторов).

8.14.2. Обработка двумерных числовых массивов (таблиц или матриц или массивов векторов).

8.15. Работа с текстовыми строками.

8.15.1. Сортировка строк.

8.15.2. Синтаксический анализ выражений (формул), заданных символьной строкой.

8.15.3. Рекурсивный интерпретатор формул, заданных на стадии выполнения программы в виде символьной строки.

8.16. Работа в графическом режиме с библиотекой Borland Graphics Interface (BGI) при построении графиков функций.

8.17. Работа с массивами структур файлового хранения

9. Введение в объектно-ориентированное программирование на Borland C++. 9.1. Предварительные сведения.

9.2. Дополнения к Си, не связанные с ООП. 9.3. Классы.

9.4. Инкапсуляция.

9.5. Конструкторы.

9.6. Определение функций-членов.

9.7. Деструкторы.

9.8. Шаблоны классов и функций.

9.9. Друзья класса.

9.10. Перегрузка операторов

9.11. Наследование свойств классов.

9.12. Полиморфизм и виртуальные функции.

9.13. Стандартные библиотеки классов Borland С++.

9.13.1. Потоки ввода - вывода.

9.13.2. Библиотеки контейнерных классов С++.

9.13.2.1. Общие сведения.

9.13.2.2. Объектные контейнеры.

Список использованной литературы.