Действия с векторами и файлами - Lisp
Формулировка задачи:
Сформировать в виде файла два вектора размерности не более 8,
найти их разность и ответ записать в файл
Решение задачи: «Действия с векторами и файлами»
textual
Листинг программы
(defun task () (let ((fo (gensym 'fo)) (fi (gensym 'fi)) (v1 nil) (v2 nil) (v nil)) (filOpen fo "v1.txt" _OUTPUT) (filPutLine fo "(1 2 3 4 5 6 7 8)") (filClose fo) (filOpen fo "v2.txt" _OUTPUT) (filPutLine fo "(11 22 33 44 55 66 77 88)") (filClose fo) (filOpen fi "v1.txt" _INPUT) (setq v1 (input (filGetLine fi))) (filClose fi) (filOpen fi "v2.txt" _INPUT) (setq v2 (input (filGetLine fi))) (filClose fi) (setq v (mapcar '- v2 v1)) (filOpen fo "v3.txt" _OUTPUT) (filPutLine fo (output v)) (filClose fo) 'OK))
Объяснение кода листинга программы
В данном коде представлена реализация задачи с использованием языка программирования Lisp.
- Создается функция с именем
task, которая выполняет следующие действия: - Создаются четыре переменные:
fo- генератор символьное имя файла для записи;fi- генератор символьное имя файла для чтения;v1- пустой вектор;v2- пустой вектор.
- Открывается файл
foдля записи и записывается строка(1 2 3 4 5 6 7 8). - Файл
foзакрывается. - Открывается файл
foдля записи и записывается строка(11 22 33 44 55 66 77 88). - Файл
foзакрывается. - Открывается файл
fiдля чтения и считывается первая строка, которая сохраняется в переменнойv1. - Файл
fiзакрывается. - Открывается файл
fiдля чтения и считывается вторая строка, которая сохраняется в переменнойv2. - Файл
fiзакрывается. - Выполняется операция вычитания над векторами
v2иv1, результат сохраняется в переменнойv. - Открывается файл
foдля записи и записывается строка(output v), содержащая результат вычитания. - Файл
foзакрывается. - Возвращается значение
'OK'.