русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


READ(f,x) READLN(f,x) WRITE(f,x) WRITELN(f,x)


Дата додавання: 2014-11-27; переглядів: 795.


f- це логічне ім’я файлу; при його відсутності операція відбувається із стандартним логічним файлом : INPUTпри введенні з клавіатури із “луною” на екран та OUTPUTпри виведенні на екран дисплею.

x- ім’я змінної або список імен, що відокремлюються одне від одного комою. Типи змінних при введенні із текстового файла ( в тому числі і з клавіатури ) може бути тільки цілим, дійсним, символьним , рядковим або сумісним з ними. Складні структуровані типи ( масиви, множини, записи та інші ) можуть бути введені тільки по елементам.

Приклад:

READ(i,l,r); { i,l - integer, r - real }

READ(ch,s); {ch - char, s - string }

При введенні з диска або клавіатури два числа вважаються розділеними , якщо між ними є хоча б один пропуск, або символи табуляціі (код #9) чи кінця рядка (код #13).Саме клавіша ¿заставляє програму прийняти введені перед цим букви та цифри, тому останньою повинна натискуватися саме вона.

Приклад: READ(i,r)

Введення: 123 4.56 ¿ або 123 ¿ 4.56 ¿

Специфікація формату введення чисел як така відсутня . Єдина вимога, щоб числові значення відповідали типам змінних в списку введення.

При введенні символьних значень у відповідну змінну запишеться черговий символ за останнім введеним до цього, яким би він не був (в тому числі і символ введення ). У відповідності з оператором READ(ch1,ch2);

щоб надати змінним значення a та b , треба ввести дані таким чином:

ab¿ ,але не так : a ¿ b¿

При введені рядка правила майже такі ж : початок рядка йде за останнім введеним символом, зчитується кількість символів, рівна оголошеній довжині рядка.

Приклад: READ(String3,String5);

Щоб перша рядкова змінна, що має довжину 3 символи здобула значення ‘abc`, а друга (довжиною 5 символів ) – значення ‘defgh`, треба набрати на клавіатурі без пропусків таку послідовність символів abcdefgh

При введенні з клавіатури оператори READ та READLN діють майже однаково. Оператор READLN після зчитування в поточному рядку переводить позицію на наступний рядок, навіть якщо в поточному рядку залишилися непрочитані дані.

Оператори WRITE та WRITELN виводять значення , перелічені в списку, в текстовий файл, або на дисплей. Обмеження на типи таке саме , як і при введенні. Оператор WRITE виводить дані в поточний рядок і не закриває його, тому наступні дані запишуться в той же рядок. Оператор WRITELN після виведення закриває рядок і пересуває курсор в крайню ліву позицію наступного рядка. Список виведення обох операторів може містити константи, змінні, вирази, виклики функцій, що мають відповідні типи та розподілені комами. При цьому рядкові дані виведуться в тому вигляді, як вони записані, цілі – із знаком, або без знака, якщо вони додатні, дійсні – в експоненціальній формі.

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

WRITE(Ch:2,St:20);

Під символьну змінну Ch відводиться 2 позиції, а під рядок St – 20.

Зайві позиції заповнюються пропусками. Якщо ж значення “довше” за формат, останній ігнорується. Вирівнювання значень в полі формату відбувається по правому краю.

Формат цілочислових значень задається майже так, як і для рядкових – розміром поля за значенням:

WRITE(intvar:5,123:4,(6*8):10);

Вирівнювання значень в заданому числі позицій – по правому краю, зайвина заповнюється пропусками. Формат ігнорується , якщо його не вистачає. Цим форматом зручно користуватися при виведенні таблиць.

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

Приклад: WRITE(RealVar:12:3,123.456:8:1);

Змінна RealVar матиме 3 знаки після крапки і , якщо її повна довжина не перевищить 12 позицій, буде вирівняна по лівому краю. Якщо формат задано некоректно, ігнорується лише перший його параметр.

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

Можна виводити дійсні числа без дробової частини:

WRITE(123.456:6:0);

Одержимо : 123

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

Приклад: WRITELN(-138.87:6,’ ‘,138.87:8,’ ‘,138.87:12);

Одержимо: -1.4E+02 1.39E+02 1.388700E+02

(списком оператора передбачено пропуски в 2 позиції між числами ).

Щоб вирівняти число по лівому краю , ближчу до значення специфікацію формату треба завдавати від’ємною:

WRITELN(124.456:-6:1,124.456:6:1)

124.5 124.5

(між числами просвіт в 2 позиції за рахунок зайвої шостої позиції, що в першому числі зайнята 0 з правого краю , а в другому – з лівого).


<== попередня лекція | наступна лекція ==>
Загальна структура програми. | Лінійні програми.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн