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

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

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

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

AutoLISP -V Manipulação de entidades

Concepção e Fabrico Assistidos por Computador

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

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

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

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

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

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

5. Expressões aritméticas

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

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

Conceitos Básicos Linguagem C

Algoritmos. Prof. Jonatas Bastos Site:

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

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

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

Linguagens de Programação I

Ambiente de programação Visual Lisp

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

6 Alguns conceitos e comandos em programação

Computação e Programação

Algoritmo de Dijkstra em LISP

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

CAPÍTULO 5 - UMA LINGUAGEM ALGORÍTMICA

Exercícios sobre algoritmos

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

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

Programação: Vetores

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

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

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

ESTRUTURAS DE CONTROLE

Fábio Rodrigues / Israel Lucania

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO - MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

Introdução a Programação de Jogos

Introdução à Programação Funcional

A Linguagem Lua Lua Puc-Rio

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

Uma Aula Prática sobre LISP

Introdução ao Controlo Numérico Computorizado III Sintaxe de Escrita (G, M, ) João Manuel R. S. Tavares Joaquim Oliveira Fonseca

PÓS-GRADUAÇÃO PRESENCIAL MARINGÁ

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

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

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares

Números Binários. Apêndice A V1.0

;(define conta-folhas ; (lambda ( ) ; (cond ; ( ( ) ) ; ( (and ) ) ; ( else ; ) ) ))

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

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

Paradigmas de Linguagens

Linguagens de Programação

Tipos de Dados e Expressões

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

Algoritmo e Programação Matemática

Exercícios Repetição

Prof. Esp. Fabiano Taguchi PHP. Como surgiu o PHP? PHP

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

Vetores Unimensionais

Algoritmos e Estrutura de Dados Aula 08 Pilhas

Noções de algoritmos - Aula 1

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

Linguagem C: Introdução

Introdução ao MATLAB. Parte 2

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

ESTRUTURAS COMPOSTAS VETOR

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

Algoritmos e Programação

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

Aula 12: Memória: Barramentos e Registradores

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

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

Instruções de Máquina

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

Capítulo 2 Operadores. A função scanf()

Disciplina: Arquitetura de Computadores

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Esta pseudomáquina foi criada em homenagem ao homem de Neandertal, o antecessor do homo sapiens.

SSC510 Arquitetura de Computadores 1ª AULA

Descrição geral das fórmulas

Organização e Arquitetura de Computadores I

Common-Lisp (introdutório).

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

Conceitos básicos de algoritmos

Introdução ao AutoCAD Capitulo II: Configuração e Organização

Algoritmos I Aula 8 Estrutura de controle: seleção

Exercícios TVC2 PARTE I:

Alocação Dinâmica em C

Introdução aos Algoritmos. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

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

01/08/2011 PROGRAMAÇÃO EM LINGUAGEM C. Histórico

Vetores Unimensionais

Proposta de Teste Intermédio Matemática A 11.º ano

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

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

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... )

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

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 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) 8

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:

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

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

Comandos 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

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