
- •1.1. Что такое программа и как она выглядит?
- •1.2. Комментарии
- •1.3. Зарезервированные слова и типы данных
- •1.4. Объявление переменных
- •1.5. Операции и выражения
- •1.6. Ввод и вывод
- •1.7. Переменные и константы
- •1.8 Логические операторы
- •1.9. Управляющие операторы
- •1.10. Операторы циклов
- •1.11. Операторы перехода
- •2. Функции
- •2.1. Передача параметров
- •2.2. Библиотечные функции
- •2.3. Локальные и глобальные переменные
- •Объявления функций
- •Время жизни и область видимости программных объектов
- •Int local_var; /* по умолчанию auto */
- •2.4. Перегрузка
- •Виртуальный метод
- •3. Массивы
- •Перечисления
- •Объединения
- •858993459 //Результат будет неопределенным,
- •Множества
- •4. Структуры
- •Int numberPeriod; //число переодов начисления процентов
- •Int page; //Количество страниц
- •Void print(); /*Внимание, записывается только прототип функции */
- •Int yearBorn; //год рождения
- •Int yearBorn; //год рождения
- •4.1. Демонстрационные программы
- •Int done;/*переменная, которая информирует о конце списка файлов */
- •6. Объединения
- •Info;//Обявление переменной типа объединение
- •Info;//Обявление переменной типа объединение
- •7. Объектно-ориентированное программирование
- •7.1. Классы и объекты
- •Демонстрационные программы
- •Результат работы программы
- •7.2. Конструкторы и деструкторы
- •Конструктор копирования
- •Конструктор копирования
- •7.5. Наследование
- •7.3. Создание объектов и обращение к членам объекта
- •8. Абстрактные типы данных
- •9. Пространство имен
- •Void greeting();/*это пространство имен содержит функцию с тем же
- •Void big_greeting(); /*эта функция не попадает ни в одно из созданных подпространств,т.Е. Принадлежит пространству имен std */
- •//Определение функций
- •Void big_greeting() /* определение данной функции не принадлежит ни одному из созданных пространств имен, следовательно дальнейший код помещается в глобальное пространство имен */
- •10. Строки
- •4.3 Демонстрационные программы
- •4.10. Класс string
- •Класс AnsiString
- •Класс AnsiString
- •Класс Set
- •4.9. Перегрузка операторов
- •Использование "умных" указателей
- •4.8. Полиморфизм
- •Главное меню — компонент MainMenu
- •Диалоги
- •Файлы и потоки
- •Ввод-вывод в файл
- •Ifstream inStream; //Объявление входного потока
- •InStream.Open("character.Dat"); /*присоединение файла к входному потоку */
- •InStream.Close(); //закрытие входного потока
- •If(!out){ //при неудачной попытке
- •If(in.Fail()){ //поток не создан, то сообщение и выход
- •Управление потоком ввода-вывода
- •Дополнительные возможности cin и cout
- •Что внутри iostream.H
- •Использование cout
- •Использование символа-заполнителя
- •Управление цифрами значений с плавающей точкой
- •Вывод и ввод одного символа за один раз
- •Чтение ввода с клавиатуры по одному символу за раз
- •Чтение с клавиатуры целой строки
- •Что вам необходимо знать
- •5.2. Ввод имен файлов
- •5.3. Манипуляторы
- •5. Указатели
- •5.1.Типы указателей и операции с указателями
- •Адресная арифметика
- •Сравнение указателей
- •Преобразование типа указателя
- •Указатель void
- •5.2. Динамические массивы
- •Int array[10]; //объявляется массив с именем array
- •Int a[10]; //объявляется массив с именем a
- •Int *array1; //указатель типа int с именем array1
- •Int *array[5];/*массив с именем array, его элементы указатели*/
- •Int (*point)[4][5]; /*объявление указателя на двумерный массив без имени */
- •Использование указателей в функциях и указатели на функции
- •Указатель классов
- •Шаблоны
- •Шаблоны функций
- •Void Swap (t& X, t& y) /* к моменту обращения тип т будет известен и заменен, например, на int */
- •Void sort(t array[], int maxIndex){ /*передали массив и его размер */
- •6.2. Шаблоны классов
- •6.3 Демонстрационные программы
- •7.1 Обработка исключений
- •Исключения и их стандартная обработка
- •Базовый класс исключений vcl Exception
- •Упражнения
- •Обработка исключительных ситуаций, возбуждаемых оператором new
- •Исходные файлы и объявление переменных
- •Связанные списки
- •Void newHead(PtrNode& head, //адрес головного узла
- •Void newHead(PtrNode& head, //адрес головного узла
- •Поиск в связанных списках
- •Void newHead(PtrNode& head, //адрес головного узла
- •Директивы препроцессора.
- •Структура файла проекта
- •Структура make-файла
- •Структура модуля
- •Структура h-файла
- •Файл формы
- •Особенности программирования под Windows.
- •Создание окон.
- •Функция WinMain
- •Создание проекта Win32Application.
- •Библиотека mfc.
- •Создаем код
- •Шпаргалка
- •Структура файла проекта
- •Структура make-файла
- •Структура модуля
- •Структура h-файла
- •Файл формы
- •Файл проекта
- •Введение
- •Свойства компонентов
- •События
- •Менеджер проектов
- •Пример: создание простейшего приложения
- •Графика Внедрение картинок
- •Редактор изображений
- •Классы для хранения графических объектов.
- •If (SelectDirectory( //Компонент библиотеки
- •Методы создания собственной графики. Рисование по пикселам
- •Int px, py; //координаты пикселей
- •Рисование с помощью пера
- •Int px, py; //координаты пикселей
- •Рисование кистью
- •Мультимедиа и анимация Общие сведения о звуковых и видеофайлах
- •Способы воспроизведения звуков
- •Создание мультфильма
- •Воспроизведение немых видео клипов — компонент Animate
- •Проигрыватель MediaPlayer
- •Процессы, потоки, распределенные приложения
- •If include "uOverlayl.H" // включение головного файла приложения
- •Функция CrateProcess
- •Заключение
- •Что такое ansi?
- •Почему вместо русских букв в консольном приложении выводится мусор? Автор: Алексей Кирюшкин Версия текста: 1.0
- •Выход 1
- •Выход 2
- •Выход 3
- •Выход 4
- •Ввод-вывод файлов
- •Выбор компонентов для групповых операций
- •Установка разделяемых свойств компонентов
- •Изменение размера компонентов
- •Выравнивание компонентов
- •Пример: Создание текстового редактора Проектирование формы приложения
- •Создание обработчиков событий
- •Создание меню
6.3 Демонстрационные программы
Очень часто шаблоны функций встречаются в задачах сортировки массивов. В одной задаче это может быть массив целых чисел, в другой массив символов или строк и т.п. Алгоритмов сортировки разработано достаточно много. Одним из алгоритмов такого рода, который используется для сортировки небольших массивов с числом элементов до 1000, является метод пузырьковой сортировки. Рассмотрим этот метод на примере целых чисел, которые нужно отсортировать по возрастанию. Метод состоит в сравнении соседних чисел. Если последующее число меньше предыдущего, то числа меняются местами. Если нет, то сравнивается следующее число и т.д. После нескольких проходов удается расставить числа в соответствии с заданными требованиями.
Для массива с десятью целыми числами фрагмент кода, реализующий этот алгоритм выглядит так:
int a[]={10,9,8,7,6,5,4,3,2,1};
const int MAX=sizeof(a)/sizeof(a[0]);
for (int j=0; j<MAX-1; j++)
fot (int k=j+1; MAX-1; k++)
if(a[j]>a[k])Swap(a[j],a[k]);
Функция Swap(a[j],a[k])осуществляет обмен элементов массива.
Сейчас мы рассмотрим практический пример шаблона функции, предназначенной для сортировки. В ней использован оператор sizeof, который возвращает длину в байтах следующей за ним переменной или типа. Если он стоит перед типом, то тип заключается в круглые скобки. Если перед переменной то круглые скобки необязательны. Например,
int I;
cout<<sizeof(int);
cout<<sizeof i;
Кроме того, мы используем функцию strcmp()
Итак, вот код шаблона
#define SIZEOF (array) sizeof(array)/ sizeof(array[0])
Задачи.
1. Напишите функцию min(), возвращающую меньший из двух своих аргументов. Например,min(3,4)должна возвратить3, аmin(‘c’,’a’)возвратитьа.
2. Напишите код функции find().Эта функция ищет объект в массиве . Она возвращает индекс найденного объекта если его удалось найти или -1, если заданный объект не найден. Пример для объекта типа int.
int find(int object, int *list, int size){...}
Параметр size задает количество элементов массива.
7.1 Обработка исключений
Когда программист пишет код, то ему кажется, что он предусмотрел все. Но когда этот код начинает работать как программа, выясняется, что дискета с необходимым файлом не вставлена в дисковод, или, что еще хуже, данне в файле повреждены. Другой пример. Все знают, что на нуль делить нельзя. Однако часто ли вы при выполнении деления проверяли знаменатель на его равенство нулю? Да мало ли еще подобных ситуаций встречается при работе с копьютером. Такие необычные ситуации у программистов встречаются нередко.
Возможно, что вы никогда не задумывались над тем, что операционной системе компьютера постоянно приходится решать задачи связанные с возникновением необычных ситуаций, и она решает их достаточно успешно. Каким образом операционной системе удается выходить из подобных ситуаций? Ответ простой - дело в том, что такие ситуации заранее предусмотрены. Они называются особыми или исключительными. Как только возникает исключительная ситуация устройство сигнализирует о том, что произошло нечто необычное. Это действие называется генерацией исключения (throwing an exception). После чего операционная система распознает тип ситуации и переходит к её обработке, т.е. к выполнению определенной инструкции заранее подготовленной разработчиками операционной системы. Например, всем приходилось указывать файл на дискете, в то время как дискета уже была снята с дисковода, но никогда после этого копьютер не выполнял команды на считывание или запись. Этого не происходит именно потому о чем мы сейчас сказали.
Приступая к написанию программы каждый человек надеется, что все события происходящие во время ее выполнения будут именно такими как он предполагает. Например, если программа обращается к файлу, то такой файл существует, если программа обращается к элементу массива, то такой элемент существует (хотя в C++ легко выйти за границу массива), и т.д. Очень часто такие предположения оказываются неверными, и тогда результат выполнения программы будет непредсказуем. Возможно, что вступит в действие обработчик событий операционной системы, как, например, часто бывает при делении на ноль, и программа аварийно завершится, но возможны и другие результаты, иногда связанные с потерей информации, зацикливанием и другими неприятными последствиями. Для того, чтобы избежать такого рода неприятностей в С++ существует понятие исключения (exception). Исключение это состояние, которое достигается программой при её выполнении. Такое состояние может быть вызвано как возникновением непредвиденной ситуации, так и заранее предусмотренными действиями программиста.