- •Введение
- •Глава 1. Основы.
- •Int main()
- •1.2. Методика создания программ в Microsoft Visual Studio.
- •Void main(){
- •1.3. Ввод-вывод.
- •1.4. Переменные и константы.
- •Int I; // объявление целочисленной переменной
- •42 // Десятичная константа
- •0X42 // шестнадцатеричная константа, начинается с 0х
- •042 // Восьмеричная константа, начинается с 0
- •1.5. Арифметические операции.
- •Void main()
- •1.6. Встроенные функции. Математические функции. Состав math.H.
- •Void main()
- •Int rand(void); // функция используется без аргумента
- •Глава 2. Операторы и выражения.
- •2.1. Логические выражения и операторы
- •2.1.1. Оператор if else
- •If (условие)
- •If (условие)
- •2.1.2. Конструкция if else if
- •Int number;
- •Int number;
- •2.1.3. Условный оператор.
- •2.1.4. Оператор switch.
- •Int dvalue;
- •2.2. Операторы цикла.
- •2.2.1. Оператор for
- •Void main()
- •Int I; // создаем переменную цикла
- •Void main()
- •Int I; // переменную цикла можно определить и вне цикла
- •2.2.2. Изменение шага цикла
- •Void main()
- •2.2.3. Цикл while.
- •2.2.4. Цикл do while
- •Void main()
- •2.3. Операторы break и continue
- •Void main()
- •Void main()
- •2.4. Типичные ошибки при использовании операторов цикла
- •Глава 3. Производные типы данных.
- •3.1. Ссылки и указатели.
- •Int test; // объявили целочисленную переменную
- •Int & s_test; // ошибка! ссылка не связана с переменной
- •Int *p1; // объявлен указатель на целое с именем p1
- •3.2. Массивы и строки.
- •Int z[10]; //массив из 10 целых чисел
- •Int ar[3]; // объявлен целочисленный массив из 3 элементов
- •Int varr[4]; // объявление массива
- •3.2.2. Многомерные массивы.
- •Int z[3][4]; //массив из 12 целых чисел
- •3.2.3. Строки
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •If(strstr(st,st2)) //если подстрока встречается, выводим
- •3.1.5. Динамическое определение одномерных массивов.
- •3.1.6. Динамические двумерные массивы.
- •3.1.7. Указатели, массивы и арифметика указателей.
- •Int tacs[3];
- •Void main()
- •3.2. Структуры
- •Int age; // элементы структуры
- •Int hours;
- •Int mins;
- •Void main()
- •Int hours;
- •Int mins;
- •Void main()
- •4. Функции, определяемые пользователем
- •4.1. Объявление и определение функции
- •Int max(int , int ); // в прототипе достаточно указать только тип и
- •Void main() {
- •Int MyRand(){
- •Int func(){ return 1;} // правильное выражение
- •Int func2(){return 0.146;} // неправильно, 0.146 преобразуется к int с
- •Void swap(int p, int q)
- •Int bigger(int a,int b)
- •4.2. Передача параметров функций
- •5. Заголовочные файлы.
- •6. Работа с файлами
- •6.1 Простой файловый ввод/вывод
- •6.2 Тонкости работы с файлами
- •7.1. Определение классов.
- •Void main()
- •7.2. Как объявлять функции класса?
- •7.3. Конструкторы и деструкторы классов.
- •8. Графика OpenGl.
- •Void callback Draw()
- •Void main()
- •8.1. Создание анимации с помощью библиотеки xgl
- •Приложения Управление выводом
- •Управление шириной вывода
Int dvalue;
cin>>dvalue;
switch(dvalue)
{
case 0: // если dvalue равно нулю, то
// ...выполним эту часть программы...
break; // выход из оператора switch
case 1: // если dvalue равно 1, то
// ...выполним эту часть программы...
break;
case 3: // если dvalue равно 3, то
// ...выполним эту часть программы...
break;
default: // во всех других случаях выполнить:
// ... эту часть программы...
}
В этом примере ввод значения переменной dvalue приводит к выбору соответствующего варианта из списка switch. Оператор break прекращает выполнение switch и передаёт управление следующему за ним оператору. Заметим, что отсутствие оператора break не вызовет возражений компилятора, однако в этом случае будут по порядку выполнены все операторы, следующие за этой строкой, если только явно не указано иное. В С++ такое поведение программы определено умышленно, поскольку это упрощает использование нескольких меток. В следующем примере не делаются различия между строчными и прописными буквами, вводимыми с клавиатуры.
char choise;
cin>>choise;
switch(choise)
{
case ’a’:
case ’A’: cout<< ” abort”;
break;
case ’r’:
case ’R’: cout<< ” report”;
break;
default: cout<< ” That’s not a choise”;
}
Поскольку за меткой case ’a’: отсутствует оператор break, выполнение программы продолжается со следующей строки, с оператора, который расположен сразу после case ‘A’:.
Последний оператор default указывает на отрезок кода, который исполняется во всех остальных случаях, когда значение не соответствует ни одному из значений метки. Оператор default не является обязательным.
Как видим, и оператор switch, и оператор if else позволяют осуществить выбор из списка альтернативных вариантов. Оператор if else более гибок, в частности он позволяет обрабатывать диапазоны значений.
if (age>17 && age<20)
code=0;
else if (age>=20 && age<35)
code=1;
else if (age>=35)
code=2;
else
code=3;
Оператор switch не предназначен для обработки диапазонов. Кроме того, значение метки должно быть константой, а вариант метки – целым (включая тип char), поэтому switch не будет обрабатывать вещественные числа. Однако, если возможно, используйте оператор switch, так как это более эффективно с точки зрения скорости выполнения и размера программы.
2.2. Операторы цикла.
Нередко программа вынуждена выполнять повторяющиеся операции, например, вычисление сумм, произведений или многократный вывод текста на экран. Для этих целей в языке C++ используются операторы цикла.
2.2.1. Оператор for
Следующий листинг показывает, что можно делать с помощью оператора цикла for:
#include <iostream.h>
Void main()
{
Int I; // создаем переменную цикла
for(i=0; i<5; i++)
cout << ”C++ loops\n”; // выполняем до тех пор, пока
// i меньше 5 (i<5), после каждой
// итерации цикла значение переменной i
// увеличивается на единицу (i++)
cout << ” Loops stop\n”;
return;
}
Результат работы программы приведен ниже:
C++ loops
C++ loops
C++ loops
C++ loops
C++ loops
Loops stop
Как видно, оператор for поэтапно выполняет следующие действия.
Задает начальное значение переменной цикла ( i = 0).
Проверяет условие выполнения цикла (i<5).
Выполняет действия внутри тела цикла, если условие истинно. Как только условие становится ложным – цикл прекращается.
Выполняет операцию над переменной цикла в каждой итерации, в данном случае – это операция инкремента, т.е. увеличения значения переменной на единицу.
Тело цикла может содержать несколько операторов, в этом случае они группируются в блок при помощи фигурных скобок. Так, например, может выглядеть программа, которая суммирует вводимые с клавиатуры числа.
#include <iostream.h>