Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
R4_КП_12.doc
Скачиваний:
8
Добавлен:
23.11.2018
Размер:
605.18 Кб
Скачать

Введення-виведення інформації

Вирішення навіть найпростішої задачі на ПК не обходиться без операцій введення-виведення інформації. Введення даних - це передача інформації ззовні в ОП (із зовнішнього носія). Виведення даних - зворотний процес, коли дані після обробки передаються з ОП на зовнішній носій. Зовнішнім носієм може служити дисплей, друкований пристрій, гнучкий або жорсткий диск і т.ін.

Введення-виведення даних здійснюється або відповідними операторами, або за допомогою стандартних процедур.

Алгоритмічні мови програмування використовують концепцію поелементного введення-виведення даних. Зазвичай, введення інформації з клавіатури супроводжується "ехо-сигналом" - на екрані дисплея з'являється зображення символів, що вводяться. В деяких системах програмування існують засоби, що дозволяють відключити таке ехо. Виведення даних організується, починаючи з позиції розміщення курсору. При цьому пробіли між даними, що виводяться, автоматично не вставляються - їх необхідно враховувати самим.

За допомогою відповідних засобів можна вводити-виводити дані тільки певних типів.

Введення-виведення даних мовою Pascal

Введення даних. Здійснюється за допомогою оператора виклику стандартної процедури Read або ReadLn. Їх формат:

Read ( [ ім'я зовнішнього носія ], список елементів введення ) ;

ReadLn ( [ ім'я зовнішнього носія ], список елементів введення ) ;

Як тільки під час виконання програми зустрічається виклик процедури Read або ReadLn, ПК призупиняє свою роботу і переходить в режим очікування введення з клавіатури. У цей момент на екрані видно тільки миготливий курсор (маркер), якщо екран попередньо очищений, або такий же курсор у кінці тексту повідомлень попереднього діалогу (результатів попереднього виведення). Дані вводяться через пробіл. Ознакою закінчення введення є натискання клавіші Enter. При цьому значення змінних повинні вводитися у порядку, в якому вони зазначені в списку введення, і у відповідності із своїми типами. Наприклад, виклик ReadLn (b, с) означає, що після набору на клавіатурі послідовності символів 0.32 та 85.7 змінна b отримає значення 0.32, а с – стане рівною 85.7.

Різниця між процедурами ReadLn і Read полягає у тому, що процедура Read по закінченні введення залишає курсор у поточному рядку введення, а ReadLn - переводить його на початок нового рядка. Тобто, виклик процедури ReadLn (b, с) еквівалентний послідовності викликів

Read (b);

Read (с);

ReadLn.

При цьому ReadLn - обов'язково останній.

Процедура ReadLn без параметрів може використовуватися для організації пауз довільної довжини. Подальше продовження роботи при цьому здійснюється при натисканні будь-якої клавіші.

Для посилань на потрібний зовнішній носій в Pascal використовуються символічні імена. Наприклад,

CON – консоль (клавіатура – у випадку введення інформації, монітор - у випадку виведення);

COM1, ..., COM4 - послідовні адаптери (порти введення-виведення). До них підключаються пристрої, що передають інформацію через послідовний інтерфейс (модем, миша, тощо);

LPT1, ..., LPT3 - паралельні адаптери. До них підключаються принтери й інші пристрої, що передають інформацію через паралельний інтерфейс.

Виведення даних. Здійснюється за допомогою виклику стандартної процедури Write або WriteLn. Їх формат:

Write ( [ ім'я зовнішнього носія ], список елементів виведення ) ;

WriteLn ( [ ім'я зовнішнього носія ], список елементів виведення ).

Різниця між процедурами Write і WriteLn полягає у тому, що після виведення інформації процедурою Write курсор залишається після останнього виведеного елемента; при використанні ж процедури WriteLn - встановлюється на початок наступного рядка.

Параметром процедур Write та WriteLn може бути ім'я змінної, вираз або літерал. У перших двох випадках на екран виведеться значення змінної або результат виразу, який буде попередньо обчислений. В останньому випадку на екран буде виведена послідовність символів без будь-яких змін. Наприклад, Write (х) забезпечить виведення на екран значення змінної х, а Write ('х') - виведення символу х.

Послідовність викликів процедури Write можна замінити одним оператором за тими ж правилами, що і послідовність операторів Read. Так оператору WriteLn ( ' b = ', b, ' с = ', с) відповідає послідовність операторів

Write (' b = ');

Write ( b );

Write (' с = ');

WriteLn ( с ).

Процедура WriteLn без параметрів викликає вставку на екрані порожнього рядка.

За замовчуванням ім'я зовнішнього носія - CON, тому при введенні даних із клавіатури або при виведення даних на екран дисплея цей параметр можна не вказувати. У цьому випадку введення – виведення інформації організовується за допомогою стандартних файлів input і output. Програма одержує вхідні дані із стандартного текстового файлу Input, що зв'язаний із клавіатурою, а результати обробки розміщує в стандартний текстовий файл Output, що зв'язаний з дисплеєм.

При введенні даних корисною є підказка про те, чого очікує машина. Для цього в тексті програми оператору виклику процедури введення повинен передувати оператор виклику процедури виведення, за допомогою якого така підказка і виводиться на екран. Наприклад, перед введенням значення аргумента функції, що обчислюється, бажано оформити підказку виду

Write ('Введіть аргумент функції x =');

і тільки після цього здійснити введення відповідного значення.

За допомогою відповідних процедур можна вводити-виводити тільки цілі та дійсні числа, символи і рядки тексту (літерали). У інших випадках потрібно скористатися іншими можливостями мови (операторами циклу, операторами вибору тощо).

Форматоване виведення даних. Для кожного елемента списку виведення можна задавати свій формат виведення :

Write (елемент виведення : [ширина [: кількість цифр]], ...) ;

WriteLn (елемент виведення : [ширина [: кількість цифр]], ...),

де <ширина> - ширина поля виведення, включаючи позицію під десяткову крапку (при виведенні дійсних чисел у формі з фіксованою крапкою) і знак числа;

<кількість цифр> - кількість позицій, що відводиться для виведення дробової частини числа (при виведенні дійсних чисел у формі з фіксованою крапкою).

Наприклад,

x := 421.53;

WriteLn ( x + 55 : 8 : 3, ' ', x ); { 476.530 421.53}

WriteLn ('Приклад' : 10); { Приклад}

Використання форматованого виведення дозволяє вирішити проблему наочного їх оформлення даних, що виводяться.

Особливості форматованого виведення:

  1. Якщо вказується параметр <кількість цифр>, то дійсне число виводиться у форматі з фіксованою крапкою. Для виведення його в експоненціальному форматі варто задати тільки загальну ширину поля виведення. Наприклад,

WriteLn (123.456:8 : 3); { 123.456}

WriteLn (-123.456:13 ); { -1.23456E+02}

 При ширині, меншій за 8 позицій, поле виведення встановлюється автоматично рівним 8.

  1. Якщо ширина поля виведення перевищує реальні розміри елемента виведення, то при виведенні він доповнюється пробілами ліворуч відповідно до зазначеної довжини. Якщо ж розмір поля менше, ніж потрібно, Pascal збільшує його до мінімально необхідного. Наприклад,

WriteLn (296 : 2); {296}

  1. У випадку некоректного задання формату виведення дійсних чисел може ігноруватися тільки перший параметр формату, число ж знаків після крапки завжди встановлюється коректно, але не перевищує точності типу. Наприклад,

WriteLn (123.456:5 : 3); {123.456}

  1. Якщо другий параметр формату виведення більше реального, то при форматуванні дробова частина елемента доповнюється 0. Наприклад,

WriteLn (123.45:8 :3); { 123.450}

  1. Якщо другий параметр формату виведення менше реального, то при форматуванні дробова частина елемента округляється. Наприклад,

WriteLn (123.456:8 :1); { 123.5}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]