E-Book 650 Dicas e Truques de Python - PDF com 1.200 páginas
Você está aqui: Lisp ::: LISP para Engenharia ::: Hidrologia e Hidráulica

Como calcular o volume de chuvas em LISP - Fórmula do cálculo do volume de chuvas em LISP

Quantidade de visualizações: 105 vezes
O estudo da Hidrologia passa, necessariamente, pelo cálculo do volume de chuvas em uma determinada região, ou bacia hidrológica. Assim, é comum ouvirmos alguém dizer que, em um determinado local, choveu 100 mm durante um determinado período. Mas o que isso significa?

O mês mais chuvoso em Goiânia é dezembro, com média de 229 milímetros de precipitação de chuva. Isso significa que, em uma área de 1 m2, a lâmina de água formada pela chuva que cai apresenta uma altura de 229 milímetros.

Como sabemos que o volume é a área multiplicada pela altura, tudo que temos a fazer é considerar a área de 1 m2 multiplicada pela altura da lâmina de água (convertida também para metros). Veja a fórmula:

\[\text{Volume} = \text{(Área da Base) x Altura}\]

Lembre-se de que volume pode ser retornado em litros, ou seja, 1 m3 = 1000 litros.

Veja agora o código LISP completo que pede para o usuário informar a precipitação da chuva, ou seja, a altura da lâmina de água em milímetros e retorna o volume de água em litros.

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

; Este é o programa principal
(defun Principal()
  (let ((altura_lamina)(volume_chuva))  
    ; vamos pedir para o usuário informar a altura da lâmina
    ; de água em milímetros
    (princ "Altura da lâmina de água em milímetros: ")
    ; talvez o seu compilador não precise disso
    (force-output)
    (setq altura_lamina (read))
	
    ; o primeiro passo é converter os milímetros da lâmina de água
    ; para metros
    (setq altura_lamina (/ altura_lamina 1000.0))

    ; agora que já temos a altura da lâmina em metros, vamos multiplicar
    ; pela base (1 metro quadrado) para obtermos o volume da chuva por
    ; metro quadrado
    (setq volume_chuva (* (* altura_lamina 1.00) 1000.0))

    ; vamos mostrar o resultado
    (format t "O volume da chuva é ~F litros para cada metro quadrado"
       volume_chuva)
  )
)
 
; Auto-executa a função Principal()
(Principal)

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

Altura da lâmina de água em milímetros: 229
O volume da chuva é: 229.0 litros para cada metro quadrado

Qual é o volume de 1 mm de chuva?

A altura pluviométrica é a espessura da lâmina d'água precipitada que cobre a região atingida pela chuva. Geralmente a unidade de medição é o milímetro (mm) porque o aparelho que mede a chuva, o pluviômetro, é lido em milímetros.

O pluviômetro é um aparelho meteorológico destinado a medir, em milímetros, a altura da lâmina de água gerada pela chuva que caiu numa área de 1 m2.

1 mm de chuva equivale a 1 litro de água, ou 1 dm3, considerando a área de 1 m2.

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: 1370 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 calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem Lisp

Quantidade de visualizações: 701 vezes
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum.

Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo:

----------------------------------------------------------------------
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 ((num1)(num2)(maior)(mmc))
  ; Vamos ler o primeiro número
  (princ "Informe o primeiro número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num1
  (setq num1 (read))
   
  ; Vamos ler o segundo número
  (princ "Informe o segundo número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num2
  (setq num2 (read)) 
   
  ; agora escolhemos o maior número
  (cond ((> num1 num2)(setq maior num1))
    (t (setq maior num2))
  )
  
  ; e entramos em um laço loop
  (loop
    ; testa se o maior é divisível por num1 e por num2
    (cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2))) 
      ; mmc recebe o maior e sai do laço
      (setq mmc maior)(return)))
		
    ; incrementa o valor da variável maior	
    (setq maior (+ maior 1))
  )
  
  ; mostra o resultado
  (format t "O MMC dos dois números é ~D" mmc)
)

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

Informe o primeiro número: 6
Informe o segundo número: 3
O MMC dos dois números é: 6

Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp.


Lisp ::: Dicas & Truques ::: Passos Iniciais

O que é Lisp e como escrever seu primeiro programa nessa linguagem de programação

Quantidade de visualizações: 1210 vezes
O que é Common Lisp?

A linguagem de programação ANSI Common Lisp, ou simplesmente Common Lisp, é uma implementação específica da linguagem de programação Lisp multi-paradigma que suporta programação funcional e procedural.

Sua especificação foi criada por Guy L. Steele nos anos 1980 a partir da linguagem Lisp com o intuito de combinar aspectos de diversos dialetos Lisp anteriores, incluindo Scheme. Foi proposto inicialmente o nome de "Standard Lisp" para a linguagem, mas em virtude de um dialeto Lisp já existir com este nome, se buscou um nome similar, resultando no nome "Common Lisp".

Em 1994 foi publicada no padrão ANSI Information Technology - Programming Language - Common Lisp, registro X3.226-1994 (R1999). É bem maior e semanticamente mais complexa que Scheme uma vez que foi projetada para ser uma linguagem comercial e ser compatível com os diversos dialetos Lisp dos quais derivou.

Como baixar, instalar e testar a Common Lisp no Windows?

Embora exista uma quantidade enorme de compiladores Lisp disponíveis atualmente, minha pesquisa recaiu sobre o Steel Bank Common Lisp (SBCL), que pode ser baixado no endereço http://www.sbcl.org. No meu Windows 10 eu baixei o instalador sbcl-2.2.3-x86-64-windows-binary.msi, com o tamanho de 11.7Mb.

Finalizada a instalação, vamos testar nossa distribuição do Bank Common Lisp (SBCL). Para isso, abra um janela de terminal e navegue até o diretório de instalação do SBCL:

C:\Users\Osmar>cd C:\Program Files\Steel Bank Common Lisp

Se você vir um arquivo sbcl.exe dentro deste diretório nós já temos a indicação de que tudo correu bem. Tudo que temos a fazer é chamar este arquivo na linha de comando:

C:\Program Files\Steel Bank Common Lisp>sbcL

Você verá as seguintes informações na sua tela:

This is SBCL 2.2.3, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information.
*

Note que o cursor já está esperando comandos, uma vez que estamos no modo interativo. Assim, digite o seguinte comando:

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

* (+ 5 (* 2 4))

Pressione Enter. Se você vir o valor 13, então é sinal de que o SBCL está funcionando 100% e já podemos prosseguir.

Para sair do modo interativo do SBCL, digite:

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

* (quit)

Como escrever um programa em Common List e carregá-lo no SBCL

Agora vamos ver como podemos escrever um programa Common Lisp, salvá-lo em arquivo e carregá-lo a partir do compilador Steel Bank Common Lisp (SBCL). Para isso, abra o seu editor de códigos favorito e digite a seguinte listagem:

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

; Este programa talvez seja um dos mais básicos
; que podem ser escritos em Common Lisp
(defun Primeiro()
  ; Vamos mostrar uma mensagem de boas-vindas
  (write-line "Bem-vindo(a) à Common Lisp")
)

; Efetua uma chamada automática ao programa
(Primeiro)

Para executar este programa, basta chamar o SBCL pela linha de comando, da seguinte forma:

C:\Program Files\Steel Bank Common Lisp>sbcl --script C:\estudos_common_lisp\Primeiro.lsp

Se o seu código estiver correto, sem nenhum erro de sintáxe, você verá o seguinte texto:

Bem-vindo(a) à Common Lisp

Pronto! Agora é só aproveitar as nossas dicas, truques e exercícios resolvidos de Common Lisp para aprender ainda mais. Bons estudos.


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

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

Quantidade de visualizações: 1151 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 usar o laço loop for da linguagem Lisp

Quantidade de visualizações: 529 vezes
O laço for loop da linguagem Common Lisp é usado quando sabemos exatamente quantas vezes uma instrução ou um grupo de instruções deve ser repetido. Este laço é similar ao laço for encontrado na maioria das linguagens de programação.

Vamos começar vendo um laço for loop que conta de 1 até 10:

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

; Um laço for loop que conta de 1 até 10
(loop for i from 1 to 10
  do (print i)
)

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

1
2
3
4
5
6
7
8
9
10

Agora veja o mesmo laço usado para contar de 10 até 1, ou seja, em ordem decrescente:

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

; Um laço for loop que conta de 10 até 1
(loop for i from 10 downto 1
  do (print i)
)

Note que, agora, eu troquei "to" por "downto" para que a variável de controle fosse decrementada, em vez de incrementada. Dessa forma, ao executarmos este código Common Lisp, o resultado será:

10
9
8
7
6
5
4
3
2
1


Veja mais Dicas e truques de Lisp

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

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

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


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