Лекція № 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;