Você está aqui: Lisp ::: Dicas & Truques ::: Lista (List)

Como retornar o terceiro elemento de uma lista LISP usando a função caddr

Quantidade de visualizações: 184 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

Link para compartilhar na Internet ou com seus amigos:

Lisp ::: Desafios e Lista de Exercícios Resolvidos ::: Lisp Básico

Exercícios Resolvidos de Lisp - Como multiplicar dois números em Lisp - Escreva um programa em Lisp para ler dois números inteiros informados

Quantidade de visualizações: 1502 vezes
Exercício Resolvido de Lisp - Como multiplicar dois números em Lisp - Escreva um programa em Lisp para ler dois números inteiros informados

Pergunta/Tarefa:

Escreva um programa Common Lisp que solicita ao usuário dois números inteiros e mostre a multiplicação dos dois valores, ou seja, o primeiro valor multiplicado pelo segundo.

Sua saída deverá ser parecida com:

Informe o primeiro valor: 3
Informe o segundo valor: 7
3 vezes 7 é 21
Resposta/Solução:

Veja a resolução completa para o exercício em Common Lisp usando o compilador Steel Bank Common Lisp (SBCL), comentada linha a linha:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

; Vamos definir as variáveis que vamos
; usar no programa
(defvar n1)
(defvar n2)
(defvar produto)

; Este o programa principal
(defun Multiplicacao()
  ; Vamos ler o primeiro valor
  (princ "Informe o primeiro valor: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  (setq n1 (read))
  ; Vamos ler o segundo valor
  (princ "Informe o segundo valor: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  (setq n2 (read))
  
  ; Agora vamos efetuar a multiplicação dos
  ; dois valores informados
  (setq produto (* n1 n2))
  
  ; E mostramos o resultado
  (format t "~D vezes ~D é ~D" n1 n2
    produto)
)

; Auto-executa a função Multiplicacao()
(Multiplicacao)



Lisp ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é par ou ímpar em Lisp

Quantidade de visualizações: 830 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 ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como converter graus em radianos em LISP - Trigonometria em LISP

Quantidade de visualizações: 774 vezes
Quando estamos trabalhando com trigonometria na linguagem Common Lisp (e AutoLISP, para programadores AutoCAD), é importante ficarmos atentos ao fato de que todos os métodos e funções trigonométricas em Lisp recebem seus argumentos em radianos, em vez de graus.

Nesta dica veremos como converter graus em radianos (sem a chatice de ficar relembrando regra de três). Veja a fórmula abaixo:

\[Radianos = Graus \times \frac{\pi}{180}\]

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 graus em radianos
(let((graus)(radianos))
  ; valor em graus
  (setq graus 30)
  ; obtém o valor em radianos
  (setq radianos (* graus (/ pi 180)))
  
  ; mostra o resultado
  (format t "~F graus em radianos é ~F" graus radianos)
)

Ao executarmos este código Common Lisp nós teremos o seguinte resultado:

30 graus convertidos para radianos é 0.5235987755982988


Vamos testar seus conhecimentos em Fundações

Fundações diretas ou rasas

A viga de fundação é também chamada de viga baldrame. É utilizada para conectar sapatas isoladas e distribuir melhor o peso da estrutura para as camadas do solo. A partir disso, projete uma viga de fundação para os pilares P1 e P2, indicados na figura, sendo a taxa no solo σs = 0,4.

Considere: P1 = P2 = 1.800KN.

Dimensões P1 e P2 = 25cmX100cm.



A) a = 400cm e b = 280cm.

B) a = 365cm e b = 250cm.

C) a = 250cm e b = 365cm.

D) a = 345cm e b = 230cm.

E) a = 405cm e b = 315cm.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil no código de defesa do consumidor

Qual é o prazo decadencial previsto em lei para reclamar o vício do produto, considerando que o vício está em um automóvel?

A) 5 dias.

B) 15 dias.

C) 30 dias.

D) 60 dias.

E) 90 dias.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Estrutura e propriedade dos materiais

O carbono é um elemento que existe em várias formas polimórficas e também no estado amorfo.

A figura a seguir representa, respectivamente, quais estruturas desse elemento?



A) Uma célula unitária para a estrutura cristalina da grafita e a estrutura do diamante.

B) Uma estrutura de um sólido cristalino de carbono simples e a estrutura do diamante.

C) Uma célula unitária para a estrutura cúbica do diamante e a estrutura da grafita.

D) A estrutura de uma célula de carbono da grafita e a estrutura cristalina do diamante.

E) A estrutura da grafita e uma célula unitária para a estrutura cristalina cúbica do diamante.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Dimensionamento de Redes de Distribuição de Água

Qual a vazão necessária na tubulação que sai do reservatório em uma rede ramificada para um loteamento com a seguinte configuração, considerando que cada habitante consome 400 L/dia?



A) 8,67 L/s.

B) 16,42 L/s.

C) 2,63 L/s.

D) 17,33 L/s.

E) 6,96 L/s.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Formas: Confecção e colocação

Durante a execução e cura de estruturas em concreto armado, as formas são submetidas a diversos tipos de solicitações, desde a montagem, passando pelo lançamento do concreto, peso da massa e armadura, etc. Sobre esses esforços, assinale a alternativa correta.

A) As formas dos pilares são mais solicitadas por cargas verticais.

B) As formas de lajes são mais solicitadas por cargas horizontais.

C) O peso da armadura é o principal esforço sobre qualquer tipo de forma.

D) As formas das vigas são mais solicitadas por esforços verticais.

E) O peso da armadura é determinante no dimensionamento da forma de vigas.
Verificar Resposta Estudar Cards Todas as Questões

Veja mais Dicas e truques de Lisp

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
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
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 50 usuários muito felizes estudando em nosso site.