Функції рядків, Детальна інформація
Функції рядків
Для читання даних з вхідного потоку використовують функцію READ. Після виконання команди (SETQ a (READ)) ви повинні ввести з консолі вираз, який буде прочитано та присвоєно змінній а. При цьому якщо буде введено декілька об’єктів, то змінній а буде присвоєно перший об’єкт. Наприклад, якщо ви введете: as bf gh, то змінна a прийме значення as. Якщо Ви хочете ввести список (складний об’єкт), то його необхідно вводити в круглих дужках: (as df gh).
Функція (CLEAR-INPUT) чистить буфер вводу. В будь-якому випадку повертається NIL.
Функція (READ-LINE) читає елементи з CIS поки не буде прочитано символ переходу на новий рядок (). Повертається символ, Р-ім’я якого складається з усіх прочитаних символів як ті були розташовані у вхідному рядку, окрім .
Функція (READ-CHAR) читає наступний елемент з CIS та повертає його.
Функція (UNREAD-CHAR) повертає в CIS останній прочитаний символ.
Функція (LISTEN) повертає T якщо CIS не порожній, та NIL якщо ми дійшли до кінця файлу.
Функції (OPEN-INPUT-FILE “”) та (CLOSE-INPUT-FILE “”) використовуються для відкриття та закриття файла для вводу.
Функції (OPEN-OUTPUT-FILE “”) та (CLOSE-OUTPUT-FILE “”) відповідно відкривають та закривають файл для виводу інформації.
Приклади
1. Надрукувати кількість літер sym в файлі name.
(DEFUN f (name sym) (SETQ a (READ))
(SETQ c 0) (IF (EQL a sym) (INCQ c)) )
(OPEN-INPUT-FILE name) (CLOSE-INPUT-FILE name)
(LOOP c )
((NOT (LISTEN)))
2. Надрукувати файл в оберненому порядку, якщо його елементи є атомами.
(DEFUN rew (in out) (PUSH (READ) temp) )
(OPEN-INPUT-FILE in) (LOOP
(OPEN-OUTPUT-FILE out) ((EQL temp NIL))
(SETQ temp NIL) (WRITE (POP temp))
(LOOP (SPACES 1) )
((NOT (LISTEN))) (CLOSE-INPUT-FILE in)
(CLOSE-OUTPUT-FILE out) )
Завдання
1. Написати функцію (SRT ), яка сортує текстовий файл та виводить дані в файл .
2. Написати функції (PRNUM2 num) та (PRNUM16 num), які відповідно друкують введені десяткові числа в двійковому та шістнадцятковому представленні.
3. Згенерувати за даними числом n та символом y список (y yy yyy yyyy .... yyyyyyyy. Кількість літер s в останньому елементі списку дорівнює n.
Відповіді
1. (DEFUN appl (lst1 lst2)
((NULL lst1) (append lst3 lst2))
Функція (CLEAR-INPUT) чистить буфер вводу. В будь-якому випадку повертається NIL.
Функція (READ-LINE) читає елементи з CIS поки не буде прочитано символ переходу на новий рядок (
Функція (READ-CHAR) читає наступний елемент з CIS та повертає його.
Функція (UNREAD-CHAR) повертає в CIS останній прочитаний символ.
Функція (LISTEN) повертає T якщо CIS не порожній, та NIL якщо ми дійшли до кінця файлу.
Функції (OPEN-INPUT-FILE “
Функції (OPEN-OUTPUT-FILE “
Приклади
1. Надрукувати кількість літер sym в файлі name.
(DEFUN f (name sym) (SETQ a (READ))
(SETQ c 0) (IF (EQL a sym) (INCQ c)) )
(OPEN-INPUT-FILE name) (CLOSE-INPUT-FILE name)
(LOOP c )
((NOT (LISTEN)))
2. Надрукувати файл в оберненому порядку, якщо його елементи є атомами.
(DEFUN rew (in out) (PUSH (READ) temp) )
(OPEN-INPUT-FILE in) (LOOP
(OPEN-OUTPUT-FILE out) ((EQL temp NIL))
(SETQ temp NIL) (WRITE (POP temp))
(LOOP (SPACES 1) )
((NOT (LISTEN))) (CLOSE-INPUT-FILE in)
(CLOSE-OUTPUT-FILE out) )
Завдання
1. Написати функцію (SRT
2. Написати функції (PRNUM2 num) та (PRNUM16 num), які відповідно друкують введені десяткові числа в двійковому та шістнадцятковому представленні.
3. Згенерувати за даними числом n та символом y список (y yy yyy yyyy .... yyyyyyyy. Кількість літер s в останньому елементі списку дорівнює n.
Відповіді
1. (DEFUN appl (lst1 lst2)
((NULL lst1) (append lst3 lst2))
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021