- •Операторы ввода-вывода
- •Жизненный цикл программы
- •Способы описания алгоритмов
- •Базовые структуры
- •9______________
- •Типы данных
- •Операторы цикла
- •Указатели
- •Int *X;
- •Одномерные массивы
- •Обработка одномерных массивов
- •Описание двухмерного массива
- •Обработка матриц
- •Функции
- •Общий вид описания функции
- •Обращение к функции
- •Механизм замены параметров
- •Параметры-массивы в функциях
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
Работа с текстовыми файлами
Файлы бывают текстовые (в которых можно записывать только буквы, цифры, скобки и т.п.) и двоичные (в которых могут храниться любые символы из таблицы). В текстовых файлах не употребляются первые 31 символ кодовой таблицы ASCII (управляющие), а символы конца строки 0x13 (возврат каретки, CR) и 0x10 (перевод строки LF) преобразуются при вводе в одиночный символ перевода строки \n (при выводе выполняется обратное преобразование). Эти символы добавляются в конце каждой строки, записываемой в текстовый файл. При обнаружении в текстовом файле символа с кодом 26 (0x26), т.е. признака конца файла, чтение файла в текстовом режиме заканчивается, хотя файл может иметь продолжение.
Создать текстовый файл можно с помощью текстового редактора и с помощью программы.
39__________
Обработка бинарных файлов
Если файл открыт в бинарном режиме, его можно записывать или считывать побайтно. Функция fseek() позволяет обращаться с бинарным файлом как с массивом и переходить к любой позиции в файле, обеспечивая возможность произвольного доступа. Если текстовые файлы являются файлами с последовательным доступом, то к бинарным файлам может применяться произвольный доступ.
40__________
С++: Динамические структуры данных: характеризуются непостоянством и непредсказуемостью размера структуры в процессе обработки отсутствием физической смежности элементов структуры.
Для установления связи между элементами структуры используются указатели, через которые устанавливаются явные связи между элементами. Элемент динамической структуры состоит из нескольких полей:
Информационное поле или поле данных, в котором содержатся те данные, ради которых и создается структура
Полей связи, в которых содержится одна или несколько указателей, связывающей данных элемент с другими элементами структуры.
К динамическим структурам данных относятся:
1. Связные линейные списки
2. Стеки
3. Очереди
4. Многосвязные списки
5. Деревья
41__________
С++: связные линейные списки:
Список называется односвязным, когда каждый элемент содержит ссылку на следующий. Если добавить в каждый элемент вторую ссылку — на предыдущий элемент, получится двунаправленный список (двусвязный), если последний элемент связать указателем с первым, получится кольцевой список. Каждый элемент списка содержит ключ, идентифицирующий этот элемент. Над списками можно выполнять операции:
• начальное формирование списка (создание первого элемента);
• добавление элемента в конец списка;
• чтение элемента с заданным ключом;
• вставка элемента в заданное место списка (до или после элемента с заданным
ключом);
• удаление элемента с заданным ключом;
• упорядочивание списка по ключу.
42__________
С++: стеки:
Стек – частный случай однонаправленного списка добавление и удаление элементов в который выполняется с одного конца, называемого вершиной стека. Говорят, что стек реализует принцип обслуживания LIFO(last in – first out). Стеки хорошо применяются в системах программирования, компиляторах, в различных рекурсивных алгоритмах.
43_________
С++: очередь:
Очередь – частный случай однонаправленного списка добавление элементов в который выполняется с одного конца, а удаление с другого конца. Говорят, что очередь реализует принцип обслуживания FIFO(first in – first out). Очереди применяются при моделировании систем массового обслуживание, диспетчеризации задач операционной системы, буферизованном вводе/выводе. Та сторона очереди, с которой осущ-ся добавление, наз-ся хвостом или концом очереди, другая – голова.
44_________
С++: деревья:
Частный случай многосвязных списков. Древовидные структуры или просто деревья. Деревом назыв. стр-ра, которая характеризуется следующими свойствами:
1) Существует единственный элемент или узел, на который не ссылается никакой другой элемент и называется корнем.
2) Начиная с корня и следуя по определённой цепочке указателей, содержащихся в элементах, можно осуществить доступ к любому элементу структуры.
3) На каждый элемент, кроме корня, имеется единственная ссылка, т.е. каждый элемент адресуется единственным указателем.
4) Узлы могут быть любого типа, за исключением файлового.
Бинарное дерево – динамическая структура данных, состоящая из узлов, каждый из которых содержит, кроме данных, не более 2-х ссылок на различные поддеревья. Такое дерево можно реализовать в виде двухсвязного списка.
45_________
ООП: описание класса:
Класс является абстрактным типом данных, определённым пользователем и представляет собой модель реального объекта в виде данных и функций для работы с ними. Данные класса назыв. полями, а ф-ии класса – методами поля и методы называются элементами класса. Описание класса выглядит так: class<имя>{
[private:] <описание скрытых элементов>
Public: <описание доступных элементов>
};
46_________
ООП: методы класса:
Вызов методов класса. При вызове методов класса необходимо связать метод с объектами этого класса. Поэтому имена объектов(р) связаны с именем ф-кции (метода) операцией тыка(.):
p.InitPoint(10,10); p.relmove(5;10);
Замечание! Это напоминает доступ к полям стр-ры.
Вызов методов InitPoint() и relmove() приводит к изменению значений полей x и y.
47_________
ООП: инкапсуляция:
Инкапсуляция – это механизм, объединяющий данные и методы, манипулирующие этими данными, и защищающий и то, и другое от внешнего вмешательства или направленного использования. Когда методы или данные объединяются таким способом, создаётся объект.
48_________
ООП: наследование. Иерархия классов:
Наследование - важная часть ООП. Выигрыш от него состоит в том, что наследование позволяет использовать существующий код несколько раз. Простым называется наследование, при котором производный класс имеет одного родителя.
Иерархия классов: на основе принципа наследования может быть построена иерархия классов. Одним из примеров иерархии является база данных.
49_________
ООП: полиморфизмы. Виртуальные методы:
Полиморфизм – один из важнейших механизмов ООП.
Полиморфизм реализуется с помощью наследования классов и виртуальных методов. Полиморфизм состоит в том, что с помощью одного и того же обращения к методу выполняющие различные действия в зависимости от типа, на который ссылается указатель в каждый момент времени.
50_________
Stdafx - нужен для обеспечения возможности включения предкомпиляции заголовков
Cstdio – содержит определения функций ввода и вывода
Cstdlib – одержит функции для выделения памяти
Iostream - содержит определения функций ввода и вывода
Locale – используется для задач, связанных с локализацией
Conio - для создания текстового интерфейса пользователя, ввода или вывода
String-содержащит функции для работы со строками.
Библиотека STL/CLR представляет собой упакованную библиотеку стандартных шаблонов (STL) :
алгоритм (algorithm)- определяет вычислительную процедуру.
контейнер (container)-управляет набором объектов в памяти.
итератор (iterator)- обеспечивает для алгоритма средство доступа к содержимому контейнера.
функциональный объект (function object)- инкапсулирует функцию в объекте для использования другими компонентами.
адаптер (adaptor)- адаптирует компонент для обеспечения различного интерфейса.
Библиотека ATL- предназначенная для разработки компонентов. С помощью библиотеки ATL вы можете создать собственную особую кнопку и затем использовать ее в программах.
Библиотека MFC -предназначена в основном для создания приложений с пользовательским интерфейсом (окна, диалоги и т. п.).
Библиотека .NET Framework (строки, массивы и элементы форматирования, передача данных по сети, базы данных, Web-программирование и др)