Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора_ФиЛП.doc
Скачиваний:
21
Добавлен:
16.09.2019
Размер:
150.02 Кб
Скачать

26. Ввод-вывод в Лиспе.

В Common Лиспе, muLISPе ввод и вывод осуществляется независимо от конфигурации внешних устройств через потоки. Понятие потока в Лиспе сходно с аналогичным в C++ : потоки представляют собой логические каналы, из которых можно читать (поток ввода) или в которые можно писать (поток вывода)данные. Стандартным входным потоком (по умолчанию) считается поток из клавиатуры в программу, стандартным выходным потоком считается поток из программы на дисплей.

Для управления потоками в muLISPе имеются встроенные функции переключения потоков :

-Входного потока : (rds<устройство>)

-Выходного потока : (wrs<устройство>)

Устройством может быть клавиатура, дисплей, внешний файл, принтер. В случае использования внешнего файла нужно указать его имя (rdshelp.lsp)Переключение потоков на стандартные : (rds) –переключение входного потока на клавиатуру, (wrs) –переключение выходного потока на дисплей.

27) Ввод и вывод в Турбо-Прологе

¤|22\05\12~~07:57:02|¤ <Raphael> Ввод и вывод в Прологе организуется с помощью специальных предикатов чтения и записи, которые могут рассматриваться как аналоги соответствующих подпрограмм в языках Паскаль и Си.

¤|22\05\12~~07:57:03|¤ <Raphael> В общем случае пролог- программа взаимодействует с несколькими файлами ( в том числе с "псевдофайлом" keyboard (клавиатура) и "псевдофайлом" screen (экран)). Она считывает данные из нескольких входных файлов, называемых входными потоками, и выводит данные в несколько выходных файлов, называемых выходными потоками.

¤|22\05\12~~07:57:04|¤ <Raphael> В каждый момент выполнения программы лишь два файла являются "активными": один для ввода, другой для вывода. В начальный момент эти два потока соответствуют терминалу. Текущий входной поток может быть заменен на другой файл name_of_file посредством цели

¤|22\05\12~~07:57:07|¤ <Raphael> readdevice(name_of_file).

¤|22\05\12~~07:57:07|¤ <Raphael> Такая цель всегда успешна (если только с файлом name_of_file все в порядке), а в качестве побочного эффекта происходит переключение ввода с предыдущего входного потока на файл name_of_file.

¤|22\05\12~~07:57:10|¤ <Raphael> Форматный вывод writef

¤|22\05\12~~07:57:12|¤ <Raphael> writef(Format,Arg1,...,Argn) - подобен write, но осуществляет форматированный вывод в соответствии с параметром Format, который представляется в виде

¤|22\05\12~~07:57:15|¤ <Raphael> %p

¤|22\05\12~~07:57:16|¤ <Raphael> Возможные значения p :

¤|22\05\12~~07:57:18|¤ <Raphael> d - нормальное десятичное число ( символы и целые числа);

¤|22\05\12~~07:57:18|¤ <Raphael> u - беззнаковое целое;

¤|22\05\12~~07:57:20|¤ <Raphael> s - строка (атомы или строки);

¤|22\05\12~~07:57:20|¤ <Raphael> c - символ (символы и целые);

¤|22\05\12~~07:57:20|¤ <Raphael> g - вещественное в самом коротком формате;

¤|22\05\12~~07:57:22|¤ <Raphael> e - вещественное в экспоненциальном представлении;

¤|22\05\12~~07:57:25|¤ <Raphael> f - вещественное в десятичном представлении ( задается по умолчанию);

¤|22\05\12~~07:57:25|¤ <Raphael> x - шестнадцатиричное число (символы и целые числа).

¤|22\05\12~~07:57:35|¤ <Raphael> короче ща ссылку дам

¤|22\05\12~~07:58:07|¤ <Raphael> http://almamani.narod.ru/001.html

¤|22\05\12~~07:58:20|¤ <Raphael> в поиске пробьеш

¤|22\05\12~~07:58:21|¤ <Raphael> Ввод и вывод в Турбо-Прологе

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