12. Складена команда циклу, називана також командою повторення, містить
умову, що використовується для визначення кількості повторень.
Розглянемо два типи команди повторення.
Команда повторення з передумовою записується на псевдокоді в наступному
виді:
поки <умова>
повторювати <дія>
Під дією розуміється проста або складена команда.
Виконання циклу завершується, коли умова перестає дотримуватися. Для
цього необхідно, щоб команда, виконувана в циклі, впливала на умову.
Кому як команду можна використовувати не лише для інтерпритації декількох команд як однієї цілої, а і для інтерпритації декількох виразів як одного цілого.
Вираз1, Вираз 2,…, Вираз N
Це можна використовувати при записі логічних виразів
Наприклад
If (k+=2, k<7) …
Тут спочатку значення змінної k буде збільшено на 2, а потім це значення порівнюватиметься із числом 7. Результат команди – true, якщо k < 7; false, якщо k >= 7
13. Побітові операції
Нагадаємо, що одиницею виміру пам’яті є байт. Кожен байт складається із вісьми біт. У кожному біті може міститися одне з двох чисел: 0 або 1. Будь-які дані при компіляції автоматично перетворюються у двійковий код (у біти). Однак іноді на практиці, наприклад, під час створення графічних зображень чи в задачах архівування даних, виникає потреба порівнювати не значення двох даних, а їхні біти. Для цього в мові С++ є побітові логічні операції:
& – «І» 2) | – «АБО» 3) ~ –«НЕ»
Наприклад
Нехай дано b1 = 00110011 b2 = 11110101. Тоді
b1 & b2 = 00110001
b1 | b2 = 11110111
~ b1 = 11001100
Операції зсуву
Вони дають можливість зсунути деяку послідовність бітів в байті вправо чи вліво на деяку фіксовану кількість:
Зсув вліво – операція <<
Зсув вправо – операція >>
Наприклад
Нехай b = 00100101, c = 10110010, тоді після виконання команд:
b = b<<2
c = c>>1
змінна b = 10010100, a c = 01011001
14. Команда розгалуження if (умовна команда) має два різновиди.
1. Повна команда розгалуження має вигляд:
if <логічний вираз> then <команда 1> else <команда 2>;
Дія команди. Якщо логічний вираз істинний, то виконується команда 1, в протилежному випадку — команда 2. Команди 1 та 2 можуть бути простими або складеними.
Приклад. Нехай х=9. У результаті виконання команд if x>7 then y:=x*x elsey:=sin(x); if x<5 then z:=exp(x) else z:=sqrt(x); отримаємо y=81,z=3.
2. Коротка команда розгалуження має вигляд:
if <логічний вираз> then <команда>
Дія команди. Якщо логічний вираз істинний, то виконується їоманда 1, інакше виконується команда, яка знаходиться за даною конструкцією.
Приклад. Нехай х=25. Тоді у результаті виконання команд if x>12 then у:=2*х;z:=10; if x<5 then z:=exp(x); гримаємо y=50,z=10.
Команда ? є аналогом команди розгалуження if.
Загальний вигляд команди такий:
<логічний вираз>?<команда 1>:<команда 2>
Зауваження
На відміну від розгалуження if, в команді ? в якості <команди 1>, як і в якості <команди 2> не може виступати складена команда
<Команда 1> виконується у тому випадку, якщо логічний вираз істиний.
<Команда 2> виконується у тому випадку, якщо логічний вираз хибний.