Взаимодействия с файлами - Lisp

Узнай цену своей работы

Формулировка задачи:

И снова здравствуйте! И снова я прошу помощи на канун Нового Года. Написать программу, вводящую данные из файла, содержащего n строк по шесть чисел, таким образом, что содержание нечётных строк присваивается элементам массива А, чётных строк – элементам массива В. Вывести эти значения на экран Буду очень признателен, тем кто поможет.

Решение задачи: «Взаимодействия с файлами»

textual
Листинг программы
(defun task (fnam)
  (let ((fi (gensym 'fi))
        (a nil)
        (b nil))
       (filOpen fi fnam _INPUT)
       (loop
            (when (filEOF fi) (return t))
            (push (input (strCat "(" (filGetLine fi) ")")) a)
            (push (input (strCat "(" (filGetLine fi) ")")) b))
       (filClose fi)
       (list (apply 'append (reverse a))
               (apply 'append (reverse b)))))

Объяснение кода листинга программы

В данном коде реализована функция task, которая выполняет следующие действия:

  1. Создает две пустые переменные: a и b.
  2. Создает уникальное имя файла с помощью функции gensym и сохраняет его в переменную fi.
  3. Открывает файл с помощью функции filOpen и сохраняет результат в переменную fi.
  4. В цикле loop считывает строки из файла с помощью функции filGetLine и добавляет их в переменные a и b с помощью функции push.
  5. Закрывает файл с помощью функции filClose.
  6. Считывает содержимое переменных a и b, преобразует их в строки с помощью функции input.
  7. Преобразует строки в символы списков с помощью функции strCat.
  8. Применяет функцию append к переменным a и b, чтобы объединить их содержимое в один список.
  9. Возвращает объединенный список.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5