КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Оператори присвоювання. Оператори вводу, виводуОператор присвоювання має вигляд ім'я змінної: = вираз Змінна і вираз повинні бути одного типу. Виняток становить випадок дійсної змінної, коли вираз може бути і цілого типу. Якщо, наприклад, у програмі є опис VAR a, b, c, beta : real; n, m : integer; cl, c2 : char; pi, p : boolean; то синтаксично правильними будуть оператори: beta: = (—b + sqrt (sqr (b) — 4 * a * c))/(2 * a) cl: = 'A'; c2: = '+’; m:= ord (cl) + ord (c2) p: = (n>0) AND(n< = 10) p1: = true Присвоювання n: = а і cl: = p — помилкові. Для введення даних використовують оператори read (список змінних) або readln (список змінних) Зауважимо, що read і readln у мові програмування Паскаль не є операторами в звичайному розумінні, а звернення до стандартних процедур вводу. Наприклад,read (а, b, c) При виконанні оператора із вхідних даних (із стандартного файла input) буде взято три послідовних значення, перетворені у відповідні внутрішні подання і присвоєні змінним а, b, c. Якщо стандартним пристроєм вводу є клавіатура, то, виконуючи оператор read чи readln, ЕОМ переходить в стан чекання вводу інформації. Необхідні значення набирають з клавіатури. Числові значення відокрем-люються один від одного принаймні одним пропуском. Якщо читаються символьні дані, то кожна буква подає сама себе і пропуски сприймаються як символи. Набрані значення вводяться в пам'ять ЕОМ після натискування клавіші вводу. Після виконання команди введення змінним, імена яких вказано в списку команди, будуть присвоєні відповідні значення. Наприклад, при наявності в програмі опису VAR a, b : real; k, l: integer; і оператора read (a, fc, k, l) вхідні дані можна подати так: 2.35 - 5.01Е— 8 12 5 Виконання оператора введення в цьому випадку рівносильно виконанню чотирьох операторів присвоювання: а: = 2.35; b:= 5.01Е — 8; k:= 12; l:= 5 Оператор readln, як i read, вводить дані (із стандартного файла input), але після вибору необхідної кількості даних здійснює, перехід на початок наступного рядка. Якщо, наприклад, треба послідовно виконати оператори readln (а, b); read (k, l)і на клавіатурі набрати дані 2.35 —5.01Е—8 12 5 то після введення двох перших значень (2.35 і —5.01Е — 8) курсор перейде на новий рядок і значення для k i l введені не будуть. Для виконання оператора read (k, l) значення 12 i 5 треба набирати в новому рядку: 2.35 —5.01Е—8 ¿ 12 5 ¿ Для послідовного виконання операторів read (а, b); read (k, l), дані слід набирати так: 2.35 - 5.01Е— 8¿ 12 5¿ Якщо список в операторі readln відсутній, то введення даних не відбувається і тільки після натискування клавіші введення здійсниться перехід до нового рядка. Виведення інформації здійснюється операторами (точніше процедурами) write (список елементів виводу) або writeln (список елементів виводу) Елементами виведення є вирази, зокрема, змінні або константи. Можна використовувати всі чотири стандартні типи. Значення арифметичних виразів виводяться в десятковій системі числення. При цьому дійсні значення виводяться у формі з плаваючою крапкою. Для символьних змінних чи виразів виводиться літера. У булевих виразах виводиться слово true або false. Кожна одиниця виведення заноситься у відведене поле, ширина якого залежить від конкретної ЕОМ. Виконання оператора write автоматично не веде до виводу в новому рядку. Щоб здійснити перехід до нового рядка, використовується оператор writeln. Правила для нього такі ж, як і для оператора write, за винятком того, що після виведення всіх елементів списку вивідний пристрій переводиться на початок наступного рядка. Оператор writeln,який не містить списку елементів виведення, лише забезпечує перехід до нового рядка. Якщо до виконання оператора курсор знаходився в початковій позиції рядка, то після його виконання забезпечується пропуск рядка. Очевидно, оператори write (а, b,с); writelnрівносильні оператору writeln (а, b, с) Для прикладу наведемо досить просту програму: PROGRAM krug; CONST pi-3,141593; VAR r,s: real; BEGIN write (‘Який радіус круга ?’);read (г);writeln; s:=pi*r*r; writeln (‘Площa круга радіусa'); writeln (r); writeln (fдорiвнює: ', s) END. Результати (протокол) роботи програми для значення радіуса 10 матиме вигляд: Який радіус круга? 10¿ Площа круга радіуса 1.00000000000E+01 дорівнює: 3.1415930000Е+02 У мові Паскаль є й інші варіанти управління виводом інформації. Можна вказувати, наприклад, ширину поля, яка відводиться для кожного елемента виведення, форму подання числових значень та ін. Здійснюється це за допомогою однієї або двох цілих додатних констант чи цілих виразів, які розміщуються в списку оператора write (або writeln) після відповідного елемента виводу. Ці управляючі величини відокремлюються один від одного і від елемента виводу двокрапкою. Наприклад, write (‘i =’, i: 5, ‘ ‘: 4, a : 9 : 3) Перша величина після двокрапки (одиниця довжини) вказує мінімальну ширину поля (кількість позицій), які будуть відведені для даного елемента виведення. Якщо для елемента виведення треба меншу кількість позицій, то перші зліва незайняті позиції заповнюються пропусками. Якщо ж елемент виводу не вміщується у відведене поле, то буде відведено стільки позицій, скільки треба. Дійсним даним, крім того, передує завжди принаймні один пропуск. Друга величина, наступна за одиницею довжини, використовується лише для виведення значень типу real. Вона вказує на кількість десяткових розрядів, які будуть виведені після десяткової крапки. Приклад. Написати програму обчислення площі бокової поверхні і об’єму прямого кругового зрізаного конуса, радіуси нижньої і верхньої основ якого відповідно дорівнюють r1 i r2, а висота дорівнює h. Результати вивести з двома цифрами після десяткової крапки. Площа бічної поверхні i об'єм зрізаного конуса обчислюються відповідно за формулами: s = p*l*( r1 + r2), v = p*h/3(r12 + r22 + r1*r2), l =Ö h2 +( r1 - r2)2.
Програму можна записати у вигляді PROGRAM conus; CONST pi= 3.142; sa=5; {ширина поля для аргументів} sr=10; {ширина поля для результатів} dr=2; {кількість дробових розрядів} VAR r1, r2, h, {аргументи} s, v, {результати} l: real; BEGIN writeln ('Введіть, радіуси нижньої, верхньої'); writeln (‘основ і висоту: ‘); read (r1,r2, h); writeln; v:=pi*h/3*(sqr(r1)+sqr(r2)+r1*r2) ; l:=sqrt (sqr (h)+sqr (r1-r2)); s:=pi*l*(r1+r2); writeln (‘параметри конуса:’); writeln ( ‘r1=’,r1:sa:dr,’ ‘:3, ‘r2=’,r2:sa:dr,’ ‘:3, ‘h=’,h: sa:dr); writeln (‘Площа бічної поверхні =’, s:sr:dr); writeln ( ‘Об’’єм =’, v:sr:dr) END. 2.5. Умовний оператор. Оператор вибору. Програмування розгалужень Умовний оператор. У мові Паскаль він має вигляд
|