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