Read(r, r, i, i); Read(ch, ch);
Значення вихідних даних можуть відокремлюватися один від одного пробілами і натисканням клавіш табуляції і Enter.
Для виводу результатів роботи програми на екран використовуються оператори:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
WriteLn;
Перший з цих операторів реалізує виведення значень змінних А1, А2,...,АК у рядок екрана. Другий оператор реалізує виведення значень змінних А1, А2, ..., АК і перехід до початку наступної рядка. Третій оператор реалізує пропуск рядка і перехід до початку наступної рядка.
Змінні, складового списку виведення, можуть відноситися до цілого, дійсного, символьного чи булевського типів. Як елемент списку виведення крім імен змінних можуть використовуватися вирази і рядки.
Виведення кожного значення в строку екрана відбувається відповідно до ширини полючи висновку, обумовленою конкретною реалізацією мови.
Форма представлення значень у полі висновку відповідає типу змінних і виразів: величини цілого типу виводяться як цілі десяткові числа, дійсного типу - як дійсні десяткові числа з десятковим порядком, символьного типу і рядка - у виді символів, логічного типу - у виді логічних констант TRUE і FALSE.
Оператор виведення дозволяє задати ширину поля виведення для кожного елемента списку виведення. У цьому випадку елемент списку виведення має вигляд А:ДО, де А - змінна або рядок, ДО - константа цілого типу. Якщо виведене значення займає в полі виведення менше позицій, чим ДО, то перед цим значенням розташовуються пробіли. Якщо виведене значення не міститься в ширину заданою ДО, то для цього значення буде відведена необхідна кількість позицій. Для величин дійсного типу елемент списку виведення може мати вигляд А:ДО:М, де А - змінна або вираз дійсного типу, ДО - ширина поля виведення, М - число цифр дробової частини виведеного значення. ДО і М - вирази або константи цілого типу. У цьому випадку дійсні значення виводяться у формі десяткового числа з фіксованою крапкою.
Приклад запису операторів виведення:
……………………………………..
var rA, rB: Real;
iP,iQ:Integer;
bR, bS: Boolean;
chT, chV, chU, chW: Char;
………………………………………
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(b, b:8);
WriteLn(ch, ch, ch, ch);
Оператор переходу
Звичайно оператори в програмі виконуються в тому порядку, у якому вони записані. Оператор переходу перериває природний порядок виконання програми і вказує, що подальше виконання повинне продовжуватися, починаючи з оператора, позначеного міткою, зазначеної в операторі переходу. Приклад запису оператора переходу:
Goto 218;
Мітка ставиться перед відповідним оператором і відокремлюється від нього двокрапкою (:)
218:X:=2*A;
У декларативній частині програми використана мітка повинна бути обов'язково описана.
Умовний оператор
Розрізняють два варіанти запису умовного оператора:
· У короткій формі;
· У повній формі.
Умовний оператор у короткій формі
If (B) then OP1;
працює за правилом: якщо булевський вираз B істинний, то виконується оператор ОР1, далі виконується оператор, що випливає за умовним. Якщо булевський вираз B хибний, то буде виконуватися оператор, що випливає за цим умовним оператором.
Дана мовна конструкція відповідає фрагменту алгоритму:
Наприклад:
if a+1<0 then x:=x+1;
Якщо в якості ОР1 виступає група операторів, то їхній необхідно укласти в операторні дужки begin……...end і використовувати тим самим складений оператор:
if a+1<0 then begin x:=x+1; y:=2*x; z:=x+y end;
Умовний оператор у повній формі
If (B) then OP1 else OP2;
працює за правилом: якщо булевський вираз B істинний, то виконується оператор ОР1, далі виконується оператор, що випливає за умовним. Якщо булевский вираз B хибний, то буде виконуватися оператор OP2, далі виконується оператор, що випливає за цим умовним оператором.
Дана мовна конструкція відповідає фрагменту алгоритму:
Наприклад:
if a+1<0 then x:=x+1 else x:=x-1;
Більш наочно повний умовний оператор записується з використанням горизонтального і вертикального форматування (особливо при наявності складених операторів ОР1 і ОР2):
if a+1<0 then
begin
x:=x+1;
k:=a+b
End
Else
begin
x:=x-1;
k:=a-b
End;
За допомогою умовного оператора в комбінації з оператором безумовного переходу можна організувати умовний перехід. Наприклад:
if a-1<10 then goto 4;
2.4.5 Організація циклу
Нагадаємо, що циклом називається багаторазове повторення послідовності операторів. При організації циклу необхідно:
· задати початкове значення параметра циклу;
· виконати тіло циклу;
· змінити значення параметра циклу;
· перевірити умову виходу з циклу;
· продовжувати цикл чи вийти з нього.
У залежності від способу організації циклу деякі з вище приведених кроків можуть мінятися місцями.
2.4.5.1 Безпосередня організація циклу
Використовуючи тільки вже розглянуті оператори можна організувати циклічну обробку інформації. Припустимо, що необхідно організувати обчислення значення y=2*x2-5*x при зміні х від 3 до 45 із кроком 1. Фрагмент програми, що реалізує дану задачу, приведений нижче:
x:=3;{Крок 1 - завдання початкового параметра циклу}
1:y:=2*x*x-5*x; {Крок 2 - тіло циклу}
x:=x+1; {Крок 3 - зміна параметра циклу}
if x<46 then goto 1;{Крок 4 - перевірка умови продовження циклу}
2.4.5.2 Цикл із параметром
З наведеного прикладу видно, що кроки 1, 3, 4 є допоміжними і служать тільки для організації циклу. Тому для спрощення процесу програмування циклу була введена наступна конструкція:
for x:=xn to xk do OP1;
де xn-початкове значення параметра циклу;
xk - кінцеве значення параметра циклу;
OP1-тіло циклу.
Вище приведену організацію циклу тепер можна представити набагато простіше:
for x:=3 to 45 do y:=2*x*x-5*x;
Якщо тіло циклу складається більш ніж з одного оператора, то варто використовувати складений оператор.
Нове значення параметра циклу і перевірка умови виходу з циклу здійснюється автоматично після виконання тіла циклу. Слід також зазначити, що при використанні такого запису оператора циклу крок зміни параметра циклу строго постійний і дорівнює +1. Для завдання кроку –1 використовується трохи відмінна форма запису оператора:
for x:=xn downto xk do OP1;
Якщо xn = xk, то цикл виконується тільки один раз. Якщо xn < xk для першого чи випадку xn > xk для другого, то цикл не виконується жодного разу.
Щоб використовувати дані конструкції організації циклу у випадку, коли крок зміни параметра циклу відмінний від ±1, необхідно вводити допоміжний параметр і розраховувати кількість кроків циклу. Повернемося до вище розглянутого приклада, змінивши крок зміни параметра на 0,5. Тоді:
x:=0; {завдання початкового значення основного параметра}
mkr:=45/0.5; {визначення кількості циклів (дійсне)}
mk:=Trunc(mkr); {перетворення до цілого виду}
for m:=1 to mk do {оператор циклу}
Begin
y:=2*x*x-5*x; {тіло циклу}
x:=x+0.5 {зміна основного параметра}
End;
2.4.5.3 Цикл із передумовою
Цикл із параметром зручно застосовувати у випадку коли відомо (чи може бути обчислена) кількість циклів. Наприклад, необхідно обчислювати значення функції y=2*x2-5*x, починаючи з х=0 із кроком 0,3 до моменту, коли у перевищить 500. Організація циклу з використанням параметра ускладнена тому що крок відмінний від 1 і не відомо кількість циклів. Для розв’язання задач подібного типу використовується конструкція вигляду: