Действия с векторами и файлами - 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'
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д