
- •Часть 1
- •Лекция 1
- •Лекция 3
- •Алфавит
- •Идентификаторы
- •Константы
- •Знаки операций и разделители
- •4. Знаки операций.
- •Унарные операции.
- •Бинарные операции
- •5. Разделители.
- •Выражения.
- •4.1 Условный оператор
- •4.2. Переключатели
- •5.Оператор цикла с предусловием.
- •6.Оператор цикла с постусловием.
- •7.Оператор итерационного цикла
- •8.1.Оператор goto
- •8.2.Оператор return
- •8.3.Оператор break
- •8.4.Оператор continue
- •Функция strcpy()
- •2. Функция strcat().
- •3. Функция strcmp()
- •12. Функция strlen().
- •Лекция 11
- •Лекция 12
- •Лекция 14
4.1 Условный оператор
Синтаксис:
if (<выражение>)
<оператор 1>;
else
<оператор 2>;
Здесь <выражение > - это логическое или арифметическое выражение, <оператор 1> и <оператор 2> - любые операторы С++, в том числе блоки или составные операторы..
Семантика:
Вначале вычисляется значение <выражения>. Если оно “истина” (выражение # 0 ), то выполняется <оператор 1>, в противном случае <оператор 2>.
Пример.
if (x<0)
{
x = -x;
f(x+2);
}
else
{
int i = 2;
x *= i;
f(x);
}
Все объекты, определенные в блоке, локализованы в нем.
Например:
if (j > 0)
{
int i;
i = 2*j;
}
else
i = - j; // ошибка: переменная i видима внутри блока
Пример. Вычислить частное от деления двух целых чисел.
#include <iostream.h>
void main()
{
int a,b;
cout << “ Введите числитель: “ ;
cin >> a;
cout << “ Введите знаменатель: “ ;
cin >> b;
if(b)
cout << “ Результат: “ << a / b << ‘\n’;
else
cout << “ на нуль делить нельзя. \n “ ;
}
Допустима сокращенная форма условного оператора, в которой отсутствует ветвь else.
Например:
if (a < 0 ) a = -a;
В этом случае при невыполнении условия никакие действия не выполняются.
Следует отметить, что <оператор 1> и <оператор 2> могут быть условными без ветви else. Синтаксис языка предполагает, что при вложенных условных операторах каждая ветвь else соответствует ближайшему к нему оператору if.
Пример: Найти максимальное значение из трех вещественных чисел: x, y, z.
…..
if ( x < y)
if ( y < z)
max = z;
else
max=y;
else
if(x<z)
max=z;
else
max=x;
….
4.2. Переключатели
Этот оператор позволяет делать выбор одной из множества альтернатив.
Синтаксис.
switch (<выражение>)
{ case <константа 1> : <оператор 1>;
case <константа 2> : <оператор 2>;
……..
case <константа n> : <оператор n>;
default : <оператор>;
}
Здесь <выражение> и константы должны быть одного символьного или целого типа,
<оператор i> - любой оператор С++.
Семантика. Вначале вычисляется значение <выражения>. Затем выполняется поиск оператора, которому предшествует константа, равная значению <выражения>. Если такой оператор найден, он выполняется, в противном случае осуществляется переход к оператору с меткой default. Если эта метка отсутствует, то не выполняется ни один из операторов. Если в конструкции выбора (альтернативе) не предусмотрен выход из переключателя с помощью оператора break, то в переключателе последовательно выполняются все операторы, начиная с той метки, на которую передано управление до тех пор, пока не встретится break или конец оператора switch В переключателе каждому оператору может предшествовать несколько констант выбора, которые отделяются друг от друга символом “:”.
Пример. Вывести на экран название нечетных цифр, которые не меньше заданной. Если задана цифра 2, то вывести 2,5,7,9 и т.д.
#include <iostream.h>
void main()
{ int cifra;
cout << “Введите цифру : “;
cin >> cifra;
cout << ‘\n’;
switch (cifra)
{ case 0: case 1: cout << “один, ”;
case 2: case 3: cout << “три, ”;
case 4: case 5: cout << “пять, ”;
case 6: case 7: cout << “семь, ”;
case 8: case 9: cout << “девять. ”;
break;
default : cout << “ошибка !”;
}
}
Результаты:
Введите цифру : 4
пять, семь, девять.
Введите цифру : а
ошибка !
Если поместить операторы break после вывода каждой цифры, то программа будет выводить на экран название только одной нечетной цифры.
Вопросы
1.Значение R после выполнения операции логического присваивания
R = ! (A || B || (X > 2) && (Y < 0))
при A = false, B = false, X = 3, Y = 2 будет равно
1. –1;
2. false;
3. true;
4. 0;
5. 1.
2. Значения переменных p и d после выполнения фрагмента кода
…
int k=47,d; bool p;
switch(k%9)
{case 5:{d=k;p=true;break;}
case 0:case 1:case 2:{d=2;p=false;break;}
case 8:{d=1;p=true;break;}
}
…
равны
1. p = true, d = 1;
2. p = false, d = 2;
3. p = false, d = 3;
4. p = true, d = 47;
5. p = true, d = 2.
3. Фрагмент программы
S = A; A = B; B = S;
выполняет
1. обмен значений переменных A, B;
2. присваивание переменным А, B значения S;
3. замена значения переменной A значением переменной B;
4. во фрагменте не выполняется никаких действий;
5. замена значения переменной B значением переменной A.
Лекция 7
Операторы цикла
В языке С++ определены три оператора цикла:
- цикл с предусловием;
- цикл с постусловием;
- итерационный цикл.