- •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. Массивы
- •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()){ //поток не создан, то сообщение и выход
- •Управление потоком ввода-вывода
- •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( //прототип функции создающей узел
- •Void newHead(//прототип функции создания узла
- •Поиск в связанных списках
- •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" // включение головного файла приложения
- •Функция CreateProcess
- •490 _ Глава 7
- •7.8.4 Элементы ActiveX
- •492 Глава 7
- •494 Глава 7
- •7.9 Компоненты-серверы сом
- •496 Глава 7
- •7.9.2 Свойства и методы сервера Word
- •500 Глава 7
- •Заключение
- •Что такое ansi?
- •Почему вместо русских букв в консольном приложении выводится мусор? Автор: Алексей Кирюшкин Версия текста: 1.0
- •Раздел I.2Выход 1
- •Раздел I.3Выход 2
- •Раздел I.4Выход 3
- •Раздел I.5Выход 4
- •(A)Потоки
- •(C)Ввод-вывод файлов
- •Выбор компонентов для групповых операций
- •Установка разделяемых свойств компонентов
- •Изменение размера компонентов
- •Выравнивание компонентов
- •Пример: Создание текстового редактора Проектирование формы приложения
- •Создание обработчиков событий
- •Создание меню
1.4. Объявление переменных
Скорее всего, изучая в школе алгебру, вы не задумывались над вопросом - зачем нужны формулы? Хотя ответ очевиден. Формулы позволяют выполнить необходимые действия над числами в указанной последовательности, после того как вместо обозначений этих чисел будут подставлены их конкретные значения. В своем роде формула это алгоритм вычисления, рассказывающий в какой последовательности производить вычисление. В программировании также используются формулы, которые обычно называют выражениями. В выражениях, как в алгебраических формулах, вместо чисел могут стоять буквы или даже наборы букв и цифр. Эти буквы называются именами переменных. Например, для вычисления длины окружности радиуса R используется известная формула L=2πR. С точки зрения программирования длина окружности, радиус и само число π - это переменные, хотя на самом деле последняя величина представляет собой константу. Переменным могут быть присвоены различные имена, или, как говорят, идентификаторы. Например, длину окружности можно назвать не L, а L_kruga или еще как-нибудь.
Имена переменных подчиняются специальным правилам. Имя переменной может быть произвольной длины, но обязательным является то, чтобы имя начиналось с буквы или знака подчеркивания и не содержало пробелов или специальных символов. Иначе говоря, имя это одно слово, состоящее из букв латинского алфавита, знака подчеркивания, знака доллара и цифр, причем имя начинается с буквы или знака рограммы. Заглавные и строчные буквы в С++ различаются, т.е. имя radius, Radius, raDius рассматриваются как разные переменные. Длина имени, как указывалось, не ограничена, однако имена различаются только конечным количестовом первых символов. Для “Borland C++ Builder 6.0” это первые 250 символов, хотя для других компиляторов эта величина значительно меньше.
Казалось бы, что может быть проще, чем дать имя переменной. Однако даже при этом можно сделать множество ошибок. Поэтому, прежде чем пойти дальше рассмотрим несколько примеров ошибочных имен.
1-secunda // начинается с цифры и используется знак минус, или тире.
first secunda // содержит пробел, т.е. состоит из 2-х слов.
Ivan&Mary //содержит спецсимвол &
main // зарезервированное слово
радиус // написано кириллицей
f(x,y) // спецсимволы – скобки, запятая
Теперь вернемся к процессу написания программы. После того как начало программы обозначено словом main, кстати, это слово означает, что последующая программа является главной, идет объявление переменных, которые используются в программе. Строго говоря, это не совсем так. Объявление может быть в любом месте программы. Важно, чтобы переменная была описана еще до того как она начнет участвовать в командах. Это один из основных принципов программирования в С++. Объявление состоит из названия типа переменной и ее имени. Объявление заканчивается точкой с запятой. Пример:
int i, j, k; /* Это объявление 3-х целочисленных переменных с именами i,j,k */
float L_kruga, radius; /* Это объявление 2-х переменных с плавающей точкой */
Обратите внимание, что при объявлении переменных отделение типа переменных от их имен производится с помощью одного или нескольких знаков пробела, а при перечислении переменных в качестве разделителя используется запятая, а пробелы лишь «украшают» текст. Вообще пробелы можно использовать с любым разделителем перед, или после него. Такое правило используется довольно часто. Например, пробел можно поставить перед знаком точка с запятой.
Объявление переменных это своего рода приказ компьютеру зарезервировать участки памяти в которых он будет хранить значения названных переменных в соответствии с объявленной кодировкой. Но в отведенный резерв пока ничего не записывается.
Может так случится, что вы описали переменную, но в силу каких-либо причин не воспользовались ею в программе. Возникает вопрос, а не повредит ли это программе? Ответ очень простой. Ничего страшного не произойдет. В момент описания вы просто сообщаете компьютеру о том, что ему нужно зарезервировать в памяти указанное количество байтов в которые могут быть записаны переменные указанной длины, а в программе вы просто не воспользовались этим резервом.
В заключении настоящего параграфа приведем пример простой программы.
main()
{
int x,y;
float u,v;
}
Эта программа не выполняет никаких действий. Она выделяет в памяти место для дальнейшего хранения переменных x,y типа int и u,v типа float. После этого программа заканчивает свою работу так ничего и не сделав с этими переменными.