Предикат 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.