Lista de Definições de Tipos Abstratos de Dados 1. Observações gerais: 1.0. Escolher UM dos tipos abstratos para implementar. 1.1. Iniciar o(s) arquivo(s) com as seguintes linhas: ;;; -*- Mode: Lisp; Syntax: Common-lisp; Package: (USER) -*- ;;; ;;; Universidade Federal de Santa Catarina (UFSC) ;;; 88.040-900 Florianopolis - SC ;;; Brasil ;;; ;;; ;;; ;;; INE 5212 ;;; ;;; Progamador(es): ;;; (in-package "USER") 1.2. Utilizar estrutura ("defstruct") para definir a representação e utilizar a função de impressão. 2. Descrições 2.1. Vetores 2.1.1. Construtores (defun mk-vetor (coor) "cria vetor com a lista de coordenadas coor") 2.1.2. Seletores (defun projeta (vetor x) "seleciona a coordenada x de vetor") (defun modulo (vetor) "calcula o módulo de vetor") 2.1.3. Operações produto escalar produto vetorial multiplicação por número rotação em torno de um determinado eixo 2.2. Matrizes 2.2.1. Construtores (defun mk-matriz (dados) "cria matriz com conteúdo dados, por exemplo: ((a11 a12) (a21 a22)) ((a11 a12 a13) (a21 a22 a23)) (((a111 a112) (a121 a122)) ((a211 a212) (a221 a222))) ") 2.2.2. Seletores (defun elemento (matriz coor) "seleciona o elemento de matriz com lista de coordenadas coor") (defun dim (matriz) "dimensão de matriz") (defun tamanho (matriz x) "número de elementos de matriz na dimensão x") 2.2.3. Operações multiplicação por número determinante (se quadrada e de dimensão adequada) soma (se possível) produto matricial (se possível) inversa (se possível e se você tiver coragem :-) 2.3. Polinômios 2.3.1. Construtores (defun mk-pol (p) "cria polinômio, p deve ser uma lista da seguinte forma: ((A1 (X11 N11)(X12 N12)...)(A2 (X21 N21)(X22 N22)...) ... (An (Xn1 Nn1)(Xn2 Nn2)...) onde cada lista (Ai (Xi1 Ni1)(Xi2 Ni2)...) representa um monômio, onde os Ai's são os coeficientes, os Xi's as variáveis e os Ni's os graus das variáveis") (defun add-mono (p m) "adiciona o monômio m, representado por uma lista (Ai (Xi1 Ni1)(Xi2 Ni2)...), ao polinômio p, isto é, p já deve ser do tipo polinômio.") 2.3.1. Seletores (defun coef (p x n) "devolve o coeficiente da variável x de grau n do polinômio p. Este coeficiente pode ser um número ou um monômio.") (defun grau (p x) "devolve o grau máximo da variável x no polinômio p") (defun variaveis (p) "devolve uma lista com as variáveis de p") 2.3.3. Operações multiplicação por número soma e multiplicação de polinômios