Пример 4. Чтение символа из файла и вывод его на экран дисплея.

Domains

file=infile

predicates

position

Goal

write(" С каким файлом Вы хотите работать ? \n "),

readln(Fname), openread(infile,Fname), position.

Clauses

position:- readdevice(keyboard), nl,write("Введите номер позиции: "),

readreal(X), readdevice(infile), filepos(infile,X,0),

readchar(Y), write(" Здесь записан символ:",Y), position.

Форматный вывод.

 

writef(Format,Arg1,...,Argn) - подобен write, но осуществляет форматированный вывод в соответствии с параметром Format, который представляется в виде %p

Возможные значения p :

d - нормальное десятичное число ( символы и целые числа);

u - беззнаковое целое;

s - строка (атомы или строки);

c - символ (символы и целые);

g - вещественное в самом коротком формате;

e - вещественное в экспоненциальном представлении;

f - вещественное в десятичном представлении ( задается по умолчанию);

x - шестнадцатиричное число (символы и целые числа).

 

Ввод и вывод чисел и символов.

 

Пример 5. Вычисление куба числа, вводимого с терминала.

 

Domains

i=integer

Predicates

process(i)

cube

Clauses

cube:- write("Next number,please:"), readint(X), process(X).

process(N):- C=N*N*N, write("Cube",N,"is equal",C,"\n"), cube.

Goal

cube.

 

Пример 6. Считывание целых чисел с терминала и занесение их в список

 

Domains

list=integer*

Predicates

readlist(list)

Goal

readlist(TheList),write("\n The list is: ", TheList).

Clauses

readlist([H|T]):-readint(H),!,readlist(T). readlist([]).

 

После набора каждого целого числа нужно нажать ENTER. Завершение программы происходит по любому символу, который не является целым числом, плюс ENTER.

Пример 7. Вывод списков

Domains

i_list=integer*

n_list=symbol*

Predicates

writelist(i_list)

writelist(n_list)

Clauses

writelist([]).

writelist([H|T]):- write(H," "),writelist(T).

 

Обработка строк.

 

Стандартные предикаты обработки строк в Турбо-Прологе:

1.concat(Str1,Str2,Str1_2) - утверждает, что Str1_2 - это объединение строк Str1 и Str2; при этом по крайней мере два параметра должны быть определены заранее.

2.frontchar(Str1_2,Char,Str2) - работает в соответствии с уравнением:

Str1_2 = Char U Str2

3.frontstr(Length,InpString,StartString,RestString) - назначает первые Length символов строки InpString в строку StartString, остальные - в строку RestString.

4.fronttoken(String,Token,RestString)

String - входная строка;

Token - первый атом строки (последовательность символов до пробела);

RestString - остаток строки.

5.str_len(String,Length) - определяет длину строки.

 

Пример 8. Преобразование строки в список символов.

 

Domains

charlist=char*

Predicates

name(string,charlist)

Clauses

name(" ",[]).

name(S,[H|T]):-frontchar(S,H,S1), name(S1,T).








Дата добавления: 2016-05-05; просмотров: 482;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.