Лекція № 5 Тема: Оператор присвоєння, введення/виведення, розгалуження План заняття Оператор присвоєння Оператор введення/виведення Порядок виконання операцій Складений оператор Умовний оператор Оператор вибору Оператор присвоєння Значення змінних змінюють за допомогою оператора присвоєння. Загальний вигляд оператора присвоєння такий: <змінна> := <вираз> Приклад використання оператора присвоєння: var a, b, c, d: integer; Тоді можна записати а:=1; b:=2; с:=20; d:=a+b*c; Після цього значення d дорівнюватиме 41. Введення-виведення Під час вивчення типів даних ми розглянули особливості введення і виведення значень змінних цих типів за допомогою операторів процедур read і write. Близькими до read i write є оператори readln і writeln (read line, write line). Однак вони відрізняються тим, що після введення чи відповідно виведення величин, які задані як параметри, відбувається перехід на новий рядок. Наприклад: readln(A, В, C, D) - читає А, В, C, D з одного рядка і переходить до читання з наступного; writeln(A) - виведення значення А і перехід на наступний рядок; writeln - пропускання рядка; writeln(B) - виведення значення В і перехід на наступний рядок. Параметром оператора write (і writeln) може бути стала: writeln('Уведіть дані'). Порядок виконання операцій Вище розглянуто три групи операцій: арифметичні, логічні та порівняння, і з'ясовано їхню пріоритетність. На підставі цього можна скласти загальну пріоритетність операцій Операція Класифікація
Операції в дужках Найвищий пріоритет
Not Логічне заперечення (перший пріоритет)
*, / , div, mod, and Мультиплікативні операції (другий пріоритет)
+, -, or, xor Адитивні операції (третій пріоритет)
=, <>, >, <, <=, >=, in Операції порівняння (найнижчий пріоритет)
Складений оператор Складений оператор (не плутати з поняттям "складний") - це сукупність операторів, узята в операторні дужки begin-end. Всі оператори, що є в складеному операторі, виконуються послідовно. Складеним оператором є також тіло програми (тобто розділ операторів). У мові Паскаль крапку з комою використовують лише як розділювач між операторами, тому після оператора перед end їх ставити не потрібно. Наприклад: begin x:=a+b; c:=x-r end. Однак у цьому випадку крапка з комою після другого оператора не призведе до помилки, а буде означати, що третім оператором цього складеного оператора є порожній. Структура розгалуження Часто в програмі потрібно передбачити декілька варіантів можливих дій так, щоб вибір одного з них відбувався уже під час виконання програми. Зокрема, для обчислення коренів квадратного рівняння програма має два шляхи: обчислення дійсних коренів та обчислення комплексних коренів. Після оцінки дискримінанта D<0 залежно від вхідних даних розв'язування відбувається одним з можливих шляхів. У мові Паскаль структуру розгалуження реалізують за допомогою умовного оператора, який дає змогу вибирати одну з двох дій залежно від результату обчислення логічного виразу. Цей логічний вираз називається умовою, або предикатом. Умовний оператор Загальний вигляд умовного оператора такий: if <логічний вираз> then <оператор> else <оператор>. Якщо значення умови, заданої бульовим виразом, є true, то виконується оператор, що стоїть після then, якщо значення умови дорівнює false, то виконується оператор, що стоїть після else. Залежно від результату бульового виразу виконується один з альтернативних операторів. Прикладом, коли логічний вираз в операторі if має складнішу структуру, може бути задача про те, чи можна побудувати трикутник з відрізків а, b, с: if (a+b>c) and (a+c>b) and (b+c>a) then writeln ('трикутник побудувати можна') else writeln (' трикутник побудувати не можна') Умовний оператор може і не мати конструкції else, така форма називається скороченою: if <булевий вираз> then <оператор> У випадку такої конструкції умовного оператора, якщо бульовий вираз має значення true, виконується оператор, що є після then, а якщо бульовий вираз дорівнює false, то жодні дії не виконуються. Кожен з операторів може бути складеним. Наприклад, if not a then begin х:=х+1; у:=у+1 end else begin x:=abs(x); y:=abs(y) end; Складений оператор використовують тоді, коли після then або else потрібно записати групу операторів, однак згідно з синтаксисом тут повинен бути лише один оператор. Оператори, що стоять після then або else, самі можуть бути умовними, тоді маємо вкладену конструкцію умовного оператора. Оператор вибору Оператор вибору є узагальненням умовного оператора: він дає змогу виконати один з декількох операторів (в умовному- з двох) залежно від значення деякого виразу, який називається селектором. Загальний вигляд оператора варіанта такий: case <селектор> of <список міток 1>: <оператор 1>; <список міток 2>: <оператор 2>; <список міток N>: <оператор N>; end; У цьому випадку селектор - вираз або змінна будь-якого простого типу, крім дійсного. Список позначок (міток) - це список розділених комою можливих значень селектора або одне його значення. В Турбо Паскалі позначки можна задавати і як діапазон. Ці сталі повинні мати той же тип, що й селектор, їх називають позначками (мітками) варіанта. Позначка варіанта - це не обов'язково ціле число, її не описують у розділі label. Кожна така позначка зіставляється тільки з одним оператором. Оператор варіанта вибирає для виконання той оператор, одна з позначок якого дорівнює поточному значенню виразу селектора. Після виконання вибраного оператора керування передається на кінець оператора case. Приклад оператора варіанта такий: case j of 1:х:=0; 2: x:=sin(x); 3: х:=ехр(х); 4: x:=ln(x) end;