LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem LispQuantidade de visualizações: 1057 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:
; 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. |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em C usando a função sin()Quantidade de visualizações: 5070 vezes |
|
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno 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 seno. 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 seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem C. Esta função, disponível no header math.h, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]){
printf("Seno de 0 = %f", sin(0));
printf("\nSeno de 1 = %f", sin(1));
printf("\nSeno de 2 = %f", sin(2));
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Seno de 0 = 0.000000 Seno de 1 = 0.841471 Seno de 2 = 0.909297 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: ![]() |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover quebras de linhas de uma string - Como usar o método replaceAll() da classe String para remover quebras de linha de um texto - RevisadoQuantidade de visualizações: 2 vezes |
Nesta dica eu mostro como podemos usar o método replaceAll() da classe String para remover quebras de linha de uma palavra, frase ou texto. Veja:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
String original = "Programar em Java\n é mais fácil do\n que você pensa.";
// vamos exibir a String original
System.out.println("Original: " + original);
// agora vamos remover as quebras de linha
String nova = original.replaceAll("[\\n]", "");
// vamos exibir a String sem as quebras de linha
System.out.println("Sem quebras de linha: " + nova);
System.exit(0);
}
}
Este código exibirá o seguinte resultado: Original: Programar em Java é mais fácil do que você pensa. Sem quebras de linha: Programar em Java é mais fácil do que você pensa. Esta dica foi revisada e atualizada para o Java 8. |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de VB.NET - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 622 vezes |
|
Pergunta/Tarefa: Escreva uma função recursiva em VB.NET que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Sua função deverá ter a seguinte assinatura:
// função recursiva que recebe um valor e um vetor e retorna quantas
// vezes o valor é encontrado no vetor
public static int QuantRepeticoes(int indice, int valor, int[] vetor) {
// sua implementação aqui
}
Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando VB.NET:
Imports System
Module Program
' função principal do programa VB.NET
Sub Main(args As String())
' vamos declarar um vetor de 10 inteiros
Dim valores(4) As Integer
' vamos pedir ao usuário que informe os valores do vetor
For i As Integer = 0 To valores.Length - 1
Console.Write("Informe o " & (i + 1) & " valor: ")
' efetua a leitura do valor informado para a posição atual do vetor
valores(i) = Int32.Parse(Console.ReadLine())
Next
' agora vamos pedir para informar o valor a ser pesquisado
Console.Write(vbCrLf & "Informe o valor a ser pesquisado no vetor: ")
Dim valor As Integer = Int32.Parse(Console.ReadLine())
' e vamos ver a quantidade de repetições
Dim repeticoes As Integer = QuantRepeticoes(0, valor, valores)
Console.WriteLine("O valor informado se repete " & repeticoes & " vezes.")
Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
' função recursiva que recebe um valor e um vetor e retorna quantas
' vezes o valor é encontrado no vetor
Function QuantRepeticoes(indice As Integer, valor As Integer,
vetor() As Integer) As Integer
If indice = vetor.Length - 1 Then ' caso base...hora de parar a recursividade
If vetor(indice) = valor Then
Return 1 ' mais um repetição foi encontrada
End If
Else ' dispara mais uma chamada recursiva
If vetor(indice) = valor Then ' houve mais uma repetição
Return 1 + QuantRepeticoes(indice + 1, valor, vetor)
Else
Return 0 + QuantRepeticoes(indice + 1, valor, vetor) ' não repetiu
End If
End If
Return 0 ' só para deixar o compilador satisfeito...esta linha nunca é
' executada
End Function
End Module
|
Nossas 20 dicas & truques de programação mais populares |
|
Android Java - Como detectar um clique em um botão do Android usando o evento onClick no XML de layout |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() AutoCAD .NET API C# - Como selecionar uma linha no AutoCAD e mostrar a equação da reta correspondente usando AutoCAD .NET C# API LISP - Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para Engenharia |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







