Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Оператор безумовного переходу gotoСтр 1 из 7Следующая ⇒ Мета роботи Вивчити й набути навичок використання базових керувальних конструкцій та операторів безумовного переходу, умовного переходу та вибору варіанту. 2 Основні теоретичні відомості Розгалуженим називається обчислювальний процес, якщо, залежно від певних умов, він реалізовується за однією з певних, заздалегідь передбачених, віток алгоритму. Для програмної реалізації таких обчислень необхідно використовувати оператори передання управління, котрі дозволяють змінювати порядок виконання операторів програми. У мові Pascalдля цього передбачено інструкції: безумовного переходу - goto, умовного переходу - ifта вибору варіанта - case. Для запису умови переходу необхідно використовувати логічні (булеві) вирази. Оператор безумовного переходу goto Оператор goto(йти до) дозволяє передати керування в будь-яку точку коду (програми), котру позначено спеціальною міткою. Оператор goto має вигляд: goto<мітка >; Мітки, на які можна передавати керування, описують ключовим словом label, після якого йде список міток. Кожна мітка може позначатися припустимим в алгоритмічній мові ідентифікатором або цілим без знака числом від 0 до 9999. Наприклад: Labelstart, 55, second, а; означає чотири мітки: start, 55, second, а. Точка, в яку передається керування, позначена ім'ям мітки, після якої йдуть дві крапки й далі оператор, до якого передається керування. Наприклад, start:S:=0; Мітка може розташовуватись у будь-якому місці: як перед оператором goto, так і після нього. Слід уникати передання керування ззовні в середину циклу й заборонено передавати керування до мітки, розміщеної в іншому блоці. Це може призвести до непередбачених наслідків. Опис міток, самі мітки й оператори goto, які передають на них керування, повинні розміщуватися вмежах області видимості (блоку). Розумне застосування оператора gotoробить структуру програми більш прозорою і спрощує її розуміння.
2.2 Логічні вирази Логічні вирази - це послідовність логічних зміних, констант, відношень, з’єднаних логічними (булевими) операціями, результатом яких є логічне значення. Логічні значення позначаються стандартними іменами True (істина) та False (хибність), причому True<False. Логічні константи теж мають тільки два значення: True та False. Логічні змінні - це змінні, які набирають одного з цих значень. У розділі змінних вони повинні бути описані як Boolean, наприклад: Varp,q: Boolean;
Стандартні функції зі значеннями логічного типу подано у таблиці 2.1.
Найпростішими логічними виразами є відношення (порівняння). 2.2.1 Операції відношення Операції відношення використовуються для порівняння двох виразів. Вони повертають значення true(істина), якщо вказані відношення виконуються і false(хибність) - в іншому разі. Операції відношення подано в табл. 2.2. Таблиця 2. 2 Оп ерації відношен ня
Тип результату у всіх випадках Boolean(логічний). Операнди повинні мати сумісні типи, за винятком типів realта integer, які можуть порівнюватись один з одним. Рядки порівнюють за розширеними кодами множини символів ANSI. Символьний тип трактують як рядки одиничної довжини. Упаковані рядки можна порівнювати лише за однакової кількості символів. Якщо упакований рядок з п символів порівнюють з типом string, то він трактується як рядок з довжиною п. Операції <, >, <= й >= можна застосувати до операндівPchar, тільки якщо обидва вказівники вказують на один й той самий масив символів. Приклади відношень та їх результатів подано в табл. 2.3. Таблиця 2.3 - Приклади результатів відношень
2.2.2 Бупеві операції У булевих операціях використовують операндибулевих типів і повертають результат булевого типу - Boolean(табл. 2.4): Таблиця 2.4 – Булевы операції
Компілятор Delphiпідтримує два режими розрахунків операцій ANDі OR: повний і скорочений. У повному режимі усі логічні вирази обчислюють до кінця, навіть якщо після розрахунків першого операнда результат визначено. У скороченому режимі розрахунок переривається, як тільки результат дорівнюватиме True. Тобто, якщо перший операнд дорівнює Trueі результатвизначено, то в скороченому режимі розрахунок перерветься без обчислень другого операнда. Операція компілятора {$В-}, що працює без додаткових вказівок, забезпечує скорочений режим розрахунків, а операція {$В+}-повний. Режим повних розрахунків можна також установити опцією CompileBooleanEvaluationу вікні компілятора.
2.2.3 Лорозрядні (побітові) булеві й сдвигові операції Логічні порозрядні операції оперують з двійковими представленнями цілих чисел, тобто працюють із двійковими розрядами операндів (табл.2.5): Таблиця 2.5 - Лорозрядні (побітові) булеві й сдвигові операції
Наприклад, X 001101 Y100001 X or Y101101 X and Y 000001 При порозряднихопераціях чинні є такі правила. Результат, що визначає not, має той самий тин, що й її операнд. Результат операцій and, or, хог мас цілий найменший тип, що включає всі значення типів обох операндів. Вирази х shlу і х shrу зміщують значення х вліво і вправо на у бітів. Це еквівалентне помноженню * на 2у. результат має той самий тип що і х. Розглянемо приклади. Якщо операнди А і В будуть мати тип Byte, то виконання операцій при А=11, У=2 дає результати, подані в таблиці 2.6. Таблиця 2.6 Десяткові та дв і йкові значення лог і чних операцій
Результати логічних операцій, що використовують до операндів цілого типу (порозрядно 1,0) і логічного типів (true, false), подано в таблиці 2.7.
Таблиця 2.7 - Результати операцій над даними цілого та логічного типу
На рисунку 2.1 зображено логічні блоки у відповідності з міжнародними стандартами.
в→
в→
З логічних блоків складаються складні логічні пристрої. Перед побудовою логічних схем пристроїв логічну функцію мінімізують, тобто приводять до більш простого виду, користуючись співвідношеннями алгебри логіки (булевої алгебри). Для логічних схем “АБО”, “І” та “НІ” існують технічні схеми, що реалізовують їх на реле, півпровідникових або ферритових елементів. У сучасних комп'ютерів звичайно використовують системи інтегральних елементів, у яких з метою більшої уніфікації в якості базової логічної схеми застосовують одну зі схем: “І”—”НІ” (штрих Шеффера), “АБО”-”НІ” (стрілка Пирса) або “І”-”АБО”-”НІ.
2.2.4 Пріоритети й асоціативність операцій
У складних логічних виразах послідовність розрахунків визначають звичайними способами. За відсутності дужок послідовність обчислень логічних виразів визначають за старшинством та асоціативністю операцій. • За старшинством (пріоритетом) логічні операції поділяють у спосіб, поданий в таблиці 2.8.
Таблиця 2.8 - Пріоритети логічних оперaцій
Операції з більш високим пріоритетом виконуються раніш за операції з більш низьким пріоритетом. Якщо поряд розміщено декілька операцій з однаковими пріоритетами, то послідовність обчислень визначається асоціативно, яка у всіх операцій у ObjectPascalє однакова - зліва направо. Наприклад: х=уorx=z У цьому разі послідовність операцій визначають так: x = (yorx) = z тому що orмає вищій пріоритет, ніж операція =. Після виконання orоперація = виконається зліва направо. Порівняно з арифметичними операціями (+, -, *, /, div, mod) операції відношення мають менший пріоритет. Наприклад, значення відношення 2*5<=17 div3 є false, а відношення 7+3>16-4*3-true. Слід пам'ятати, що до операндів дійсного типу не варто застосовувати операцію відношення = (дорівнює), тобто ця умова може не виконатись через неточне представлення дійсних чисел у пам'яті комп'ютера та неуникних помилок округлення при обчислюванні виразів. Тому відношення а1=а2 слід замінювати відношенням abs(al-a2)<eps, де eps- певна мала величина, котра характеризує похибку округлення. Дві логічні операції можуть бути записані поряд, якщо другою з них є операція not, наприклад: хіandnotх2 Логічні операції та операції відношення можуть зустрічатись в одному виразі. Причому відношення, що стоять зліва та справа від знаку логічної операції, має бути взято в дужки, оскільки логічні операції є вищі за пріоритетом. За допомогою дужок можна змінювати порядок розрахунків. Наприклад, у логічному виразі 1 6 4 2 5 З (-3>=5) ornot(7<9) and(0<=3) цифрами зверху показано послідовність виконання операцій: результат виконання операції 1 - False, операції 2 - True, операції 3 - True, операції 4 - False, операції 5 - False, операції 6 - False. Тобто логічний вираз має значення False. Для деяких типів у Pascalє додаткові операції, що дозволяють формувати складніші умови. Наприклад, для множини визначена операція IN(зарезервоване слово), яка перевіряє, чи входить конкретне значення в множину: х:=[2,4,6,8,10]; Вираз 2 inх має значення true. Вираз 5 inх має значення false. Цей спосіб виконання перевірки більш наглядний. Наприклад, замість. (і>=1) and(і<=10), використовуючи операцію in, можна записати і in[1...10] Виконуються ці перевірки теж значно ефективніше.
|