Upload
-
View
20
Download
0
Embed Size (px)
Citation preview
Оператор розгалуження
Логічні вирази• Логічний вираз може набувати значення true або false.• Логічні вирази бувають прості та складені• Простий – це два арифметичні вирази, з'єднані символом
відношення• Складений – це прості логічні вирази, з'єднані логічними
операціямиУвага! Логічним виразом може бути ціле число. Якщо воно не
дорівнює нулю, то значенням логічного виразу – true, якщо це число 0 - false
Операції відношення Операція Питання Приклад
== Два значення рівні? (i == 7)
!= Два значення не рівні? (a != b)
> Перше значення більше, ніж друге? (v>n)
< Перше значення менше, ніж друге? (x<34)
>= Перше значення більше або дорівнює другому? (s>=5)
<= Перше значення менше або дорівнює другому? (d<=4)
Приклад визначення результату порівняння:Нехай a=1, b=7, тоді:A==b →false; !(a==b) → true; a>=b → false; a!=b → true; a+6==b → true; a<(b=1) → true; 2 → true; b → true
ЗавданняВизначте значення наступних операцій порівняння:Нехай a=1, b=2, c=-3; d=0.5• ((a++) != 2)
• (b+=c )< (d*=c-a)
• (c/=b*3) == (d*=-1)
• (4/++a >= b)
• (b=2*a++) == (a=b--)
Для перевірки клікнути
true
false (b=2=(-3)=-1 d=0.5*(-3-1)=-2)
true (c=-3/(2*3)=-0.5 d=0.5*(-1)=-0.5
true (4/2=2)
true (b=2*1=2 a=2)
Оператор розгалуження (коротка форма)
Загальний вигляд:If (умова) оператор; або
if (умова) {оператор1; оператор2; оператор3;} складений оператор
#include<iostream>
using namespace std;
int main()
{
float x,y=6.8;
cout<<“x=“;
cin>>x;
if(x>=y) cout<<“x>-y!”<<endl;return 0;
}
#include<iostream >
using namespace std;
int main()
{
char game_end;
cout<<“prodovgimo gru? (t/n): “;
cin>>game_end;
if(game_end ==‘t’) { cout<<“Pravila gri:”<<endl; cout<<“Opis :”<<endl; }return 0;
}
Оператор розгалуження (повна форма)
Загальний вигляд:If (умова) оператор1;else оператор2 або
if (умова) {оператор1_1; оператор1_2; } else {оператор2_1; oператор2_2;} складені оператори
#include <iostream>
using namespace std;
int main()
{
int oc;
cout<<“vvedi ocinky: “; cin>>oc;cout<<“Vasha ocinka ”<<oc<<“ baliv”<<endl;
if(oc>=5) {cout<<“Zalik!”<<endl; }else { cout<<“NEzalik!”<<endl; }return 0;
}
Приклади дій команди розгалуження
Приклад 1. Нехай x=9If (x>7) y=pow(x, 2); else y=sqrt(x);If (x<=5) z=exp(x); else z=++x;Отримаємо y=81, z=10, x=10Приклад 2. Нехай x=10If (x) y=x-10;If (y) y+=2; else y=15;Спочатку y=0 (оскільки x≠0), а потім y=15Приклад 3. Нехай a=7If (a>7) { y=a++;z=a+5;}If (a<=9) z=++a/2; y=z+a;Отримаємо z=(7+1)/2=4 a=7+1=8 y=4+8=12Для перевірки клацнути
Команда ?Команда ? Є аналогом команди розгалуження if. Загальний вигляд команди:
умова ? вираз1: вираз2;
Дія команди: Обчислюється значення логічного виразу-умови. Якщо воно істинне,
то повертається вираз1, інакше – вираз2.
Приклади: 1) x>y ? cout<<x : cout<<y; // значення більшого числа2) Нехай с=10, тодіx=(c==3) ? 2*c : c-2 //оскільки с≠3, обчислюється вираз2, отримаємо
х=8
Завдання
.10,2,1cos3,81,2
sin4,12
,10,1,1
sin2cos2,9
xxx
xx
xy
Складіть програми перевірки:• Чи є число а парним• Чи ділиться число а без остачі на 3• Ввести два цілих числа. Знайти більше з них• Обчислити значення функції• Чи є точка(х;у) у крузі
одиничного радіуса з центром у початку координат
Логічні операціїВираз (не) Значення
!true false
!false true
Вираз (і) Значення
true && true true
true && false false
false && true false
false && false false
Вираз (або) Значення
true || true true
true || false true
false || true true
false || false false
пріоритет операція назва
1 ! не
2 && і
3 || або
Приклади
Приклад визначення результату логічного виразу:
Нехай a=1, b=7, тоді:• a>=-3 && a<=2 →true; • a>=0 && b<=4 → false; • b<9 || b>15 → true; • !(a<1 || b>=10) → true; • a!=b || a+15>b && b<0 → true;• (a!=b || a+15>b) && b<0 → false;
Завдання
Складіть програми:• Визначте чи деяка точка х належіть відрізку
[0;3)• Визначте чи деяка точка х належіть відрізку
[2;14] або [20;25] • Визначте чи деяка точка х належіть відрізку
[4;10] та [8;12]• Визначте чи ділиться число а на 3 і на 5• Визначте чи лежить точка (х;у) у другій чверті
Обробка декількох умовВкладені умови
cin>>v;if (v<7.8) cout<<“upade na Zemlyu” <<endl;else if (v<11.2) cout<<“suputnik Zemli” <<endl; else if (v<16.4) cout<<“suputnik Soncja”
<<endl; else cout<<“pokinet sоnjachnu sistemu”
<<endl;
Введи v
V<7.8?
Впаде На
Землю V<11.2?
супутникЗемлі V<16.4?
супутникСонця
Покине Сонячнусистему
так
так
так
ні
ні
ні
Для перевірки клацнути
Оператор switch-перемикачЗагальна структура оператора:switch (Вираз) { case константний вираз1: оператори1; break; case константний вираз2: оператори2; break; … case константний виразN: операториN; break;default: оператори;}Увага! Вираз та константні вирази повинні мати цілочисельний тип або
тип char.
Приклад Нехай населені пукти
позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту визначається так: до першого – 22 грн., до 2, 3 або 4 – 25 грн., до 5 або 6 – 30 грн., до 7 або 8 - 35 грн. Скільки коштуватимуть m квитків до населеного пункту, номер k якого вводять з клавіатури?
#include<iosream>using namespace std;int main(){int f,m; float cina;cout<<“k= “<<endl; cin>>k;cout<<“m= “<<endl; cin>>m;switch (k) { case 1: cina=22; break; case 2: case 3: case 4: cina=25; break; case 5: case 6: cina=30; break; case 7: case 8: cina=35; break; default: cout<<“error!”<<endl; cina=0; } cout<<cina*m<<“grn”; return 0;}Для перевірки клацнути
Команда безумовного переходу goto
Команда переходу має вигляд: goto позначка;
Позначка може розміщуватись перед довільною командою у програмі
позначка: команда;
Увага! Позначкою може бути лише ідентифікатор.
Приклад:…if (a==0) goto finish;…finish: a=3;…
Завдання • Складіть програму для пошуку у бібліотеці деякої книжки
за трьома параметрами : видавництво – “Деол”, рік видання – 2003, автор – Новосад.
• Складіть програму для розв'язання квадратного рівняння• Увести номер дня тижня. Вивести його назву двома
мовами: українською та англійською.• Увести номер дня тижня. Вивести розклад занять у цей
день• Написати програму, що вимагає уведення часу дня і,
залежно від уведеного значення, бажає доброго ранку, доброго дня, доброго вечора або спокійної ночі.