Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular fatorial em Delphi usando recursividadeQuantidade de visualizações: 13419 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. |
C ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Como escrever um função que retorna uma estrutura (struct) usando a linguagem CQuantidade de visualizações: 16428 vezes |
|
Muitas vezes precisamos escrever funções que retornam estruturas, ou melhor, que alocam e retornam ponteiros para estruturas. Esta não é, definitivamente, uma tarefa para iniciantes em C. Contudo, esta dica lhe fornecerá um código completo indicando-lhe uma das formas mais simples de conseguir tal proeza. Antes de executar o código, porém, dê uma olhada atenta na função obter_livro(). Veja que esta função recebe o título, o código e o número de páginas de um livro. Em seguida a função aloca memória para uma estrutura, preenche seus membros e retorna um ponteiro para tal estrutura. Eis a listagem completa:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// define a estrutura Livro
struct Livro{
char *titulo;
int codigo;
int paginas;
};
// função que aloca e retorna um ponteiro para uma
// estrutura Livro
struct Livro* obter_livro(char *titulo, int codigo, int paginas){
// aloca memória para uma estrutura Livro
struct Livro *temp = (struct Livro*)malloc(sizeof(struct Livro));
// preeche os membros da estrutura
temp->titulo = titulo;
temp->codigo = codigo;
temp->paginas = paginas;
return temp;
}
int main(int argc, char *argv[]){
// obtém uma instância da estrutura Livro
struct Livro *a = obter_livro("Programando em Java", 345, 120);
// verifica se a estrutura foi retornada com
// sucesso
if(a != NULL){
printf("Titulo: %s\nCodigo: %d\nPaginas: %d\n",
a->titulo, a->codigo, a->paginas);
}
// obtém uma segunda instância da estrutura Livro
struct Livro *b = obter_livro("JavaScript - Guia", 540, 800);
// verifica se a estrutura foi retornada com
// sucesso
if(b != NULL){
printf("Titulo: %s\nCodigo: %d\nPaginas: %d\n",
b->titulo, b->codigo, b->paginas);
}
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: Titulo: Programando em Java Codigo: 345 Paginas: 120 Titulo: JavaScript - Guia Codigo: 540 Paginas: 800 Pressione qualquer tecla para continuar... |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como classificar um array em ordem crescente usando o método sort() da classe Arrays do JavaQuantidade de visualizações: 27028 vezes |
|
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado. Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais. Veja o código completo para o exemplo:
package estudos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
// vamos declarar e construir um vetor de 5 inteiros
int[] valores = new int[5];
// inicializa os elementos do array
valores[0] = 23;
valores[1] = 65;
valores[2] = 2;
valores[3] = 87;
valores[4] = 34;
// exibe os valores dos elementos do array
// usando o laço for melhorado
System.out.println("Elementos na ordem original:");
for(int valor : valores){
System.out.print(valor + " ");
}
// ordena os valores em ordem crescente
Arrays.sort(valores);
// exibe os valores dos elementos do array
// usando o laço for melhorado
System.out.println("\n\nElementos classificados em ordem crescente:");
for(int valor : valores){
System.out.print(valor + " ");
}
System.out.println("\n\n");
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Elementos na ordem original: 23 65 2 87 34 Elementos classificados em ordem crescente: 2 23 34 65 87 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Escreva um programa (algorítmo) Java que usa o laço for para exibir uma tabela de conversões de milhas para quilômetrosQuantidade de visualizações: 4186 vezes |
|
Pergunta/Tarefa: Escreva um programa (algorítmo) Java que usa o laço for para exibir uma tabela de conversões de milhas para quilômetros. Sabendo que uma milha equivale a 1.609 quilômetros, seu programa deverá exibir uma saída parecida com: Milhas Quilômetros ------------------------------- 1 1.609 2 3.218 3 4.827 4 6.436 5 8.045 6 9.654 7 11.263 8 12.872 9 14.481 10 16.09 Veja a resolução comentada deste exercício usando Java console:
package estudos;
public class Estudos {
public static void main(String[] args){
System.out.println("Milhas\t\tQuilômetros");
System.out.println("-------------------------------");
// um laço for que repetirá 10 vezes
for (int i = 1; i <= 10; i++){
// usamos a variável de controle do laço para o cálculo
System.out.println(i + "\t\t" + (i * 1.609));
}
}
}
|
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como verificar se um arquivo existe usando a função FileExists() da unit SysUtils do Delphi |
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 |




