190 likes | 522 Views
Оператор розгалуження. Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради Сумської області 2008 р. Зміст. Логічні вирази Операції відношення Завдання Оператор розгалуження (коротка форма)
E N D
Оператор розгалуження Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради Сумської області 2008 р.
Зміст • Логічні вирази • Операції відношення • Завдання • Оператор розгалуження (коротка форма) • Оператор розгалуження (повна форма) • Приклади дій команди розгалуження • Команда ? • Завдання • Логічні операції • Приклади • Завдання • Обробка декількох умов. • Вкладені умови • Оператор switch-перемикач • Команда безумовного переходу goto • Завдання • Література
Логічні вирази • Логічний вираз може набувати значення true або false. • Логічні вирази бувають прості та складені • Простий – це два арифметичні вирази, з'єднані символом відношення • Складений – це прості логічні вирази, з'єднані логічними операціями Увага! Логічним виразом може бути ціле число. Якщо воно не дорівнює нулю, то значенням логічного виразу – true, якщо це число 0 - false
Операції відношення Приклад визначення результату порівняння: Нехай 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--) Для перевірки клацнути false (a=1+1=2) 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;} складений оператор #includ<iostream,h> #includ<conio.h> int main() { float x,y=6.8; cout<<“x=“; cin>>x if(x>=y) cout<<“x>-y!”<<endl; getch(); return 0; } #includ<iostream,h> #includ<conio.h> int main() { char game_end;; cout<<“prodovgimo gru? (t/n): “; cin>>game_end; if(game_end ==‘t’) { cout<<“Pravila gri:”<<endl; cout<<“Opis :”<<endl; } getch(); return 0; }
Оператор розгалуження (повна форма) Загальний вигляд: If (умова) оператор1;else оператор2 або if (умова) {оператор1_1; оператор1_2; } else {оператор2_1; oператор2_2;} складені оператори #includ<iostream,h> #includ<conio.h> int main() { int oc; cout<<“vvedi ocinky: “; cin>>oc; if(oc>=5) { cout<<“Vasha ocinka ”<<oc<“ baliv<<endl; cout<<“Zalik!”<<endl; } else { cout<<“Vasha ocinka ”<<oc<“ baliv<<endl; cout<<“NEzalik!”<<endl; } getch(); Return 0; }
Приклади дій команди розгалуження Приклад 1. Нехай x=9 If (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=9 If (x) y=x-10; If (y) y+=2; else y=15; Спочатку y=0 (оскільки x≠0), а потім y=15 Приклад 3. Нехай a=7 If (a>7) { y=a++;z=a+5;} If (a<=9) z=++a/2; y=z+a; Отримаємо z=(7+1)/2=4 a=7+1=8y=4+8=12 Для перевірки клацнути
Команда ? Команда ? Є аналогом команди розгалуження if. Загальний вигляд команди: умова ? команда1 або вираз1: команда2 або вираз2; Дія команди: Обчислюється значення логічного виразу-умови. Якщо воно істинне, то виконується команда1 або вираз1, інакше – команда2 або вираз2. Приклади: 1) x>y ? cout<<x : cout<<y; // значення більшого числа 2) Нехай с=10, тоді x=(c==3) ? 2*c : c-2 //оскільки с≠3, обчислюється вираз2, отримаємо х=8
Завдання Складіть програми перевірки: • Чи є число а парним • Чи ділиться число а без остачі на 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 • Чи є точка (х;у) у другій чверті
Введи v V<7.8? так ні Впаде На Землю V<11.2? так ні супутник Землі V<16.4? так ні Покине Сонячну систему супутник Сонця Обробка декількох умовВкладені умови 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 snjachnu sistemu” <<endl; Для перевірки клацнути
Оператор 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 якого вводять з клавіатури? #includ<iosream.h> #includ<conio.h> 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”; getch() return 0; } Приклад Для перевірки клацнути
Команда безумовного переходу goto Команда переходу має вигляд: goto позначка; Позначка може розміщуватись перед довільною командою у програмі позначка: команда; Увага! Позначкою може бути лише ідентифікатор. Приклад: … if (a==0) goto finish; … finish: getch(); …
Завдання • Складіть програму для пошуку у бібліотеці деякої книжки за трьома параметрами : видавництво – “Деол”, рік видання – 2003, автор – Новосад. • Складіть програму для розв'язання квадратного рівняння • Увести номер дня тижня. Вивести його назву двома мовами: українською та англійською. • Увести номер дня тижня. Вивести розклад занять у цей день • Написати програму, що вимагає уведення часу дня і, залежно від уведеного значення, бажає доброго ранку, доброго дня, доброго вечора або спокійної ночі.
Література • Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007. • Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006. • Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006. • Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003