Você está aqui: Lisp ::: Dicas & Truques ::: Lista (List) |
Como retornar o terceiro elemento de uma lista LISP usando a função caddrQuantidade de visualizações: 224 vezes |
Nesta dica mostrarei como podemos acessar e retornar apenas o terceiro item de uma list da LISP, ou seja, o terceiro elemento. Esta situação é muito comum em AutoLISP (o dialeto LISP para o AutoCAD), quando temos uma lista representando coordenadas 2D ou 3D e queremos acessar apenas o valor da coordenada Z. Veja um trecho de código LISP na qual temos uma list contendo 6 valores inteiros. Veja como usei a função caddr para acessar e retornar o valor do terceiro item: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; vamos declarar uma lista chamada valores ; contendo 6 números inteiros (let ((terceiro)(valores (list 5 8 2 3 9 7))) ; agora vamos obter o terceiro elemento ; da lista usando a função caddr() (setq terceiro (caddr valores)) ; e mostramos o resultado (format t "O terceiro elemento é: ~D" terceiro) ) Ao executarmos este código LISP nós teremos o seguinte resultado: O terceiro elemento é: 2 |
![]() |
Lisp ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus em LISP - Trigonometria em LISPQuantidade de visualizações: 613 vezes |
Todas as funções trigonométricas em Common Lisp (ou AutoLISP, para programadores AutoCAD) recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin(). Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código LISP: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; programa LISP que converte radianos em graus (let((radianos)(graus)) ; valor em radianos (setq radianos 1.5) ; obtém o valor em graus (setq graus (* radianos (/ 180 pi))) ; mostra o resultado (format t "~F radianos em graus é ~F" radianos graus) ) Ao executarmos este código LISP nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. |
Lisp ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em LispQuantidade de visualizações: 890 vezes |
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em Common Lisp usando-se a função REM, que retorna o resto de uma divisão por inteiros. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; variáveis que vamos usar no programa (let ((num)) ; Vamos ler um número inteiro (princ "Informe um valor inteiro: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável num (setq num (read)) ; vamos testar se o número informado é par ou ímpar (cond ((= 0 (rem num 2)) (princ "Você informou um número par")) (T (princ "Você informou um número ímpar")) ) ) Ao executar este programa Common Lisp nós teremos o seguinte resultado: Informe um valor inteiro: 8 Você informou um numero par É importante observar que a maioria das implementações Lisp fornecem as funções EVENP e ODDP que permitem testar se um número é par ou ímpar. O objetivo dessa dica foi fazer uma comparação entre a Common Lisp e outras linguagens de programação na realização desta tarefa. |
Lisp ::: LISP para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Polares para Coordenadas Cartesianas em LISP - LISP para EngenhariaQuantidade de visualizações: 607 vezes |
Nesta nossa série de LISP e AutoLISP para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas polares e coordenadas cartesianas. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil). Na matemática, principalmente em Geometria e Trigonometria, o Sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$). Já o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos. Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: ![]() A fórmula para conversão de Coordenadas Polares para Coordenadas Cartesianas é: x = raio × coseno(__$\theta__$) y = raio × seno(__$\theta__$) E aqui está o código LISP completo que recebe as coordenadas polares (r, __$\theta__$) e retorna as coordenadas cartesianas (x, y): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; programa LISP que converte Coordenadas Polares ; em Coordenadas Cartesianas (let((raio)(theta)(graus)(x)(y)) ; vamos ler o raio e o ângulo (princ "Informe o raio: ") (force-output) (setq raio (read)) (princ "Informe o theta: ") (force-output) (setq theta (read)) (princ "Theta em graus (1) ou radianos (2): ") (force-output) (setq graus (read)) ; o theta está em graus? (if(eq graus 1) (setq theta (* theta (/ pi 180.0))) ) ; fazemos a conversão para coordenadas cartesianas (setq x (* raio (cos theta))) (setq y (* raio (sin theta))) ; exibimos o resultado (format t "As Coordenadas Cartesianas são: (x = ~F, y = ~F)" x y) ) Ao executar este código LISP nós teremos o seguinte resultado: Informe o raio: 1 Informe o theta: 1.57 Theta em graus (1) ou radianos (2): 2 As Coordenadas Cartesianas são: (x = 0,00, y = 1,00) |
Veja mais Dicas e truques de Lisp |
Dicas e truques de outras linguagens |
JavaScript - Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScript |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |