E-Book 650 Dicas e Truques de Python - PDF com 1.200 páginas
Você está aqui: Lisp ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o último caractere de uma string em LISP usando as funções char() e length()

Quantidade de visualizações: 347 vezes
Nesta dica mostrarei como podemos combinar as funções char() e length() da linguagem Common Lisp para acessar e retornar a última letra de uma palavra, frase ou texto. Lembre-se de que o índice do último caractere de uma string em LISP equivale ao tamanho da string - 1.

Veja o código LISP completo para o exemplo:

----------------------------------------------------------------------
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 ((palavra)(letra))
  ; Vamos pedir para o usuário informar
  ; uma palavra
  (princ "Informe uma palavra: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável palavra
  (setq palavra (read-line))
  
  ; vamos mostrar a palavra informada
  ; o símbolo ~% provoca uma quebra de linha
  (format t "A palavra informada foi: ~S~%" palavra)
  
  ; agora vamos obter a última letra da palavra
  (setq letra (char palavra (- (length palavra) 1)))
  
  ; e mostramos o resultado
  (format t "A última letra da palavra é: ~C" letra)
)

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

A palavra informada foi: "COMMON LISP"
A última letra da palavra é: P

Link para compartilhar na Internet ou com seus amigos:

Lisp ::: Dicas & Truques ::: Strings e Caracteres

Como retornar uma substring de uma string em LISP usando a função subseq()

Quantidade de visualizações: 375 vezes
Nesta dica mostrarei como podemos extrair uma parte de uma palavra, frase ou texto, ou seja, vamos obter uma substring a partir de uma string. Na linguagem LISP isso pode ser feito por meio da função subseq().

Esta função aceita 3 argumentos. O primeiro argumento é a string a partir da qual a substring será extraída. O segundo argumento é o índice inicial da substring, começando sempre em 0. O terceiro argumento marca o índice final da substring (um índice a mais que o último caractere desejado). Se o terceiro argumento for omitido, todo o restante da string será incluído na substring.

Veja o código LISP completo para o exemplo no qual pedimos para o usuário informar uma frase e extraímos dessa frase os 5 primeiros caracteres:

----------------------------------------------------------------------
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 ((frase)(substring))
  ; Vamos pedir para o usuário informar
  ; uma frase
  (princ "Informe uma frase: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável frase
  (setq frase (read-line))
  
  ; vamos mostrar a frase informada
  ; o símbolo ~% provoca uma quebra de linha
  (format t "A frase informada foi: ~S~%" frase)
  
  ; agora vamos obter os 5 primeiros caracteres
  (setq substring (subseq frase 0 5))
  
  ; e mostramos a substring
  (format t "A substring obtida foi: ~S" substring)
)

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

A frase informada foi: "Estudar LISP é bom demais"
A substring obtida foi: "Estud"


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

Como calcular MDC em Lisp usando a função GCD

Quantidade de visualizações: 677 vezes
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

Podemos calcular o Máximo Divisor Comum na linguagem Common Lisp usando a função GCD. Esta função aceita um número ilimitado de valores inteiros e retorna seu Máximo Divisor Comum.

Veja um trecho de código Common Lisp no qual pedimos para o usuário informar dois números inteiros e, em seguida, fazemos uso da função GCD para retornar o MDC:

----------------------------------------------------------------------
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)(mdc))
  ; 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))
  
  ; Vamos obter o MDC dos dois números informados
  (setq mdc (gcd num1 num2))
  
  ; E mostramos o resultado
  (format t "O Máximo Divisor Comum é: ~D" mdc)
)

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

Informe o primeiro número: 9
Informe o segundo número: 12
O Máximo Divisor Comum é: 3


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

Exercícios Resolvidos de Lisp - Como converter quilômetros em metros, centímetros e milímetros usando Lisp

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

Escreva um programa em Common Lisp para converter quilômetros em metros, centímetros e milímetros. Seu programa deverá pedir para o usuário informar a quantidade de quilômetros e exibir as conversões solicitadas.

Como sabemos, um Quilômetro = 1000 Metros, 100.000 Centímetros ou 1.000.000 Milímetros.

Seu programa deverá exibir uma saída parecida com:

Informe a distância em quilômetros: 2.5
Distância em Quilômetros: 2.5
Distância em Metros: 2500.0
Distância em Centímetros: 250000.0
Distância em Milímetros: 2500000.0
Resposta/Solução:

Veja a resolução comentada deste exercício usando Common Lisp:

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

; Variáveis usadas na resolução do problema
(let ((quilometros)(metros)(centimetros)(milimetros))
  ; vamos ler a quantidade de quilômetros
  (princ "Informe a distância em quilômetros: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável quilometros
  (setq quilometros (read))
  
  ; vamos calcular a distância em metros
  (setq metros (* quilometros 1000.0))
  ; vamos calcular a distância em centímetros
  (setq centimetros (* quilometros 100000.0))
  ; e agora a distância em milímetros
  (setq milimetros (* quilometros 1000000.0))
  
  ; E mostramos o resultado
  (format t "Distância em Quilômetros: ~F" quilometros)
  (format t "~%Distância em Metros: ~F" metros)
  (format t "~%Distância em Centímetros: ~F" centimetros)
  (format t "~%Distância em Milímetros: ~F" milimetros)
)



Lisp ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a área de um círculo em LISP dado o raio do círculo

Quantidade de visualizações: 897 vezes
A área de um círculo pode ser calculada por meio do produto entre a constante PI e a medida do raio ao quadrado (r2). Comece analisando a figura abaixo:



Sendo assim, temos a seguinte fórmula:



Onde A é a área, PI equivale a 3,14 (aproximadamente) e r é o raio do círculo.

O raio é a medida que vai do centro até um ponto da extremidade do círculo. O diâmetro é a medida equivalente ao dobro da medida do raio, passando pelo centro do círculo e dividindo-o em duas partes. A medida do diâmetro é 2 * Raio.

Veja agora um código Common Lisp completo que calcula a área de um círculo mediante a informação do raio:

----------------------------------------------------------------------
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 raio)
(defvar area)

; Este o programa principal
(defun AreaCirculo()
  ; Vamos ler o raio do círculo
  (princ "Informe o raio do círculo: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável raio
  (setq raio (read))
  
  ; calcula a área do círculo
  (setq area (* pi (expt raio 2)))
  
  ; E mostramos o resultado
  (format t "A área do círculo de raio ~F é ~F" raio
    area)
)

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

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

Informe o raio do círculo: 5
A area do círculo de raio 5 é igual a 78.539816

A circunferência é um conjunto de pontos que estão a uma mesma distância do centro. Essa distância é conhecida como raio. A circunferência é estudada pela Geometria Analítica e, em geral, em um plano cartesiano. O círculo, que é formado pela circunferência e pelos infinitos pontos que preenchem seu interior, é estudado pela Geometria Plana, pois ele ocupa um espaço e pode ter sua área calculada, diferentemente da circunferência.


Lisp ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cosseno de um ângulo em LISP e AutoLISP (AutoCAD) usando a função cos() - Calculadora de cosseno em LISP

Quantidade de visualizações: 469 vezes
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula:

\[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \]

Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da Common Lisp e da AutoLISP (a implementação LISP do AutoCAD). Esta função recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

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

(format t "Cosseno de 0 = ~F~%" (cos 0))
(format t "Cosseno de 1 = ~F~%" (cos 1))
(format t "Cosseno de 2 = ~F" (cos 2))

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

Cosseno de 0 = 1.0
Cosseno de 1 = 0.5403023
Cosseno de 2 = -0.41614684

Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo:




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á 73 usuários muito felizes estudando em nosso site.