Вирази і оператори DelphiУ програмах Delphi застосовуються
та інші. Математичні вирази У математичних виразах використовуються операції присвоювання :=, додавання +, віднімання -, множення * , ділення /, цілочисельного ділення div, залишку від ділення mod. При використанні цих операцій важливий пріоритет їх виконання, так як в програмуванні на мові Delphi, як і в звичайній математиці, вирази виконуються не в порядку проходження, а з урахуванням пріоритету. У операцій множення і ділення вищий пріоритет, ніж у операцій додавання і віднімання .
буде дорівнювати не 1, як у випадку послідовного виконання, а 6.2. Якщо ж ми хочемо отримати саме послідовне виконання, то необхідно застосовувати дужки () , відокремлювалися ті операції, які необхідно виконати першими. Дужки можуть бути вкладені одна в одну необмежену кількість разів:
Ось тепер Крім чотирьох математичних дій в Delphi є безліч математичних функцій, таких, наприклад, як тригонометричні, логарифмічні, і т.д. Вони стають доступні в програмі після додавання в секцію Interface uses модуля Math . Їх опис також можна знайти в модулі Math.pas (можна знайти скориставшись пошуком Windows). Багато з них можна реалізувати і самому, але вбудовані функції напевно будуть працювати швидше і краще, тому що написані на мові асемблера.
Логічні виразиЛогічні вирази виконуються над операндами логічного типу, тобто мають тип Boolean Delphi. Вони застосовуються в основному в умовних операторах.
Оператори Delphi Для створення додатків, що реалізують складну алгоритмічну логіку, потрібні засоби управління ходом роботи програми: зміни порядку виконання операторів в залежності від різних умов, і ефективної організації роботи часто повторюваних фрагментів. Математично доведено, що будь-який алгоритм можна закодувати за допомогою
З оператором присвоювання " : = " ми вже знайомилися в уроці Delphi 2 . Він працює в такий спосіб. Змінна, що стоїть в лівій частині оператора, стає рівною тій величині, яка знаходиться праворуч. Типи цих величин повинні збігатися. У виразі, що стоїть праворуч, також може використовуватися змінна, що стоїть зліва. З математичної точки зору це неправильно, але в програмуванні це означає, що з комірки пам'яті береться початкове значення, виробляються обчислення, і результат записується в цю ж комірку пам'яті, затираючи колишнє значення. Приклад: На початку фрагмента змінна A дорівнює 3, а в кінці -25. if умова then дію else альтернатива ; Слова if (якщо), then (тоді), else(інакше) - зарезервовані. Дія і else альтернатива - це будь-які оператори Delphi, або кілька операторів, ув'язнених в логічні дужки begin / end , або виклик підпрограми. Якщо умова істинно, то виконується дія , якщо помилково, то виконується альтернатива . Умова являє собою логічне вираження. У ньому порівнюються значення виразів (в тому числі також і логічних), виклик функцій, які повертають значення типу Boolean , і комбінування цих значень за допомогою логічних операцій:
Простий оператор циклу застосовується, коли відома кількість повторень циклу. Він записується так: for лічильник : = вираз-1 to вираз-2 do дію ; Лічильник - це змінна, яка повинна бути оголошена перед логічним блоком, в якому оператор циклу розташований, і її тип повинен стосуватися одного з перелічуваних типів, зазвичай Integer . вираз-1 і вираз-2 можуть бути як константою або ідентифікатором, так і викликом функції. Дія - один або кілька операторів Delphi . Якщо це група операторів, то вони повинні бути укладені в логічні дужки begin / end . На початку роботи оператора змінна-лічильник отримує значення виразу-1 .Якщо при цьому значення лічильника виявиться менше або дорівнює значенню виразу-2 , то виконуються оператори, що входять в дію . Це і є один цикл. Потім змінна-лічильник приймає значення, що випливає за поточним, і починається новий цикл, тобто порівняння лічильника і вирази-2 , виконання дії , і так далі, до тих пір, поки значення змінної-лічильника не перевищить значення виразу-2 . Можлива робота оператора циклу, при якому змінна-лічильник буде не збільшуватися, а зменшуватися. У цьому випадку ключове слово to замінюється на downto : for лічильник : = вираз-1 downto вираз-2 do дію ; Відповідно, вираз-1має бути більше або дорівнює висловом-2 . Умовний оператор циклу зручно використовувати в тому випадку, коли кількість повторень заздалегідь не відомо: while умова do тіло циклу ; Цей цикл буде виконуватися до тих пір, поки істинно умова (логічний вираз, що повертає значення типу Boolean ). При цьому якщо цей вислів відразу довівнює false , тіло циклу не буде виконано жодного разу. Потрібно дуже уважно стежити за написанням умови і контролем завершення циклу, так як в результаті помилки цикл while буде повторюватися нескінченну кількість разів, що призведе до "зациклення" і " зависання "програми. Умовний оператор повторення спочатку виконує тіло циклу , а потім вже перевіряє виконання умови :repeat тіло циклу until умова ; Таким чином, цей варіант циклу гарантує, що тіло циклу буде виконано принаймні один раз. І буде виконуватися до тих пір, поки умова не стане істинною (тобто true ). Варто відзначити, що це єдиний оператор Delphi , в якому тіло циклу не потрібно укладати в логічні дужки begin / end . Початок і кінець тіла циклу визначаються за ключовими словами repeat і until . Разом з операторами циклу використовуються спеціальні команди:
Команда переривання циклу застосовується, якщо в процесі виконання операторів тіла циклу з'ясовується необхідність його завершення. Ось ця команда: Break; При її виконанні управління передається на перший оператор, наступний за оператором циклу. Команда продовження циклу дозволяє негайно продовжити виконання циклу, пропустивши всі оператори, шо залишилися в тілі циклу, тобто почати наступну ітерацію . Ось ця команда: Continue; Справедливості заради варто розповісти про ще один операторі, що дозволяє змінити послідовність виконання програми. Це оператор переходу : goto мітка ; В якості мітки може використовуватися будь-який допустимий ідентифікатор або число в діапазоні від 0 до 9999. мітку попередньо необхідно оголосити в розділі опису змінних, але з допомогою не ключового слова var , а ключового слова label : label міткa ; або label список міток ; Переходити можна як вниз, так і вгору по програмі. Двокрапка відокремлює мітку від оператора, на який відбувається перехід. Приклад використання оператора переходу:
оператори програми
З цього прикладу видно, що оператор end; завершаючий програму, ніколи не буде виконано, тобто програма зациклиться. Саме тому, взагалі, використання оператора переходу є поганим стилем програмування , і без його використання цілком можна обійтися використанням умовних операторів і операторів циклу. Єдиний випадок, коли використання оператора goto може бути виправдано - це вихід з декількох вкладених циклів, що інакше вимагає застосування декількох операторів Break .
Приклад. Сортування одновимірного масиву. Розглядаються процедури програми, наводяться докладні коментарі. Також можна завантажити проект тут у вигляді архіву. Цикл while і оператори goto використані тільки для демонстрації роботи з ними. Тут - правильніший варіант із застосуванням циклу repeat і оператора break .
|