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 -I Introdução

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

CFAC: AutoLISP (I) - Introdução

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

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

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

1º Exemplo - Rectângulo

AutoLISP -V Manipulação de entidades

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

AutoLISP Programas Exemplo

AutoLISP - VI Conjuntos de seleção

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

Conjuntos de selecção

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

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

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

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

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

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

Elbow flange coupling

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

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

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

Introdução ao Controlo Numérico Computorizado III Sintaxe de Escrita (G, M, )

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

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

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

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:

Introdução ao SolidWorks (III): Fundamentos para Conjuntos

Introdução ao SolidWorks (III): Fundamentos para Conjuntos. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

CAPÍTULO 5 - UMA LINGUAGEM ALGORÍTMICA

Ambiente de programação Visual Lisp

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

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

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

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)

Linguagens de Programação I

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

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

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

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.

INFORMÁTICA PARA ENGENHARIA

Algoritmo de Dijkstra em LISP

Teste de Matemática A 2015 / 2016

Computação e Programação

4. Constantes. Constantes pré-definidas

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

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

Introdução ao software MatLab

A Linguagem Lua Lua Puc-Rio

Oficina de Python Prof. Me. José Carlos Perini

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

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

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

Exercícios sobre algoritmos

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

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

Programação: Vetores

Algoritmos e Programação

Linguagens de Programação

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Repetição Controlada por Contador. Nono Exemplo utilizando Classes em C++

ESTRUTURAS DE CONTROLE

Algoritmos e Estruturas de Dados I Prof. Eduardo 1 1 MODULARIZAÇÃO

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

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

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

CFAC: Introdução ao AutoCAD - VI. Capitulo VI: Adicionar texto

INFORMÁTICA PARA ENGENHARIA

6 Alguns conceitos e comandos em programação

ACH5531 Introdução à Computação

Aplicações de Programação CNC/ISO com Microcomputador. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

SSC510 Arquitetura de Computadores 1ª AULA

Fundamentos de Programação

Fábio Rodrigues / Israel Lucania

Transcrição:

AutoLISP -II Cálculos, Variáveis e Listas João Manuel R. S. Tavares Joaquim Oliveira Fonseca 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 JST/JOF 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 ou 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 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... JST/JOF 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. O seu valor é perdido na saída da função. 5 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 JST/JOF 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 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 JST/JOF 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. 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 ; função soma Ex. Resultado: JST/JOF 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 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: 15.0 Nota teste-2: 17.0 Media dos testes = 16.0 Command: 12 JST/JOF 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 exceto o primeiro - função cdr. 13 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 JST/JOF 7

Comandos car, cdr e derivados Command: (setq TESTE (list 10 20 30 40 (10 20 30 40 Command:!TESTE (10 20 30 40 Command: (car TESTE retorna o primeiro átomo da lista 10 Escreve o valor da variável TESTE 15 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 respetivos resultados 30 16 JST/JOF 8