Você está aqui: Lisp ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
|
Exercícios Resolvidos de LISP - Escreva um programa LISP que duplica os elementos de uma lista usando uma função recursiva chamada duplicar_elementos() - Exercícios Resolvidos de LispQuantidade de visualizações: 128 vezes |
|
Pergunta/Tarefa: Dada a lista de inteiros (1 2 3 4 5 6 7 8) Escreva um programa LISP que duplica os elementos desta lista usando uma função recursiva chamada duplicar_elementos(). Esta função deverá receber a lista original e retornar uma nova lista contendo os elementos duplicados. Sua saída deve ser parecida com: A lista original é: (1 2 3 4 5 6 7 8) A nova lista é: (1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8) Veja a solução comentada deste exercício usando a linguagem 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) ---------------------------------------------------------------------- ; vamos criar uma função recursiva que duplica os elementos ; de uma lista e retorna a nova lista (defun duplicar_elementos(lista) ; a lista está vazia? (if (eql lista nil) nil ; efetua mais uma chamada recursiva (append (list (car lista) (car lista)) (duplicar_elementos (cdr lista)))) ) (let (lista) ; vamos criar uma nova lista (setq lista '(1 2 3 4 5 6 7 8)) ; vamos mostrar o conteúdo da lista original (format t "A lista original é: ~D" lista) ; agora vamos duplicar todos os elementos da lista (setq lista (duplicar_elementos lista)) ; e mostramos o resultado (format t "~%A nova lista é: ~D" lista) ) |
|
Link para compartilhar na Internet ou com seus amigos: | |
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 LISPQuantidade de visualizações: 517 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: |
Lisp ::: Desafios e Lista de Exercícios Resolvidos ::: Lisp Básico |
Exercícios Resolvidos de Lisp - Como calcular a soma, o produto, a diferença e o quociente de dois números inteiros informados pelo usuárioQuantidade de visualizações: 834 vezes |
Pergunta/Tarefa: Escreva um programa Common Lisp que pede para o usuário informar dois número inteiros. Em seguida mostre a soma, o produto, a diferença e o quociente dois dois números informados. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 3 A soma dos números é: 11 O produto dos números é: 24 A diferença dos números é: 5 O quociente dos números é: 2.66667 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) ---------------------------------------------------------------------- ; Este é o programa principal (defun Exercicio() ; Variáveis usadas na resolução do problema (let ((n1)(n2)(soma)(produto) (diferenca)(quociente)) ; Vamos ler os dois números (princ "Informe o primeiro número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável n1 (setq n1 (read)) (princ "Informe o segundo número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável n2 (setq n2 (read)) ; vamos somar os dois números (setq soma (+ n1 n2)) ; vamos calcular o produto (setq produto (* n1 n2)) ; vamos calcular a diferença (setq diferenca (- n1 n2)) ; vamos calcular o quociente (setq quociente (/ n1 (* n2 1.0))) ; E mostramos o resultado (format t "A soma dos números é ~D" soma) (format t "~%O produto dos números é ~D" produto) (format t "~%A diferença dos números é ~D" diferenca) (format t "~%O quociente dos números é ~F" quociente) ) ) ; Auto-executa a função Exercicio() (Exercicio) |
Lisp ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MDC em Lisp usando a função GCDQuantidade de visualizações: 711 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 |
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 Engenharia Civil - Construção Civil |
Formas: Confecção e colocação O concreto deve estar curado e liberado para a remoção das formas segundo recomendações técnicas. Quando não se utiliza concreto especial ou aditivo acelerador de pega, para vigas de pequeno vão, qual é o prazo mínimo para a retirada das formas inferiores, com a manutenção das principais escoras? A) Cinco dias. B) Sete dias. C) Dez dias. D) Quatorze dias. E) Vinte e um dias. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
Cálculo da vazão de dimensionamento de uma galeria de águas pluviais FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares, considerando-se uma chuva de projeto com intensidade de 60 mm/hora, duração igual ao tempo de concentração da bacia e coeficiente de escoamento superficial igual a 0,90, através do Método Racional, é: A) 150 m3/s B) 0,150 l/s C) 1,5 m3/s D) 150 l/s E) 15 m3/s Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Introdução à Ética Como e por que julgamos que uma ação é correta ou não? Quais os critérios que devem ser utilizados para tal? Várias respostas são, hoje, dadas a essas perguntas. Podemos afirmar que a ação correta é aquela que: A) Considera a felicidade dos grupos prevalecentes, como as elites. B) É praticada por um agente inerentemente bom e sem influência social C) Está de acordo com regras próprias de grupos minoritários com interesses duvidosos. D) É considerada a melhor ação pela subjetividade do sujeito em suas reflexões. E) É aquela que está adequada às leis, regras e normas legais do Estado. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
O Brasil apresenta um grande volume de usinas hidrelétricas instaladas na sua rede hidrográfica. Marque a alternativa que faça uma associação correta entre o nome da usina hidrelétrica e a sua localização. A) Usina de Furnas -> Bacia Platina. B) Usina de Belo Monte -> Bacia Amazônica. C) Usina de Três Marias -> Bacia do Uruguai. D) Usina de Sobradinho -> Bacia do Tocantins. E) Usina de Itaipu -> Bacia do São Francisco. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de Lisp |
Dicas e truques de outras linguagens |
Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
Códigos Fonte |
Software 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 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 |