Реферат на тему:
Функції виводу
Функції виводу передають результат в поточний поток виводу (COS –
Current Output Stream).
1. (PRIN1
повертає об’єкт. Функція друкує символи використовуючи їх P-імена. Друк
відбувається згідно з поточною системою числення. Змінна *PRINT-POINT*
контролює максимальну кількість десяткових цифр для зображення на екрані
дисплею.
2. (PRINC
контрольними символами. Значення контрольної змінної *PRINT-ESCAPE* при
виклику PRINC стає рівним T.
(DEFUN PRINC (obj *PRINT-ESCAPE*)
(SETQ *PRINT-ESCAPE* T)
(PRIN1 obj) )
3. (WRITE-BYTE n). Якщо n — ціле число від 0 до 255, то функція виводить
в COS символ, ASCII-код якого дорівнює n, і повертає n.
4. (TERPRI n). Якщо n — невід’ємне ціле число, то в COS передається n
символів ASCII нового рядка. Якщо функція викликана без аргументів, n
вважається рівним 1. Сама функція повертає NIL.
(DEFUN TERPRI (n)
((AND (INTEGERP n) (>= n 0))
(LOOP
((ZEROP n) NIL)
(WRITE-BYTE 13)
(WRITE-BYTE 10)
(DECQ n) ) )
5. (PRINT
Вона має один аргумент. При виклику цей аргумент обчислюється, а потім
виводиться його значення. Перед виводом аргумента відбувається перехід
на новий рядок, а після виводу аргумента друкується проміжок. Значенням
функції є значення аргумента. Побочним ефектом функції PRINT є друк
повертаємого знчення. Функцію PRINT можна визначити так:
(DEFUN PRINT (x)
(TERPRI) (PRIN1 x) (PRINC “ “) )
6. (SPACES n). Передає n порожніх ASCII – символів (проміжків) в COS.
Повертає кількість переданих символів після того як буде переданий
останній новий рядок.
7. (FRESH-LINE). Якщо ми знаходимося на початку рядка, функція просто
повертає NIL. Інакше вона передає в COS новий рядок і повертає Т.
8. (WRITE-STRING ), (WRITE-LINE ). В COS виводиться
P-ім’я символа. Якщо аргумент не є символом, обидві функції повертають
NIL. Функція WRITE-LINE після виводу символа в COS автоматично виконує
перехід на новий рядок командою (TERPRI).
9. (SET-CURSOR a (mas list x)) (INCQ res))
(INCQ x)
)) )
4. $ (DEFUN CYCLES (lst) $ (DEFUN ISPLUS (lst t1)
(SETQ a 0) ((NULL lst) NIL)
(LOOP ((> (CAR lst) 0) t1)
(SETQ t1 (ISPLUS lst 1)) (ISPLUS (CDR lst) (+ t1 1)) )
((NOT t1))
(INCQ a)
(LOOP
((> 0 (MAS lst (- t1 1))))
(SETQ lst (change lst (- t1 1) (- (mas lst (- t1 1)))))
(SETQ t1 (- (mas lst (- t1 1)))) )
) a )
5. $ (DEFUN PRSQ (n) $ (DEFUN PRSQOPT (n)
(SETQ i 0) (SETQ k 0 ksq 0)
(LOOP (WRITE ksq) (SPACES 1)
((> i n)) (LOOP
(WRITE (* i i)) (SPACES 1) ((= k n ))
(INCQ i) (INCQ k) )
) ) (INCQ ksq (SUB1 (+ k k)))
(WRITE ksq) (SPACES 1)
) )
6. a) $ (DEFUN MATR_GET (m i j) в) $ (DEFUN GENMATR0 (i j)
(LOOP (SETQ lst (gen0 j) res NIL)
((ZEROP i) (SETQ m (CAR m))) (LOOP
(POP m) ((ZEROP i) res)
(DECQ i) (PUSH lst res)
) (DECQ i)
(LOOP )
((ZEROP j) (CAR m))
(POP m)
(DECQ j)
) )
б) $ (DEFUN MATR_CHANGE (m i j value) г) $ (DEFUN PMATR (m nx ny)
(SETQ head NIL) (SETQ i 0 j 0)
(LOOP (LOOP
((ZEROP i)(SETQ current (CAR m) t (CDR m))) ((= i nx))
(PUSH (POP m) head) (SETQ j 1)
(DECQ i) (LOOP
) ((= j ny))
(SETQ current (CHANGE current j value)) (WRITE (matr_get m i j))
(SPACES 2)
(PUSH current t) (INCQ j)
(LOOP )
((NULL head) t) (TERPRI 1)
(PUSH (POP head) t) (INCQ i)
) ) ) )
Нашли опечатку? Выделите и нажмите CTRL+Enter