КАТЕГОРИИ: Архитектура-(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) |
Складений оператор
Складений оператор поєднує групу операторів у єдине ціле, після чого вони можуть вважатися одним оператором. Складений оператор складається з послідовності поєднуваних операторів, які розташовуються між ключовими словами begin і end. Складений оператор використовується в тих випадках, коли синтаксис мови допускає в певній точці програми вказівку тільки одного оператора, а по алгоритму в цьому місці необхідно виконати групу операторів. як правило, складений оператор використовується спільно зі структурними операторами. Умовні оператори В Turbo Pascal включені два умовних оператори - if і case, кожний з яких може бути записаний у двох формах: повній й неповній, що відповідає чотирьом узагальненим керуючим конструкціям алгоритмів. Синтаксична діаграма умовного оператора має такий вигляд. Хоча обоє операторів if і case по своїй суті є умовними, однак, історично склалося так, що оператором умови (умовним оператором) називається оператор if, а оператор case називається оператором вибору або оператором варіанта. Надалі будемо дотримуватися цієї історичної термінології. Умовний оператор if
Умовний оператор if, як відзначалося вище, може бути записаний у повній і неповній формах, які мають такий вигляд.
Неповна форма: Повна форма:
Синтаксична діаграма оператора if показана нижче. При виконанні умовного оператора спочатку обчислюється Вираз, результат якого може приймати тільки логічний тип, а потім, залежно від значення результату (True, False), виконується або Оператор1, щостоїть після ключового слова then (якщо результат дорівнює True), або 0ператор2, щостоїть після ключового слова else (якщо результат дорівнює False). У випадку, коли оператор if записаний у неповній формі, при значенні результату False керування передається операторові, що слідує безпосередньо після оператора if, а Оператор, що стоїть за ключовим словом then, пропускається.
Нагадаємо, що в Turbo Pascal оператори розділяються символом ";"• Це означає, що усередині будь-якого структурного оператора символ ";" зустрічатися не повинен, інакше все, що стоїть після нього, буде вважатися вже іншим оператором. Приклад з помилкою: У показаному вище прикладі крапка з комою, що стоїть перед ключовим словом else закінчує текст оператора if А це приводить до синтаксичної помилки, оскільки оператора, що починається із ключового слова else в Turbo Pascal немає. Щоб не допускати таких помилок доцільно запам'ятати таке правило: Перед ключовим словом else символ ";" ніколи не ставиться. По синтаксису після ключових слів then і else може стояти всього лише один оператор. Якщо ж у якій-небудь із гілок альтернативи (then або else ) або відразу в обох потрібно виконати декілька операторів, то варто скористатися складеним оператором begin … end, який дозволяє інтерпретувати групу операторів як один оператор. Відмітимо, що оператори, розташовані між ключовими словами begin... end, також як і скрізь, повинні розділятися крапкою з комою. Узагальнені форми найпростішого випадку оператора if наведені в таблиці 3-1.
Ще одна синтаксична складність коректного використання оператора if виникає при написанні вкладених операторів if. У випадку, якщо вкладений оператор if розташовується в межах складеного оператора, великих проблем не виникає, тому що ключові слова begin і end точно обмежують область кожної альтернативи. Наприклад:
Таблиця 3-1
Однак, якщо вкладений оператор if є єдиним оператором у гілці альтернативи, то може виникнути неоднозначність: якому if відповідає вітка else. Наприклад:
У таких випадках варто пам'ятати правило: Ключове слово else зв'язується з найближчим ключовим словом і£, що стоїть перед ним що ще не було пов'язане з яким-небудь ключовим словом else. Якщо в попередньому прикладі більш чітко позначити структуру вкладеності,:записавши else на одному рівні з then, якому воно відповідає, то одержимо такий фрагмент:
Завдання 1 З'ясувати, чи належить точка з координатами X і Y колу одиничного радіуса з центром на початку координат. program Z1; var X,Y;Real; begin Write ('уведіть 2 дійсні числа'); Readln (X,Y); Write (Точка (', X:6:3, ',', Y:6:3, ')'); if sqr(X)+sqr(Y)<1 then Write('попадає') else Write('не попадає'); Writeln ('у коло одиничного радіуса'); end.
Завдання 2 Написати програму, що аналізує, до якого алфавіту належать уведена буква, а також велика вона або мала. program Z2; var B: Char; Pr,Interval1, Interval2: Boolean; begin Write(' натисніть на символьну клавішу'); Read(B); Write(' - це '); Interval1:= (B<'A') or ((B>'Z') and (B<'a')) or ((B>'z') and (B<'А')); Interval2:= ((B>'п') and (B<'p')) or (B>'я'); If (Interval1=True) or (Interval2=True) then Write('не') else begin if B<'z' then begin Write('англійська'); Pr:=B<='Z'; {більша} end else begin Write('російська'); Pri:=B<='Ю'; end; if Pr then Write('більша') else Write('маленька'); end; Write('буква'); end. Оператор вибору (варіанта) Розглянутий умовний оператор if дозволяє вибирати тільки одне з двох можливих дій залежно від логічного виразу. Оператор вибору case є узагальненням оператора if - він дає і можливість виконати одне з декількох дій залежно від значення перемикача. Загальну структуру оператора вибору в повній формі можна представити в такий спосіб:
Однією фразою логіку роботи оператора вибору можна описати так: обчислене значення Перемикача визначає, який з Операторів повинен бути виконаний. Якщо Перемикач приймає одне зі значень Спискаконстант1, то виконується Оператор1, а інші Оператори пропускаються. Якщо Перемикач приймає одне зі значень Спискаконстант2, то виконується 0ператор2. Аналогічно будуть виконуватися оператори від Оператора3 до ОператораN. ОператорЕ буде виконуватися в тому випадку, якщо значення Перемикача не збіглося з жодним зі значень Списківконстант від 1-го до N-ro. У неповній формі оператора case альтернативна всім попереднім варіантам вибору вітка else відсутня. У цьому випадку, якщо значення Перемикача не збігається з жодним зі значень констант вибору, не виконується жоден з Операторів, описаних в case, і керування передається операторові, що стоїть безпосередньо після ключового слова end, що замикає оператор case. Приклади, що демонструють найбільш характерні способи використання оператора case. Завдання 3 var Arrow: Char; Position: record X,Y: Word end; begin with Position d case Arrow of #72: Y:=Y-1; #80: Y:=Y+1; #75: X:=X-1; #77: X:=X+1 end end. Завдання 4 var Symbol: Char; begin case Symbol of ’0’..’9’: writeln (‘Це цифра’); ’a'..’z: writeln (Це мала літера'); 'A'..'Z': writeln ('Це прописна буква'); #10,#13,#26: writeln ('Це керуючий символ’) else writeln ('Це інший символ’) end Завдання 5 Написати програму, що визначає по номері місяця кількість днів у ньому. program Z4; var Numer:Byte; B:Char; begin Write('уведіть номер місяця =>'); Readln(Number); Write('У цьому місяці '); case Number of 1,3,5,7,8,10,12: Writeln('31 день '); 4,6,9,11: Writeln('30 днів '); 2: begin Writeln; Write(' Рік високосний? Д/Н => '); Readln(B); case B of 'Д': Writeln('29 днів'); 'Н': Writeln('28 днів'); else: Writeln('28 або 29 днів'); end; end; else Writeln('номер місяця уведений невірно'); end; end.
Дата добавления: 2014-01-07; Просмотров: 5365; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |