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

Documentos relacionados
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

CFAC: AutoLISP (I) - Introdução

AutoLISP -I Introdução

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

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 Programas Exemplo

Conjuntos de selecção

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

1º Exemplo - Rectângulo

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

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

AutoLISP - VI Conjuntos de seleção

AutoLISP -V Manipulação de entidades

Concepção e Fabrico Assistidos por Computador

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

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

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

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

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

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

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

Introdução à Programação Funcional

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

Elbow flange coupling

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

Ambiente de programação Visual Lisp

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

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

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

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

Existem conjuntos em todas as coisas e todas as coisas são conjuntos de outras coisas.

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

Caixa de Velocidades. Índice

UNIVERSIDADE DO PORTO

5. Expressões aritméticas

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Conceitos Básicos Linguagem C

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Algoritmos e Programação I

Algoritmos. Prof. Jonatas Bastos Site:

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

Características Básicas

C++ - Funções. Forma geral das funções C++

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

Questão 1. Nome para o arquivo fonte questao1.c

Linguagens de Programação I

FUNÇÕES PARTE 2. Recordando Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...: lista de argumentos de ENTRADA

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

Símbolo Nome lê-se como Categoria = 10 significa que se se somar 4 a 6, a soma, ou resultado, é 10.

Pró-Reitoria de Graduação Curso de Engenharia Civil Trabalho de Conclusão de Curso

@2007 João Manuel R. S. Tavares FEUP/DEMEGI/SDI. CFAC Concepção e Fabrico Assistidos por Computador

INFORMÁTICA PARA ENGENHARIA

4. Constantes. Constantes pré-definidas

AutoLISP - IV Ambiente de programação Visual Lisp. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Computação e Programação

Programação Básica. Estrutura de um algoritmo

Oficina de Python Prof. Me. José Carlos Perini

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

Introdução a programação Visão geral

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

CAPÍTULO 5 - UMA LINGUAGEM ALGORÍTMICA

Exercícios sobre algoritmos

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

A linguagem algorítmica utiliza o português para a definição dos comandos e tem as seguintes característica:

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

Oficina de Python Prof. Me. José Carlos Perini

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

Algoritmos e Programação

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

ESTRUTURAS DE CONTROLE

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

ALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

INFORMÁTICA PARA ENGENHARIA

Introdução à linguagem de programação C. Alexandre Mota

6 Alguns conceitos e comandos em programação

ACH5531 Introdução à Computação

Fundamentos de Programação

Algoritmo de Dijkstra em LISP

SSC510 Arquitetura de Computadores 1ª AULA

Fábio Rodrigues / Israel Lucania

Introdução à Computação: Arquitetura von Neumann

Introdução à Programação Funcional

3. Linguagem de Programação C

Informática I. Aula 7. Aula 7-17/09/2007 1

Introdução a Programação de Jogos

2ª Licenciatura AED1 e PC1 Prof. Eduardo 1 1 MODULARIZAÇÃO

Introdução ao MATLAB. Parte 2

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Constantes, Variáveis, tipos de dados e expressões

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

Transcrição:

AutoLISP -II Cálculos, Variáveis e Listas João Manuel R. S. Tavares / JOF Cálculos Expressões matemáticas são escritas na notação infixa; isto é, o operador antecede os operandos: 1+2 (+ 1 2 32.12-22.5 (- 32.12 22.5 1 + 2 + 3 + 4 (+ 1 2 3 4 7 * (9 / 2.0 (* 7 (/ 9 2.0 2 @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 1

Variáveis: A variável é um recurso utilizado pelo programa para executar funções iguais mas com valores que podem ser alterados em cada execução. Existem três tipos: livre (global; associada (argumento/parâmetro; local. O tipo da variável é determinado pela sua posição na lista de parâmetros na definição da função. 3 @2008 João Tavares / JOF Variáveis - tipos (esquema 4 (defun func1(a B / C D ; A, B: variáveis associadas (parâmetros, C, D: variáveis locais... (setq X... ; X variável livre/global... (defun func2( (setq Y (+ X 2 ; Y e X variáveis livres/globais... @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 2

Variáveis - tipos (definições Variável livre: Equivalente a variáveis globais. São utilizadas por várias funções. Não deve fazer parte da lista de parâmetros na definição da função, pois não pertence a nenhuma função específica e sim a todas as funções que constituem o programa. Variável local: Equivalente a uma variável temporária. Utilizada para armazenar dados auxiliares dentro de uma determinada função. 5 @2008 João Tavares / JOF Variáveis - tipos (definições Variável associada: Equivalente a parâmetros de entrada de uma função. Variáveis associadas e locais após a saída da função assumem o valor anterior à chamada da mesma (por exemplo, o valor zero. 6 @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 3

Exemplo - função com variáveis locais ;;;Cálculo do perímetro de uma circunferência a partir do ;;;diâmetro inserido pelo utilizador (defun c:circun(/ DIA PER (setq DIA (getreal "\ndigite o valor do diâmetro: " ;pi é uma constante do programa (Autocad / Autolisp (setq PER (* DIA pi (princ "\ndiametro = " (princ DIA (princ "\nperímetro = " (princ PER ;este princ faz com que a função não retorne um nil (princ 7 @2008 João Tavares / JOF Exemplo - função com variável associada 8 arquivo progcir.lsp: (defun c:circun(dia (setq PER (* DIA pi (princ "\ndiametro = " (princ DIA (princ " " (princ Perimetro = " (princ PER (princ (Cálculo do perímetro de uma circunferência a partir do diâmetro passado como argumento. (DIA Variável associada @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 4

Exemplo - função com variável associada linha de comando do AutoCAD: 9 Command: (load "progcir.lsp" CIRCUN Command: (c:circun 34 Diametro = 34 Perimetro = 106.814 Command: (c:xxx Obrigatório, apesar de definida como comando, devido a conter argumentos. @2008 João Tavares / JOF Exemplo - função com 2 variáveis associadas 10 (defun c:teste( ; programa principal (princ "teste" (setq a (getreal "\na?" (setq b (getreal "\nb?" (setq res 0 (setq a1 0 (setq a2 0 (setq b1 0 (setq b2 0 (soma a b ; cham. função soma (prompt "\na+b=" (prompt (rtos res (prompt "\na1=" (prompt (rtos a1 (prompt "\na2=" (prompt (rtos a2 (prompt "\nb1=" (prompt (rtos b1 (prompt "\nb2=" (prompt (rtos b2 (defun soma(n1 n2 (setq res (+ n1 n2 (setq a1 (* 2 n1 (setq a2 (* 4 n1 (setq b1 (* 2 n2 (setq b2 (* 4 n2 @2008 João Tavares / JOF ; função soma Ex. Resultado: JOF / João Manuel R. S. Tavares 5

Exemplo - função com variáveis livres 11 Conteúdo do arquivo media.lsp: ;;;Programa principal (defun c:mediatestes( (setq t1 (getreal "\nnota teste-1: " (setq t2 (getreal "\nnota teste-2: " (setq nota (soma-e-divide (princ "\nmedia dos testes = " (princ nota (princ ;;;funcao soma-e-divide (defun soma-e-divide( (/ (+ t1 t2 2.0 @2008 João Tavares / JOF Exemplo - função com variáveis livres Carregar o arquivo e executar a função mediatestes: Command: (load "c:\\trab\\media.lsp" SOMA-E-DIVIDE Command: mediatestes Nota teste-1: 5.0 Nota teste-2: 7.0 Media dos testes = 6.0 Command: 12 @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 6

Manipulação de listas de dados Dados agrupados em listas são manipulados por funções específicas. Existem apenas funções para obter: o primeiro átomo da lista - função car; o resto da lista (todos elementos excepto o primeiro - função cdr. 13 @2008 João Tavares / JOF Manipulação de listas de dados Para obter o 2º, o 3º átomo da lista utilizam-se funções derivadas a partir de concatenações (máximo de 4 de car e cdr; exemplos: cadr - retorna o 1º átomo do resto da lista original. Portanto, retorna o 2º átomo da lista original. cdaddr = cdr + car + cdr + cdr Para ler uma função derivada de concatenações de car e cdr: 1. ler de trás para frente, 2. desprezar a primeira e a última letra, 3. um d representa um cdr e um a representa um car. 14 @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 7

Comando car, cdr e derivados Command: (setq TESTE (list 10 20 30 40 (10 20 30 40 Command:!TESTE (10 20 30 40 Escreve o valor da variável TESTE Command: (car TESTE retorna o primeiro átomo da lista 10 15 @2008 João Tavares / JOF Comando car, cdr e derivados... Command: (cdr TESTE retorna uma lista sem o primeiro átomo da lista original (20 30 40 Command: (cadr TESTE executa um cdr sobre a lista original e um car sobre o resultado 20 Command: (caddr TESTE executa um cdr sobre a lista original, mais um cdr e finalmente um car sobre os respectivos resultados 30 16 @2008 João Tavares / JOF JOF / João Manuel R. S. Tavares 8