Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП C++_1

.pdf
Скачиваний:
95
Добавлен:
10.02.2015
Размер:
663.61 Кб
Скачать

1.5 Операции

Арифметические:

+ – сложение; - – вычитание; * – умножение;

/ – деление – результат – вещественное, если хотя бы одно из чисел – вещественное, результат – целое, если делимое и делитель – целые,

%- остаток от деления целых чисел.

Логические: ! (не), && (и), || (или).

Логические поразрядные:

-(не), & (и), | (или), ^ (исключающее или).

Отношения:

<, >, <=, >=, = = (равно), ! = (неравно).

21

Операции (2)

Сдвиги:

<идентификатор> >> <идентификатор> - сдвиг вправо, <идентификатор> << <идентификатор> - сдвиг влево.

Порядковые:

++<идентификатор>, <идентификатор>++ (следующее);

--<идентификатор>, <идентификатор> - - (предыдущее).

Присваивания:

= += -= *= /= %= &= ^= |= <<= >>=

Условная:

<Выражение1>?<Выражение2>:<Выражение3>

22

Приоритет операций

1.

( )

[ ] ->

:: .

 

2.

! (не) + - ++ -- &(адрес) *(указатель) sizeof

new delete

3.

.*

->*

 

 

4.

*

/ %

 

 

5.

+

- (бинарные)

 

6.

<< >>

 

 

7.

<

<= >

>=

 

8.

= = ! =

 

 

9.

&(поразрядное и)

 

10.

^(исключающее или)

 

11.

| (поразрядное или)

 

12.

&&

 

 

13.

||

 

 

 

14.

?=

 

 

15.

=

*= /=

%= += -= &= ^= |= <<=

>>=

16.

,

 

 

23

 

 

 

1.6 Оператор «Выражение»

Формат составного выражения:

<Выражение1>[,<Выражение2>,...[,<Выражение n>]...]

Примеры:

 

 

a) int a=10, b=3; float ret; ret=a/b;

ret=3

б) c=1;

b=c++;

b=1, c=2

 

в) c=1;

sum=++c;

c=2, sum=2

 

г) c=a<<4;

эквивалентно с=a*16;

д) a+=b;

 

эквивалентно a=a+b;

е) a=b=5;

эквивалентно b=5; a=b;

ж) с=(a=5, b=a*a);

эквивалентно a=5; b=a*a; c=b;

з) a=(b=s/k)+n;

эквивалентно b=s/k; a=b+n;

и) c=(a>b)?a:b;

если a>b, то с=a, иначе с=b

24

1.7 Блок операторов

Блок операторов используется в конструкциях ветвления, выбора и циклов, предусматривающих один оператор.

Формат:

{ <Оператор>;… <Оператор>;}

Пример:

{

f=a+b;

a+=10;

}

Точка с запятой в отличие от Паскаля является частью оператора, а потому не может опускаться перед фигурной скобкой.

25

1.8 Оператор условной передачи управления

if (<Выражение>) <Оператор;> [ else <Оператор;>] Примеры:

а) if (!b)

puts("с - не определено"); // если b=0, то – ошибка, else {c=a/b; printf("c=%d\n", c);} // иначе - выводится с.

б) if ((c=a+b)!=5) c+=b;

else c=a;

 

 

в) if ((ch=getchar())==′q′)

// если в ch введено q,

puts ("Программа завершена.");

// то ...

else puts ("Продолжаем работу...");

// иначе ...

г) ch=′a′;

if ((oldch=ch,

ch=′b′)==′a′)puts("Это символ ′a′\n");

else puts("Это

символ ′b′\n");

26

 

 

1.9 Оператор выбора

switch (<выражение>)

{

case <элемент>: <операторы;>

 

case <элемент>: <операторы;>

 

. . .

}

[ default : <операторы;>]

 

Пример:

switch

(n_day)

 

{ case

1:

 

case

2:

 

case

3:

 

case

4:

 

case

5: puts("Go work!"); break;

 

case

6: printf("%s","Clean the yard and");

 

case

7: puts("relax!");

27

}

 

 

1.10 Операторы циклов

1. Оператор цикла while

while (<Выражение>) <Оператор>

Пример Ex1_02. Вычислить при x > 1 сумму ряда S=1+1/x- 1/x2+1/x3-... с точностью ξ.

#include <stdio.h> #include <math.h>

void main(int argc, char* argv[])

{ float s, r,x,eps; puts("Input x, eps:"); scanf("%f %f", &x, &eps); if (x<=1) puts("Error."); else { s=1; r=1/x;

}

}

while (fabs(r)>eps){ s+=r; r=-r/x; } printf("Result= %f.\n", s);

28

2. Оператор цикла for

for (<Выражение1>;<Выражение2>;<Выражение3>)<Оператор>;

Эквивалентно:

<Выражение1>

while (<Выражение2>) {<Оператор>; <Выражение3>;

}

Пример Ex1_03. Вычислить сумму первых десяти натуральных чисел.

#include <stdio.h>

int main(int argc, char* argv[])

{ int i,s;

for (i=1,s=0;i<=10;i++) s+=i; printf("Sum=%d\n",s);

} return 0;

29

3. Оператор цикла do ... while

do <Оператор > while (<Выражение>) ;

Пример. Игнорировать ввод значения, выходящего за пределы заданного интервала.

do {

printf("Введите значение от %d до % d : ",low, high); scanf(" %d ", &a);

}

while (a<low || a>high);

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]