17
Оператор розгалуження

+5 розгал в с++

  • Upload
    -

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: +5 розгал в с++

Оператор розгалуження

Page 2: +5 розгал в с++

Логічні вирази• Логічний вираз може набувати значення true або false.• Логічні вирази бувають прості та складені• Простий – це два арифметичні вирази, з'єднані символом

відношення• Складений – це прості логічні вирази, з'єднані логічними

операціямиУвага! Логічним виразом може бути ціле число. Якщо воно не

дорівнює нулю, то значенням логічного виразу – true, якщо це число 0 - false

Page 3: +5 розгал в с++

Операції відношення Операція Питання Приклад

== Два значення рівні? (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

Page 4: +5 розгал в с++

ЗавданняВизначте значення наступних операцій порівняння:Нехай 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)

Page 5: +5 розгал в с++

Оператор розгалуження (коротка форма)

Загальний вигляд: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;

}

Page 6: +5 розгал в с++

Оператор розгалуження (повна форма)

Загальний вигляд: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;

}

Page 7: +5 розгал в с++

Приклади дій команди розгалуження

Приклад 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Для перевірки клацнути

Page 8: +5 розгал в с++

Команда ?Команда ? Є аналогом команди розгалуження if. Загальний вигляд команди:

умова ? вираз1: вираз2;

Дія команди: Обчислюється значення логічного виразу-умови. Якщо воно істинне,

то повертається вираз1, інакше – вираз2.

Приклади: 1) x>y ? cout<<x : cout<<y; // значення більшого числа2) Нехай с=10, тодіx=(c==3) ? 2*c : c-2 //оскільки с≠3, обчислюється вираз2, отримаємо

х=8

Page 9: +5 розгал в с++

Завдання

.10,2,1cos3,81,2

sin4,12

,10,1,1

sin2cos2,9

xxx

xx

xy

Складіть програми перевірки:• Чи є число а парним• Чи ділиться число а без остачі на 3• Ввести два цілих числа. Знайти більше з них• Обчислити значення функції• Чи є точка(х;у) у крузі

одиничного радіуса з центром у початку координат

Page 10: +5 розгал в с++

Логічні операціїВираз (не) Значення

!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 || або

Page 11: +5 розгал в с++

Приклади

Приклад визначення результату логічного виразу:

Нехай 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;

Page 12: +5 розгал в с++

Завдання

Складіть програми:• Визначте чи деяка точка х належіть відрізку

[0;3)• Визначте чи деяка точка х належіть відрізку

[2;14] або [20;25] • Визначте чи деяка точка х належіть відрізку

[4;10] та [8;12]• Визначте чи ділиться число а на 3 і на 5• Визначте чи лежить точка (х;у) у другій чверті

Page 13: +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?

супутникСонця

Покине Сонячнусистему

так

так

так

ні

ні

ні

Для перевірки клацнути

Page 14: +5 розгал в с++

Оператор switch-перемикачЗагальна структура оператора:switch (Вираз) { case константний вираз1: оператори1; break; case константний вираз2: оператори2; break; … case константний виразN: операториN; break;default: оператори;}Увага! Вираз та константні вирази повинні мати цілочисельний тип або

тип char.

Page 15: +5 розгал в с++

Приклад Нехай населені пукти

позначені номерами від 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;}Для перевірки клацнути

Page 16: +5 розгал в с++

Команда безумовного переходу goto

Команда переходу має вигляд: goto позначка;

Позначка може розміщуватись перед довільною командою у програмі

позначка: команда;

Увага! Позначкою може бути лише ідентифікатор.

Приклад:…if (a==0) goto finish;…finish: a=3;…

Page 17: +5 розгал в с++

Завдання • Складіть програму для пошуку у бібліотеці деякої книжки

за трьома параметрами : видавництво – “Деол”, рік видання – 2003, автор – Новосад.

• Складіть програму для розв'язання квадратного рівняння• Увести номер дня тижня. Вивести його назву двома

мовами: українською та англійською.• Увести номер дня тижня. Вивести розклад занять у цей

день• Написати програму, що вимагає уведення часу дня і,

залежно від уведеного значення, бажає доброго ранку, доброго дня, доброго вечора або спокійної ночі.