Exemplo: ; ver exemplo de aplicação abaixo com mapcar. ; retorna uma lista formada pelos elementos indicados. ; retorna o número de elementos na lista

Documentos relacionados
AutoLISP -VII Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

AutoLISP - III Funções de repetição e condicionais, Obter e converter informação. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Função condicional - if. AutoLISP - III Funções de repetição e condicionais, Obter e converter informação

AutoLISP -V Manipulação de entidades

Conjuntos de selecção

AutoLISP - VI Conjuntos de seleção

Introdução à Programação Funcional. Conteúdo

IMPLEMENTAÇÃO D0 DESENHO AUTOMÁTICO DE CILINDROS DE DUPLO EFEITO AUTOLISP CONCEPÇÃO E FABRICO ASSISTIDOS POR COMPUTADOR ANO LECTIVO

Introdução à Programação Funcional

Programação Funcional. Programação Funcional LISP. Paradigma de programação baseado em Funções Matemáticas

LISP - Introdução. Existem vários dialectos de LISP: COMMON LISP (o mais sofisticado e mais utilizado) Outros: MAC LISP, INTERLISP, XLISP

Instituto Superior Técnico Licenciatura em Arquitectura Desenho Assistido por Computador II Ano lectivo 2005/06, 2 ano

AutoLISP Programas Exemplo. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

AutoLISP Programas Exemplo

1º Exemplo - Rectângulo

Common-Lisp (introdutório).

Programação e Computação para Arquitectura 2010/2011

Faculdade de Engenharia da Universidade do Porto Concepção e Fabrico Assistido por Computador. Relatório

Inteligência Artificial

Referências bibliograficas: * Paul Graham, Ansi Common Lisp, Prentice Hall, Livro com descrição da linguagem Common-Lisp.

Faculdade de Engenharia Universidade do Porto RELATÓRIO CFAC Trabalho em Autolisp

Programação e Computação para Arquitectura 2007/2008

CFAC: AutoLISP (II) - Cálculos, Variáveis e Listas

Exercícios da cadeira de Inteligência Artificial. Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos

AutoLISP - II Cálculos, Variáveis e Listas. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

AutoLISP -II Cálculos, Variáveis e Listas

EM GESTÃO E ENGENHARIA INDUSTRIAL Disciplina de Concepção e Fabrico Assistidos por Computador

Exercícios de Programação e Computação para Arquitectura. António Menezes Leitão

CFAC: AutoLISP (I) - Introdução

Anexo A. Resumo dos principais procedimentos do Scheme

Concepção e Fabrico Assistidos por Computador

Caixa de Velocidades. Índice

AutoLISP -I Introdução

AutoLISP - I Introdução. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas

Programação para Internet II PHP Funções. Nuno Miguel Gil Fonseca

Modelação Geométrica e Visualização de Edifícios 2007/2008

para facilitar o trabalho com listas listas Cell model Lista é representada através de uma lista de células

Programação Orientada a Objetos. Programação Funcional

Disciplina: Introdução à Engenharia da Computação

AMBIENTE DE PROGRAMAÇÃO PYTHON II

Introdução à Programação C

Elbow flange coupling

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Manipulação de strings e conversão entre tipos de dados

cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo

Funções de Entrada e Saída

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Linguagem de Programação C

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Introdução à linguagem C

Testes e Exames do Desenho Assistido por Computador Teste

Exercícios da cadeira de Introdução à Programação

Continuação de Estruturas de controle. Foreach

Cadeias de Caracteres (Strings)

Python: Tuplas e Strings. Claudio Esperança

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Comandos básicos do AutoCAD

Caracteres e Cadeias de Caracteres

Métodos Computacionais. Strings (Vetor de Caracteres)

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Oficina: Programação para Android com o App Inventor. Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim

Linguagem C: Tipos básicos de dados escalares e cadeia de caracteres. Prof. Leonardo Barreto Campos 1

Concepção e Fabrico Assistido por Computador

É usual respeitarem-se as seguintes convenções: Nome de uma classe começa por maiúscula (e.g. Solido)

UNIVERSIDADE DO PORTO

Estrutura Sequencial. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Caracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos

Desenho auxiliado por computador

Introdução a Programação. Strings (Vetor de Caracteres)

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

POO Programação Orientada a Objetos. Classes e Objetos 2

Inteligência Artificial

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Sumário. Ficheiros. Ficheiros

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

TÉCNICAS DE CAD PARA ENGENHARIA CIVIL AULA 7 2. INCLUSÃO DE PADRÕES DE HACHURAS NOS DESENHOS

Preparação para Maratona de Informática PYTHON

Tratamento de Caracteres

3.1 - Funções para manipular dados de entrada e saída padrão

Desenho Técnico e CAD CAD e Sistemas de Coordenadas. Limits. Units. Define o tamanho da área de trabalho do desenho. Define as unidades do sedenho.

ENTRADA DE COMANDOS ATRAVÉS DA BARRA DE FERRAMENTAS:

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

INF 1620 P4-09/07/03 Questão 1 Nome:

CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

Estácio-FIC Graduação em Redes de Computadores

Cartão de Referência do GNU Emacs. Iniciando o Emacs. Procura Incremental. Saindo do Emacs. Arquivos. Movimento. Pedindo Ajuda.

Prof. MsC Vicente Paulo de Camargo PUCGO. Conteúdo baseado no livro Lógica de programação e estrutura de dados - Java - Sandra Puga

Introdução à Ciência da Computação (ICC) PROVA P2 Sexta-feira 1 de Junho de 2001

Introdução à Programação Funcional

INF 1620 P2-23/10/04 Questão 1 Nome:

Introdução à Programação. Strings

Layout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Transcrição:

Instituto Superior Técnico Licenciatura em Arquitectura Desenho Assistido por Computador II Ano lectivo 2005/06, 2 ano Responsável: Assistente: Prof. José Pinto Duarte Arq. Deborah Benrós Notas de apoio ao Exercício 4. Parte 1 Manipulação de Listas e Strings e outros assuntos 1. Definição de funções anónimas (lambda args exp) (lambda (x) (* 2 x)) ; define uma função ; ver exemplo de aplicação abaixo com mapcar 2. Manipulação de listas - básico (10 20 5) ; retorna uma lista formada pelos elementos indicados (list 10 20 5) ; retorna uma lista formada pelos elementos indicados (car lista) ; retorna o primeiro elemento da lista (nth indice lista) ; retorna o enésimo elemento da lista (last lista) ; retorna o último elemento da lista (cdr lista) ; retorna uma lista sem o primeiro elemento (length lista) ; retorna o número de elementos na lista (cons elemento lista) ; adiciona o elemento ao início da lista (subst novo velho lista) ; retorna a lista com elemento velho substituido pelo novo (append lista1 lista2...) ; adiciona duas ou mais listas (reverse lista) ; retorna uma lista com os elementos em posição invertida (setq lista (list 10 20 5)) ; retorna (10 20 5) (car lista) ; retorna 10 (nth 0 lista) ; retorna 10 (nth 1 lista) ; retorna 20 (last lista) ; retorna 5 (cdr lista) ; retorna (20 5) (length lista) ; retorna 3 (cons 0 lista) ; retorna (0 10 20 5) (subst 50 10 lista) ; retorna (50 20 5) (append lista lista) ; retorna (10 20 5 10 20 5) (reverse lista) ; retorna (5 20 10) 1

3. Manipulação de listas - avançado (member elemento lista) ; verifica se o elemento faz parte da lista, se faz retorna o resto da lista a partir do elemento (member c (a b c d e)) ; retorna (c d e) (assoc elemento lista) ; procura o registo que tem o elemento como chave numa lista do tipo associativo (setq data ((width 12) (height 12) (length 4))) (assoc height data) ; retorna (height 12) (foreach variavel lista expressao) ; executa a expressão para cada elemento da lista, representado pela variável (setq total 0) (foreach x (list 1 2 3 4 5) (setq total (+ total x))) ; o total é 15 (foreach ponto (list 1 1) (list 2 2) (command donut 4 3 ponto ) (mapcar funcao lista1 lista2 ) ; retorna uma lista formada por elementos resultantes da aplicação da função dada aos elementos da listas (mapcar + (list 1 2) (list 50 60)) ; retorna (51 62) (mapcar (lambda (x) (* x 2)) (list 1 2 3)) ; retorna (2 4 6) (apply funcao lista) ; retorna o resultado da execução da função tendo como argumentos os elementos Exemplo (apply + (1 2 3)) ; retorna 6 4. Manipulação de strings - básico (strcase string op) ; retorna a string em maiúsculas (nada na opção) ou em minúsculas (1 ou T na opção) (strcat string1 string2) ; une duas ou mais strings numa só (substr string posicao comprimento) ; retira parte da string a partir da posição e com o comprimento dados (strlen string) ; indica o número de caracteres na string (wcmatch string padrao) ; procura o padrão dado na string e retorna T ou nil (read string) ; lê o conteúdo de uma expressão e retorna o valor no formato adequado (strcase Maisculas ) (strcase Maisculas 1) ; retorna MAISCULAS ; retorna maisculas 2

(strcat Isto sao palvras ) ; retorna Isto sao palavras (substr frase a retirar parte 17 5) ; retorna parte (strlen palavra ) ; retorna 7 (read 3.1415 ) ; retorna 3.1415 (wcmatch palavra p* ) ; retorna T (ver quadro de wildcards abaixo) # Caracter numérico simples @ caracter alfanumérico simples * qualquer sequencia de caracteres, incluindo em vazio ~ se for o primeiro caracter do padrão aceita qualquer caracter menos os que são do padrão [...] verifica a equivalencia de qualquer caracter dentro dos parentesis [~...] verifica algum carater que não seja equivalente aos dos parentesis - usado dentro de parentises especifica a tolerancia para um caracter simples, separa dois padrões ` ignora carateres especiais, faz uma leitura literal do carater seguinte 5. Funções de conversão (atof string) (atoi string) (fix real) (float inteiro) (itoa inteiro) (rtos real formato precisao) (distof distancia unidades) (anftof angulo unidades) (ascii string) (chr inteiro) ; transforma uma string numérica num real ; transforma uma string numérica num inteiro (se a string for um real retorna a parte inteira) ; retorna a parte inteira dum real ; transforma um inteiro num real ; transforma um inteiro numa string ; transforma um real numa string ; transforma uma string num real ; transforma string representando ângulo num real ; retorna o código ascii do caracter ; transforma um inteiro no respectivo caracter (entre 0-255) (atof 2.53 ) ; retorna 2.53 (atoi 114 ) ; retorna 114 (fix 3.457 ) ; retorna 3 (float 12) ; retorna 12.0 (itoa 21) ; retorna 21 (rtos 11.65 2 4) ; retorna 11.6500 (formatos: 1-científico, 2-decimal, 3-engenharia, 4- arquitecura) e 5-fraccional) (distof 1.7500E+01 1) ; retorna 17.5 (angtof 45 1) ; retorna 0.785398 (unidades: 0 graus, 1 graus/minutos/segundos, 2-grados, 3-radianos, 4- unidades geográficas) (ascii h ) ; retorna 104 (chr 87) ; retorna W 6. Funções auxiliares (function expressao) ; faz com que a expressao não seja executada 3

(eval expressao) (princ) (polar ponto angulo distancia) (angle ponto1 ponto2) (distance ponto1 ponto2) (inters pt1 pt2 pt3 pt4 op) (osnap ponto snaps) ; executa a expressão ; evita que a função retorne ; retorna as coordenadas dum ponto a partir de outro recorrendo as coordenadas polares (o ângulo é dado em radianos) ; calcula o ângulo da recta definida pelos dois pontos com a horizontal ; calcula a distância entre dois pontos ; retorna a intersecção entre os dois segmentos definidos pelos quatro pontos (se a opção é nil calcula a intersecção entre as duas rectas mesmo que os segmentos não se intersectem) ; permite aplicar o objecto snap a um ponto (setq pt1 (getint indique ponto )) (setq pt2 (osnap pt1 endp, midp ) ; faz snap para o ponto mais próximo de pt1 (tem que existir um objecto e o ponto indicado tem que estar sobre o objecto) (trans pt1 from to) (trans (list 12 3) 0 1) (trans (list 12 3) 1 0) ; transforma as coordenadas do ponto dado de um sistema de coordenadas para outro 0 WCS world coordinate system 1 UCS user coordinate system 2 viewport 3 ecran ; transforma coordenadas de WCS para UCS ; de UCS para WCS 7. Funções para manipular entidades (continuação) (entmake...) ; constrói uma nova entidade a partir da lista dada com as características da entidade (se não forem indicadas características do objecto usa características por defeito) (defun linha () (entmake (list (cons 0 line ) (cons 8 layer ) (cons 62 0) (list 10 2.5 4.5) (list 11 3.2 6.5)))) pág. 539 do livro de apoio lista os códigos (entmode ent) ; recria a entidade após os seguintes passos: 1. obtém-se a entidade 2. obtém-se o atributo 3. altera-se e coloca-se num variável 4. recria-se a entidade 4

(defun mudarlayer () (setq ent (car (entsel \n seleccione entidade ))) (if ent (progn (setq ent1 (entget ent)) (setq ent1 (subst (cons 8 20 ) (assoc 8 ent1) ent1)) (entmode ent1) ) ; prong ) ; if ) ; defun (entupd ent) ; semelhante ao entmode mas usa-se para entidades mais complexas 8. Funções para verificar o input (null valor) (not valor) (atom valor) (zerop valor) (listp valor) (boundp simbolo) (numberp valor) (minusp valor) (type valor) (setq a 0) (zerop a) (null b) (setq c 2.01) ; listas, retorna T se o valor é nil, senão retorna nil ; número, retorna T se o item é nil, senão retorna nil ; retorna T se o item é um átomo, senão retorna nil (um átomo é tudo o que não é uma lista) ; retorna T se o valor é zero, senão retorna nil ; retorna T se o valor é uma lista, senão retorna nil ; retorna T se o símbolo tem um valor atribuido, senão nil ; retorna T se o valor é real ou inteiro, senão retorna nil ; retorna T se o valor é negativo, senão retorna nil ; retorna o tipo de valor, como indicado abaixo (os tipo são referenciados sempre em letras maiúsculas) ; retorna T ; retorna T porque a variável b não está definida (not c) ; retorna nil porque c = 2.01 (atom (list 0 1)) ; retorna nil porque é uma lista (listp a) ; retorna nil porque a é um átomo (boundp a) ; retorna T porque tem valor atribuido (numberp a) ; retorna T (minusp a) ; retorna nil (type a) ; SYM símbolos (type 2) ; INT inteiro (type 2.1) ; REAL real (type a ) ; STR string (type (list a b c)) ; LIST lista (type nil) ; nil nil (type +) ; SUBR função interna do autolisp EXSUBR função externa ADS (type (entlast)) ; ENAME nome de entidade (entity name) (type (ssadd)) ; PICKSET lista de entidades (selection set) 5