- •Введение
- •Глава 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
- •Приложения Управление выводом
- •Управление шириной вывода
Void main()
{
int aval, sum=0;
for(int i=0; i<5; i++) // можно определить переменную цикла здесь
{
cout << ” input number\n”;
cin<<aval;
sum = sum + aval;
}
cout << ” Sum equal ”<<sum;
}
Интересно, что условие выполнения цикла не обязательно должно принимать значение истина/ложь, так как в С целочисленное значение равное 0 эквивалентно логическому ложь, а не равное нулю - истина. Таким образом, если значение выражения станет равным нулю, то выполнение цикла прекратится.
int limit=4;
Int I; // переменную цикла можно определить и вне цикла
for (i=limit; i; i--) // закончить цикл когда i=0
cout<<” i= ” <<i;<<”\n”;
В этом примере для изменения переменной цикла используется операция декремента i - -(эквивалентно i = i -1).
2.2.2. Изменение шага цикла
В приведенных примерах переменная цикла уменьшалась или увеличивалась на единицу. Разумеется, для изменения величины переменной цикла можно использовать любые другие значения шага.
// пример: шаг цикла by вводится пользователем
#include <iostream.h>
Void main()
{
cout<<” Enter an integer\n ”
int by;
cin>>by;
cout<<” Step is: ”<<by<<”\n”;
for(int i=0; i<100; i=i+by)
cout << i<<”\n”;
}
Результат действия этой программы:
Enter an integer
Step is: 33
0
33
66
99
Когда значение i становится равным 132, выполнение цикла прекращается.
В качестве обновления переменной можно использовать любое действительное (с синтаксической точки зрения) выражение:
i=2*i;
i=i*i+1;
и т.д.
Рассмотренный цикл for является циклом с предусловием, т.е. условие выполнения цикла проверяется перед циклом, и если условие с самого начала является ложным, то программа вообще не выполнит цикла. К такому же типу можно отнести и цикл while.
2.2.3. Цикл while.
Цикл while напоминает собой цикл for без частей инициализации и обновления цикла.
while( условие выполнения цикла)
Тело цикла;
Программа проверяет условие, и если оно истинно (или не равно нулю), выполняется оператор(ы), составляющие тело цикла. После этого программа снова возвращается к проверке условия выполнения цикла и так до бесконечности, если программист не позаботится о некоторых действиях, которые смогут оказать влияние на значение условия продолжения цикла.
// этот цикл будет выполняться бесконечно
// пока не будет прерван нажатием Ctrl+C
int i=10;
while(i>0)
{
cout << ” i= ”<<i<<”\n”;
}
// а этот цикл выведет на экран 10 значений переменной i
int i=10;
while(i>0)
{
cout << ” i= ”<<i<<”\n”;
i--;
}
Условие while(i>0) можно заменить на более лаконичное, но менее наглядное: while(i) .
А вот как с помощью оператора while можно распечатать строку символов:
int i=0;
char car[20]="abrakadabra";
while(car[i])
{
cout<<car[i];
i++;
}
Выполнение цикла прекратится, как только будет достигнут признак конца строки \0. При этом символы интерпретируются как целые в соответствии со значением их ASCII кода.
2.2.4. Цикл do while
Третьим типом цикла в С++ является цикл do while. Синтаксис цикла выглядит так:
do
тело цикла
while (условие продолжение цикла); // обратите внимание
// на точку с запятой!
От двух предыдущих он отличается тем, что это цикл с постусловием, т.е. сначала выполняется тело цикла, а затем проверяется условие его выполнения. Таким образом, цикл выполняется хотя бы один раз. Цикл с постусловием используется гораздо реже, чем циклы с предусловием, но иногда цикл do while имеет смысл.
// в этом примере программа должна получить число до его проверки
#include <iostream.h>