КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор вибору (case)
Else End Begin Begin Оператор if. Іноді потрібно, щоб частина програми виконувалася не завжди, а лише при виконанні деякої умови (а при невиконанні цієї умови виконувалася інша частина програми). У цьому випадку користаються оператором умовного виконання, що записується в наступному виді: if <умова> then <оператор1> else <оператор2>; Під оператором розуміється або одиночний оператор (наприклад, присвоювання, виклику процедури), або так званий складений оператор, що складається з декількох простих операторів, поміщених між словами begin і end. Важливо помітити, що перед else не ставиться крапка з комою. Частина else може бути і відсутньою. Приклад 1: нехай потрібно знайти число m=max(a,b). Цій задачі відповідає наступний фрагмент програми на Паскалі: if a>b then m:=a else m:=b; Приклад 2: (без else) нехай дане ціле число i. Потрібно залишити його без зміни, якщо воно ділиться на 2, і відняти з нього 1, якщо це не так. var i: integer; ....... if i mod 2 = 1 then i:=і-1; {else - нічого не робити} Примітка: у прикладі використана операція взяття залишку від ділення (mod), для отримання неповної частки в Турбо-Паскалі використовується div. Приклад 3: (з використанням складеного оператора). Нехай дані дві змінні типу real. Потрібно поміняти місцями значення цих змінних, якщо a1>a2. var a1,a2,buf:real; ......... if a1>a2 then begin buf:=a1; a1:=a2; a2:=buf; end;
Наступний приклад використовує вкладені операторы if. Приклад 4: Пошук коренів квадратного рівняння. program SqEquation; var a,b,c,d: real; writeln; write('Уведіть коефіцієнти a,b,c квадратного рівняння: '); readln(a,b,c); d:=sqr(b)-4*a*c; if d>=0 then if d=0 then writeln('Єдиний корінь: x=',-b/(2*a):8:3) else writeln('Два корені: x1=',(-b+sqrt(d))/(2*a):8:3,, x2=',(-b-sqrt(d))/(2*a):8:3) else {d<0} writeln('Корнів немає'); readln; end. Щоб не заплутатися в структурі цієї програми, варто пам'ятати таке правило: else завжди відноситься до останнього оператора if. Якщо ж у програмі потрібно, щоб else відносилося до одного з попередніх if, то прийдеться скористатися складеним оператором: Приклад 5: користувач уводить натуральне число, задача програми — поставити слово «учень» у потрібну форму в сполученні з числівником (наприклад: 1 учень, 3 учня, 9 учнів і т.п.) write('Число учнів (1..20) --> '); readln(n); write(n, ' учень'); if n<5 then begin if n>1 then writeln('а'); writeln('ов'); readln; end. У цьому прикладі довелося використовувати складений оператор (begin... end;) для того щоб частина else відносилася не до оператора if n>1, а до if n<5. Крім оператора умовного переходу і циклів у Турбо Паскалі мається ще одна керуюча конструкція, одна з назв якої — оператор вибору. Насправді це ускладнений оператор if, він дозволяє програмі виконуватися не двома способами, у залежності від виконання умови, а декількома, у залежності від значення деякого виразу. У загальному виді цей оператор виглядає так: case Вираз of Варіант1: Оператор1; Варіант2: Оператор2; ... Варіант: Оператор; [ else Оператор1;] end; (Пояснення: квадратні дужки означають те, що частина else може бути відсутньою). Вираз в найпростіших випадках може бути цілочисельним чи символьним. Як варіанти можна застосовувати: 1. Константний вираз такого ж типу, як і вираз після case. Константний вираз відрізняється від звичайного тем, що не містить змінних і викликів функцій, тим самим він може бути обчислений на етапі компіляції програми, а не під час виконання. 2. Інтервал, наприклад: 1..5, 'а'..'z'. 3. Список значень чи інтервалів, наприклад: 1,3,5..8,10,12. Виконується оператор case так: обчислюється вираз після слова case і один по одному перевіряється, підходить отримане значення під який-небудь варіант, чи ні. Якщо підходить, то виконується відповідний цьому варіанту оператор, інакше — є два варіанти. Якщо в операторі case записана частина else, то виконується оператор після else, якщо ж цієї частини ні, те не відбувається взагалі нічого. Розглянемо приклад. Нехай користувач уводить ціле число від 1 до 10, програма повинна приписати до нього слово «учень» з необхідним закінченням (нульове, «а» чи «ов»).
program SchoolChildren; var n: integer;
Дата добавления: 2014-12-16; Просмотров: 501; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |