Ознайомлення з застосуванням масивів, способами перетворення списків в масиви та навпаки, основними стандартними функціями обробки масивів

Страницы работы

Содержание работы

Лабораторна робота №7

Робота з масивами.

Ціль роботи: ознайомитися з застосуванням масивів, способами перетворення списків в масиви та навпаки, основними стандартними функціями обробки масивів.

Задача: написати програму, виконуючу зазначені дії в зазначеній послідовності. В програмі вікористати функції визначення масиву, виділення елемента масиву, організації циклів для операцій з членами масиву.

Приклади:

Визначення одномірного масиву (1Выделение памяти):

(SETQ A (MAKE-ARRAY 5))

Визначення двумірного масиву:

(SETQ A2 (MAKE-ARRAY '(4 3 ))  )

Введення одномірного масиву з клавіатури:

(defun Z1(N) (DOTIMES (K N) (SETF (AREF A K)(READ)) ))

Массив A1(M) зі списку L з виводом на екран :

(defun Z(L M)(PROG() (SETQ A1 (MAKE-ARRAY 5))

(DOTIMES (K M)

(PROGN (SETF (AREF A1 K)(CAR L)) (PRIN1 (AREF A1 K))(PRINC " ")

                       (SETQ L (CDR L)) ))    ))

Перетворення двумірного масиву A(M N) в список:

   (DEFUN MS (A M N)(PROG (L ) (DOTIMES (I M) (DOTIMES (K N)

      (SETQ L (APPEND L (LIST (AREF A I K))) ) ))

                                 (RETURN L) ))

Заданий список перетворити в двумірний массив (4*4), всі числа масива замінити нулями.

(setq l (list 'a 'b 'c 'd 1 2 3 4 'e 'f 'g 'h 5 6 7 8))

(defun f(l) (prog() (setq s (make-array '(4 4)))

(dotimes (i 4) (dotimes (k 4)

(progn (setf (aref s i k)

(cond ((null l) nil)

((not (symbolp (car l))) 0 ) (t (car l))))

(setq l (cdr l))

(prin1 (aref s i k))

(princ " "))) (print '!))))

Результат роботи програми:

> (f l)

A B C D !

0 0 0 0 !

E F G H !

0 0 0 0 !

NIL

Похожие материалы

Информация о работе