Буферизированный (потоковый) ввод-вывод. Часть II
7.1.6. Вывод средствами языка Turbo Prolog
Для вывода данных в стандартный поток вывода в языке Turbo Prolog используются следующие функции:
ФУНКЦИЯ: | write |
СИНТАКСИС: | write( Variable|Constant* ), где Variable - "связанная" переменная любого типа, Constant - константа любого типа. Список выводимых переменных и констант может быть произвольной длины. Элементы списка разделяются запятыми; |
НАЗНАЧЕНИЕ: | Выводит данное количество аргументов; |
ОПИСАНИЕ: | Функция write записывает данные константы или переменные в текущее окно или на текущее устройство вывода. Функция write может быть связана с произвольным ненулевым числом аргументов. Аргументы в функции write не могут быть свободными переменными. |
ШАБЛОНЫ: | (i, i*); |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Всегда успех (истина); |
ОШИБКИ: | * 2001 Не могу выполнить операцию записи. |
ФУНКЦИЯ: | nl |
СИНТАКСИС: | nl |
НАЗНАЧЕНИЕ: | Переводит вывод текста на экране на новую строку; |
ШАБЛОНЫ: | Нет; |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Всегда успех; |
ОШИБКИ: | Нет; |
Назначение символов в формате спецификации смотри в Приложении №2 к "Буферизированный (потоковый) ввод-вывод" данного курса.
Ниже рассмотрен пример программы на языке Turbo Prolog, реализующей алгоритм из примера 7.2.
Пример 7.7.
/* Файл EX07007.PRO */ /* Пример тестировался в системе программировани Borland Turbo Prolog 2.0. */ /* Данная функция запрашивает имя и возраст пользовател и выводит приветствие */ domains /* Описываем переменные */ Age = integer Name = string predicates output_age( Age ) clauses /* Определяем правило output_age */ output_age( Age ) :- Age < 40, write( "Молодой человек!" ), !. output_age( Age ) :- write( "Папаша!" ). goal /* Описываем алгоритм работы программы */ write( "Введите Ваше имя: " ), readln( Name ), write( "Введите Ваш возраст: " ), readint( Age ), write( "Добрый день, "), output_age( Age ), nl, writef( "Ваш возраст, %s, -- %3d лет", Name, Age ),nl, write( "Press key Enter to exit..." ), readchar( _ ).Листинг 7.7. Реализация алгоритма из примера 7.2.
7.1.7. Вывод средствами языка VBScript
Вывод в стандартный поток вывода и стандартный поток ошибок осуществляется на языке Visual Basic Script только при выполнении макроса в оболочке CScript.
Для вывода данных в стандартный поток вывода средствами языка VBScript используются следующие функции:
ФУНКЦИЯ | WRITE |
ОПРЕДЕЛЕНА В: | WScript; |
СИНТАКСИС: | WScript.Std[Out|Err].Write( String ), где String - выводимая на экран строка текста; |
НАЗНАЧЕНИЕ: | Выводит строку символов на экран; |
ОПИСАНИЕ: | Записывает в поток StdOut или StdErr строку string (без символа конца строки); |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
ПЕРЕНОСИМОСТЬ: | Только сценарии CScript; |
ФУНКЦИЯ | WRITEBLANKLINES |
ОПРЕДЕЛЕНА В: | WScript; |
СИНТАКСИС: | WScript.Std[Out|Err].WriteBlankLines(n), где n - число пропущенных (пустых) строк; |
НАЗНАЧЕНИЕ: | Печать пустых строк на экране; |
ОПИСАНИЕ: | Записывает в поток StdOut или StdErr заданное параметром n число пустых строк; |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
ПЕРЕНОСИМОСТЬ: | Только сценарии CScript; |
ФУНКЦИЯ | WRITELINE |
ОПРЕДЕЛЕНА В: | WScript; |
СИНТАКСИС: | WScript.Std[Out|Err].WriteLine( String ), где String - выводимая на экран строка текста; |
НАЗНАЧЕНИЕ: | Выводит строку символов на экран; |
ОПИСАНИЕ: | Записывает в поток StdOut или StdErr строку string (вместе с символом конца строки) |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
ПЕРЕНОСИМОСТЬ: | Только сценарии CScript; |
ФУНКЦИЯ | ECHO |
ОПРЕДЕЛЕНА В: | WScript; |
СИНТАКСИС: | WScript.Echo String[, String], где String - Выводимая (-ые) строка текста или переменные; |
НАЗНАЧЕНИЕ: | Вывод строки текста; |
ОПИСАНИЕ: | Функция выводит строки символов, одну или нескольких переменных в поток вывода StdOut или диалоговое окно. При этом производится приведение типов; |
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
ПЕРЕНОСИМОСТЬ: | Все сценарии; |
Замечание: запись Std[Out|Err] означает "или StdOut, или StdErr", то есть функция перенаправляет вывод или в стандартный поток вывода, или в поток ошибок (смотри таблицу 6.1 в предыдущей лекции).
Пример 7.8.
'***************************************************************** '* Имя: ex07008.vbs '* Язык: VBScript Microsoft Windows XP '* Описание: Организация простого диалога с проверкой услови '***************************************************************** Dim Name, Age, junk ' Выводим диалоги WScript.StdOut.Write( "Введите Ваше имя: " ) Name = WScript.StdIn.ReadLine WScript.StdOut.Write( "Введите Ваш возраст: " ) Age = WScript.StdIn.ReadLine ' Проверка условий и вывод приветстви If Age < 40 Then WScript.StdOut.WriteLine( "Добрый день, Молодой человек!" ) Else WScript.StdOut.WriteLine( "Добрый день, Папаша!" ) End if WScript.StdOut.WriteLine( "Ваш возраст, " & Name & " - " & Age & " лет" &vbCrLf ) ' Выход из программы Wscript.Echo "Press key Enter to exit..." junk = WScript.StdIn.ReadLine() ' Конец программыЛистинг 7.8. Реализация алгоритма из примера 7.2.