Você está aqui: Lisp ::: Desafios e Lista de Exercícios Resolvidos ::: Lisp Básico

Exercícios Resolvidos de LISP - Um programa LISP ou AutoLISP que pede ao usuário que informe seu nome e exiba uma mensagem de boas-vindas - Exercícios Resolvidos de Lisp

Quantidade de visualizações: 457 vezes
Pergunta/Tarefa:

Escreva um programa LISP ou AutoLISP (a implementação LISP para o AutoCAD) que pede ao usuário que informe seu nome e exiba uma mensagem de boas-vindas. Se o usuário informar "Osmar J. Silva" seu programa deverá exibir a mensagem:

Seja bem-vindo(a), Osmar J. Silva

Resposta/Solução:

Vamos à resolução do exercício usando Common Lisp (a padronização da LISP):

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

; Ler o nome do usuário e exibir uma mensagem de boas vindas
(let (nome)
  ; vamos solicitar ao usuário que informe seu nome
  (princ "Informe seu nome: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o nome lido à variável nome
  (setq nome (read-line))
  
  ; agora vamos exibir a mensagem de boas-vindas
  (format t "Seja bem-vindo(a), ~a" nome)
)


Link para compartilhar na Internet ou com seus amigos:

Lisp ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Como declarar variáveis locais em Lisp usando o comando let

Quantidade de visualizações: 677 vezes
Em várias situações nós gostaríamos de declarar variáveis que serão usadas em um espaço limitado, ou seja, dentro de uma função Common Lisp ou até mesmo em um bloco de código. Entram em cena as variáveis locais.

Variáveis locais, como o próprio nome indica, são visíveis apenas dentro do corpo de uma função ou dentro do bloco no qual elas são declaradas.

Em Common Lisp as variáveis locais são declaradas usando-se o comando let. Veja um exemplo no qual nós declaramos três variáveis locais e que serão usadas no corpo de uma função Multiplicar():

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

; vamos definir a função Multiplicar()
(defun Multiplicar()
  ; vamos usar o comando let para declarar
  ; três variáveis locais
  (let ((a 3)(b 9)(produto))
    ; agora vamos obter o produto das variáveis
    ; a e b
    (setq produto (* a b))
    ; e mostramos o resultado
    (format t "O produto dos dois valores é ~D" produto)
  )
)

; chamamos a função Multiplicar()
(Multiplicar)

Ao executar este código nós teremos o seguinte resultado:

O produto dos dois valores é 27

Agora veja como podemos declarar variáveis locais dentro de um bloco de código em Common Lisp:

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

; vamos usar o comando let para declarar
; três variáveis locais (dentro de um bloco
; de código)
(let ((a 7)(b 5)(produto))
  ; agora vamos obter o produto das variáveis
  ; a e b
  (setq produto (* a b))
  ; e mostramos o resultado
  (format t "O produto dos dois valores é ~D" produto)
)

Execute este código e você terá o seguinte resultado:

O produto dos dois valores é 35

Nos dois trechos de código, se tentarmos acessar as variáveis locais fora de seus escopos, nós teremos o seguinte erro:

The variable PRODUTO is unbound.


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

Como calcular raiz quadrada em Lisp usando a função sqrt

Quantidade de visualizações: 1201 vezes
A raiz quadrada de um algarismo é dada por um número positivo n, que ao ser elevado ao quadrado (multiplicado por ele mesmo), se iguala a x. Na área da matemática, a raiz quadrada auxilia na resolução de vários problemas, entre eles as equações de segundo grau e o Teorema de Pitágoras.

Relembrando que a raiz quadrada é o inverso da potenciação com expoente dois, temos que:

\[\sqrt{9} = 3\]

então, pela potenciação:

\[3^2 = 9\]

Agora veremos como calcular a raiz quadrada usando a função sqrt da linguagem Common Lisp. Veja o código completo:

----------------------------------------------------------------------
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 numero)
(defvar raiz)

; Este o programa principal
(defun RaizQuadrada()
  ; Vamos ler o número
  (princ "Informe um número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável numero
  (setq numero (read))
  
  ; calcula a raiz quadrada do número informado
  (setq raiz (sqrt numero))
  
  ; E mostramos o resultado
  (format t "A raiz quadrada de ~F é ~F" numero
    raiz)
)

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

Ao executar este código Common Lisp teremos o seguinte resultado:

Informe um número: 9
A raiz quadrada é: 3

É importante observar que, se fornecermos um valor negativo para a função sqrt da Common List não teremos um erro, como em muitas outras linguagens de programação. Em vez disso, o valor retornado será em forma de um número complexo. Veja:

Informe um número: -9
A raiz quadrada de -9.0 é #C(0.0 3.0)


Lisp ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como testar uma condição em Lisp usando a macro if

Quantidade de visualizações: 956 vezes
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional.

Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10:

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

; Este é o programa principal
(defun Estudos()
  ; Vamos ler o número
  (princ "Informe um número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável numero
  (setq numero (read))
  
  ; vamos testar se este número é maior que 10
  (if (> numero 10)
    (format t "~D é maior que 10~%" numero))
  
  ; E mostramos o número informado
  (format t "O número informado foi: ~D" numero)
)

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

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

Informe um número: 12
12 é maior que 10
O número informado foi: 12


Vamos testar seus conhecimentos em

Dimensionamento de pilares intermediários

Uma das primeiras etapas ao desenvolver um projeto estrutural é a concepção estrutural. Nessa etapa, é necessário estimar a dimensão dos elementos estruturais e o pré-dimensionamento com base na NBR 6118/2014.

O engenheiro Thiago foi convidado para pré-dimensionar um pilar intermediário de concreto armado.

A seguir, os cuidados tomados por ele:

I. O pilar intermediário foi calculado com base na força atuante centrada.

II. No pilar intermediário, não foi calculado o momento de 2ª ordem.

III. O pilar foi calculado como pilar de canto.

Thiago procedeu corretamente em:

A) I, apenas.

B) I e II, apenas.

C) II, apenas.

D) I e III, apenas.

E) II e III, apenas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual função é usada para converter uma string em letras maiúsculas em Python?

A) toUpper()

B) upper()

C) upper_case()

D) toUpperCase()

E) uppercase()
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual é a forma correta de se retornar o primeiro caractere de uma string em Python?

A) letra = "BRASIL".char(0)

B) letra = "BRASIL"[0]

C) letra = "BRASIL".substring(0, 1)

D) letra = "BRASIL".sub(0, 1)

E) letra = sub("BRASIL", 0, 1)
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Bombas hidráulicas

As bombas hidráulicas são um grupo de máquinas hidráulicas muito comum em sistemas de abastecimento e distribuição de água de uma cidade. Resumidamente, as bombas captam água bruta e a transportam para uma estação de tratamento para que ela seja adequada aos parâmetros de potabilidade antes do fornecimento para os usuários.

Sobre as bombas hidráulicas, o que é correto afirmar?

A) As bombas hidráulicas podem ser dividas em: centrífugas, rotativas, de êmbolo e do tipo de poços profundos.

B) As bombas hidráulicas podem ser dividas em: centrípetas, rotacionais, de pistão e do tipo poços largos-rasos.

C) As bombas hidráulicas podem ser divididas em bombas de deslocamento positivo e bombas centrífugas.

D) As bombas hidráulicas podem ser agrupadas junto com as turbinas hidráulicas no grupo de máquinas fixas.

E) As bombas centrífugas não são muito utilizadas, apesar de sua aplicação em baixas pressões e altas vazões.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

COGO Points e Survey Points no AutoCAD Civil 3D

Quando selecionamos um COGO Point no AutoCAD Civil 3D e usamos suas alças (que permite mover e rotacionar), quantas formas de rotação existem para o marcador de ponto, o rótulo e a combinação ponto e rótulo?

A) Quatro

B) Um

C) Três

D) Cinco
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á 53 usuários muito felizes estudando em nosso site.