Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular fatorial em Delphi usando recursividadeQuantidade de visualizações: 13433 vezes |
|
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma: 4 x 3 x 2 x 1 = 24 Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em Delphi que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.
// função recursiva para calcular o fatorial
// de um determinado número
function fatorial(n: Integer): Integer;
begin
if n = 0 then
Result := 1
else
Result := n * fatorial(n - 1);
end;
// vamos chamar a função recursiva
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
var
res: Integer;
begin
// vamos calcular o fatorial de 5
res := fatorial(5);
// vamos mostrar o resultado
ShowMessage('O fatorial de 5 é: ' + IntToStr(res));
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Java Avançado - Como verificar se a tecla Caps Lock está ativada usando o método getLockingKeyState() da classe Toolkit do JavaQuantidade de visualizações: 11563 vezes |
|
Nesta dica mostrarei como é possível usar o método getLockingKeyState() da classe Toolkit da linguagem Java para verificar se a tecla Caps Lock estão ou não ativada no seu computador. Note o valor KeyEvent.VK_CAPS_LOCK sendo passado para o método. Veja o código completo para o exemplo:
package arquivodecodigos;
import java.awt.Toolkit;
import java.awt.event.*;
public class Estudos{
public static void main(String[] args){
Toolkit tk = Toolkit.getDefaultToolkit();
if(tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK))
System.out.println("A tecla Caps Lock está ativada");
else
System.out.println("A tecla Caps Lock não está ativada");
System.exit(0);
}
}
Ao executarmos este código você verá uma mensagem parecida com: A tecla Caps Lock está ativada |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Java - Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deveráQuantidade de visualizações: 479 vezes |
|
Pergunta/Tarefa: Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deverá indicar se a tentativa efetuada pelo usuário é maior ou menor que o número mágico e contar o número de tentativas. Quando o usuário conseguir acertar o número o programa deverá classificar o usuário como: De 1 a 3 tentativas: muito sortudo De 4 a 6 tentativas: sortudo De 7 a 10 tentativas: normal > 10 tentativas: tente novamente Sua saída deverá ser parecida com: Adivinhe o número mágico: 100 Tente um número menor. Adivinhe o número mágico: 50 Tente um número maior. Adivinhe o número mágico: 60 Tente um número maior. Adivinhe o número mágico: 80 Tente um número maior. Adivinhe o número mágico: 90 Tente um número maior. Adivinhe o número mágico: 95 Tente um número menor. Adivinhe o número mágico: 94 Tente um número menor. Adivinhe o número mágico: 93 Tente um número menor. Adivinhe o número mágico: 92 Você acertou o número em 9 tentativas. Classificação: Normal Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Random;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
int numero_magico, palpite, tentativas = 0;
boolean acertou = false;
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos sortear o número entre 0 e 500
Random rand = new Random();
numero_magico = rand.nextInt(501);
// um laço que repete enquanto o usuário não
// acertar o número mágico
while (!acertou) {
System.out.print("Adivinhe o número mágico: ");
palpite = Integer.parseInt(entrada.nextLine());
// registra essa tentativa
tentativas = tentativas + 1;
// o usuário acertou o número mágico?
if (palpite == numero_magico) {
System.out.println("Você acertou o número em " + tentativas + " tentativas.");
// mostra a classificação do usuário
if (tentativas <= 3) {
System.out.println("Classificação: Muito Sortudo");
}
else if ((tentativas >= 4) && (tentativas <= 6)) {
System.out.println("Classificação: Sortudo");
}
else if ((tentativas >= 7) && (tentativas <= 10)) {
System.out.println("Classificação: Normal");
}
else {
System.out.println("Classificação: Tente Novamente");
}
// sai do laço
acertou = true;
}
else {
// indica se o palpite é maior ou menor
if (palpite < numero_magico) {
System.out.println("Tente um número maior.\n");
}
else {
System.out.println("Tente um número menor.\n");
}
}
}
}
}
|
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Portugol - Um programa que lê três números inteiros e mostra o maiorQuantidade de visualizações: 3818 vezes |
|
Pergunta/Tarefa: Faça um algoritmo em Portugol que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com: Informe o primeiro número: 5 Informe o segundo número: 8 Informe o terceiro número: 3 O segundo número é o maior Veja a resolução comentada deste exercício usando Portugol Webstudio:
// Um programa que lê três números inteiros e mostra o maior
programa {
funcao inicio() {
// variáveis usadas na resolução do problema
inteiro num1, num2, num3
// vamos solicitar os três números inteiros
escreva("Informe o primeiro número: ")
leia(num1)
escreva("Informe o segundo número: ")
leia(num2)
escreva("Informe o terceiro número: ")
leia(num3)
// o primeiro número é o maior?
se (num1 > num2 e num1 > num3) {
escreva("O primeiro número é o maior")
}
senao {
// o segundo número é o maior?
se (num2 > num1 e num2 > num3) {
escreva("O segundo número é o maior")
}
senao{
// o terceiro número é o maior?
se (num3 > num1 e num3 > num2) {
escreva("O terceiro número é o maior")
}
// os número não são diferentes
senao {
escreva("Os três números não são diferentes")
}
}
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
Python - Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith() Delphi - Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do Delphi C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C Java - Como usar null em Java |
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 |




