
- •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
- •Ввод-вывод файлов
- •Выбор компонентов для групповых операций
- •Установка разделяемых свойств компонентов
- •Изменение размера компонентов
- •Выравнивание компонентов
- •Пример: Создание текстового редактора Проектирование формы приложения
- •Создание обработчиков событий
- •Создание меню
4. Структуры
Массив это упорядоченная совокупность однородных элементов. Иначе говоря, все элементы должны иметь одинаковый тип. Ну, а что делать, если нужно в массив записать элементы разного типа? Например, необходимо хранить вместе номер квартиры, ее площадь и имя хозяина. Первая величина целая, вторая действительная, а третья вообще строка. Конечно, эти величины можно записать в разные переменные, но С++ позволяет их агрегировать, т.е. рассматривать совокупность нескольких величин разного типа, как одну переменную. Такие агрегированные (объединенные) переменные называются структурами. Структура это упорядоченная совокупность элементов разного типа. Упорядоченность, в отличие от массива, заключается не в присвоении номера элементу, а в присвоении имени.
Прежде чем раасказать о том как создать структуру и как с ней работать заметим, что С++ работает не только с базовыми типами данных, но так же позволяет определить новый тип данных. Делается это с помощью оператора typedef. Например, известно, что в программе будут использованы строковые массивы для хранения фамилий. Фамилии хранятся в виде строк. Для того чтобы каждый раз не определять строковый массив, можно определить его один раз как новый тип.
typedef char name[50];
Теперь можно пользоваться новым типом name. Рассмотрим пример, в котором принято такое объявление.
#include <iostream>
using namespace std;
int main(void)
{
typedef char name[50];
name n1,n2;
cin>>n1>>n2;
cout<<n1<<endl<<n2;
char z;
cin>>z;
return 0;
}
На самом деле, typedef не определяет новый тип, а просто дает имя шаблону (для существующих типов), по которому нужно строить или хранить данные. А вот теперь рассмотрим как, на самом деле, можно создать новый тип данных. Для этого вернемся к объявленной теме.
Описание структуры, а точнее структурного типа, выглядит следующим образом:
struct Имя_ структурного типа
/ к имени структуры предъявляются обычные,
// для имен переменных, требования
{
объявление членов (иногда говорят полей) структуры, например,
int number;
double temperature;
char day;
}; // Описание заканчивается точкой с запятой !!!
Вместо термина «Имя структуры» иногда используется термин дескриптор структуры.
Обращение к члену структуры производится с указанием через точку имени структуры и имени элемента:
Имя_структуры.Имя_члена_структуры
Понятие структура значительно , чем понятие массива. На самом деле, каждый раз объявляя структуру, мы создаем новый тип, который, далее объявляется в программе.
#include<iostream.h>
#include<windows.h>
struct book{
char name[10];
int page;
float price;
};
int main(void)
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
book b1;
cout<<"Название книги: ";
cin>>b1.name;
cout<<"Цена: ";
cin>>b1.price;
cout<<"число страниц: ";
cin>>b1.page;
cout<<b1.name<<endl<<b1.price<<endl<<b1.page;
char z;
cin>>z;
return 0;
}
Можно создать массив из струтур
#include<iostream.h>
#include<windows.h>
struct book{
char name[10];
int page;
float price;
};
main(){
book b[3];
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
for(int i=0;i<3;i++){
cout<<"Фамилия автора: " ;
cin>>b[i].name;
}
SetConsoleOutputCP(1251);
for(int i=0;i<3;i++){
cout<<"Имеются книги следующих автров: " <<b[i].name<<endl;;
}
char z;
cin>>z;
}
Приведем пример программы для расчета дохода по банковскому вкладу с помощью структуры. Для этого нужно знать начальную сумму, процентную ставку и количество периодов начисления процентов. Первые две величины это числа с дробной частью, например типа double, последнее целое число, например, int.
#include <iostream>
#include <cmath> //подключение библиотеки арифметических функций
using namespace std;
//------------------------------------------
struct account{ //объявление о создании структурного типа
// далее идет описание структуры
double beginSum; //начальная сумма
double procentStavka; //процентная ставка