русс | укр

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

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


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


Типи формат рядку


Дата додавання: 2013-12-24; переглядів: 1288.


Предикат nl

ПРЕДИКАТИ ВИВОДУ

 

В Пролозі існує такі предикати виводу: не форматований вивід даних, предикат переводу курсору для виводу нового рядку, форматований вивід даних, вивід бінарних даних без перетворення доменів даних.

Предикат write(Константи, Змінні) виконує неформатований вивід і має будь-яку кількість аргументів – константи і конкретизовані змінні.

Тип змінної або константи вказує, в якому форматі писати у файл або на пристрій.

Для елементарного форматування в предикаті write можна вказувати компоненти:

“\n” – розглядається як „ПС і ВК”.

\ код символу – розглядається як код символу.

Наприклад: “\065” розглядається, як код символу А.

“\t” – символ табуляції. Зміщує курсор на 8 позицій.

 

Наприклад, write (“\t”, “\065\066\067 ”, “\n”, “rkn”, “\010”, ‘2A’).

Вивід:_ _ _ _ _ _ _ АBC

r k n

2 A

Для друку одного символу „\” в рядку вказують два символи „\\”. Такий запис часто використовують при вказівки шляху до файлу.

Наприклад: “d:\\prolog\\F.dat”.

Предикат переводить курсор в новий рядок. Предикат nl означає new line. Предикат виводить керуючі символи „ПС”(переводить курсор в новий рядок ту ж позицію) і „ВК”(повертає курсор в початок рядку).

Наприклад: do:-write(“Перший рядок”),nl,write(“Другий рядок”).

Вивід: Перший рядок

Другий рядок

Форматований вивід

Предикат writef (Формат рядок, Константи, Змінні) – реалізує форматований вивід констант і конкретизованих змінних. Кількість аргументів предикату необмежена.

Для форматування предикат writef використовує при виводі формат-рядок, який задається користувачем. Формат рядок – це шаблон, символи якого, за винятком керуючих, виводяться на екран так, як і написані.

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

Керуючі символи записують у тому ж порядку, в якому записано відповідні змінні і константи.

Приклад: do:- N1 = 12, N2 = - 4, Sum= N1+N2,writef (“Сума чисел %d і

%d дорівнює %d”, N1, N2, Sum)

Тип d означає вивід десяткового числа зі знаком.

Вивід: Сума чисел +12 і - 4 дорівнює +8.

Типи формат рядку вказують до якого виду потрібно перетворити значення змінної при виводі. Типи, що записані в дужках вказують до яких доменів даних можна застосувати тип формат - рядку.

Наприклад: do:- C=’3’, writef(“Код символу %с - %u”, C, С).

Вивід: Код символу 3 - 51

У формат рядку можна вказувати наступні типи:

1) d – ціле десяткове число зі знаком (char, integer)

2) u – ціле десяткове число без знака (char, integer)

3) D – довге десяткове число зі знаком (long)

4) U – ціле довге десяткове число без знака (long)

5) f – дійсні числа з фіксованою крапкою (real)

6) е – дійсні числа у виді exp (real)

7) g - дійсні числа в форматах f або e (real) формат по замовчанню

8) о – восьмеричне число(char, integer)

9) O – довге восьмеричне число(string)

10) X – довге шістнадцятирічне ціле(string)

11) x – шістнадцятирічне ціле(char, integer)

12) s - рядок (string, symbol)

13) с - символ (char, integer)

14) R – числа для посилань у зовнішніх базах даних(ref)

15) B – бінарне число (для типу binary)

16) P - предикатне значення

Якщо тип формату для виводу не вказано, то Visual Prolog автоматично обирає тип виводу.

Дійсні типи можна записати в шаблоні в такому виді % +- m.n, де

m – ширина поля, n – кількість цифр після крапки,

+ число притиснуте до правого поля

- число притиснуте до лівого поля

 

Приклади:

Writef (“% + 5. 1”, 3.14)

_ _ 3 . 1

 

Writef(“% - 5.1”, 3.14)

3 . 1 _ _

Предикат format(Змінна, Формат рядок, Аргумент1, ..., АргументN)

(о, і, і, ... , і)

Працює аналогічно предикату writef , але результат не виводить на екран, а привласнює змінній.

Приклад: do:-K=25,format(D,"**%d**",K),write(D).

D = “**25**”

Вивід: **25**.

Предикат writeblock(Кількість байтів, Змінна)

(і, i)

(цілий тип, binary)

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

Приклад. Утворити файл з бінарного терму.

Goal

disk("d:\\ira\\program\\Prolog\\v"),openwrite(f,"hh3.dat"), writedevice(f),H=$[50,51,10,13,52],writeblock(0,H),closefile(f).

Програма назначає поточний каталог предикатом disk. Відкриває файл для запису і назначає на файл вихідний потік. Предикат writeblock записує всі значення бінарного терму в файл, тому що кількість байтів 0. Результатом буде вміст текстового файлу: 23

4.


<== попередня лекція | наступна лекція ==>
ПРЕДИКАТИ ВВОДУ | Робота з файлом прямим методом доступу


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