Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar os minutos em Ruby a partir de um objeto da classe Time usando a função minQuantidade de visualizações: 6557 vezes |
|
Muitas vezes precisamos obter os minutos de uma determinada hora a partir de um determinado objeto Time. Para isso a classe Time nos fornece o método min. Este método retorna um número inteiro na faixa 0..59. Veja uma demonstração de como usar este método no trecho de código a seguir: # constrói um objeto Time com a data e hora atual agora = Time.now # obtém os minutos minutos = agora.min # exibe o resultado puts "Os minutos são: " + minutos.to_s Ao executar este código Ruby nós teremos o seguinte resultado: Os minutos são: 7 |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Java Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 5057 vezes |
|
A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Java agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:
package arquivodecodigos;
public class Estudos{
// método que permite ordenar o vetor de inteiros
// usando a ordenação Insertion Sort
public static void insertionSort(int[] vetor){
// percorre todos os elementos do vetor começando
// pelo segundo elemento
for(int i = 1; i < vetor.length; i++){
int atual = vetor[i]; // o valor atual a ser inserido
// começa a comparar com a célula à esquerda de i
int j = i - 1;
// enquanto vetor[j] estiver fora de ordem em relação
// a atual
while((j >= 0) && (vetor[j] > atual)){
// movemos vetor[j] para a direita e decrementamos j
vetor[j + 1] = vetor[j];
j--;
}
// colocamos atual em seu devido lugar
vetor[j + 1] = atual;
}
}
public static void main(String args[]){
// vamos criar um vetor com 9 elementos
int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
// exibimos o vetor na ordem original
System.out.println("Ordem original:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
// vamos ordenar o vetor agora
insertionSort(valores);
// exibimos o vetor ordenado
System.out.println("\n\nOrdenado:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor numérico inteiro em Delphi usando as funções StrToInt(), TryStrToInt() e StrToIntDef()Quantidade de visualizações: 33994 vezes |
|
Em algumas situações precisamos converter strings em valores numéricos do tipo inteiro. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos. Vamos começar com a função StrToInt() da unit SysUtils. Esta função recebe uma string representando um valor inteiro válido e retorna um valor inteiro. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
valor1, valor2, soma: Integer;
begin
// vamos receber as strings dos TEdits e converter
// seus valores para inteiros
valor1 := StrToInt(Edit1.Text);
valor2 := StrToInt(Edit2.Text);
// vamos obter a soma dos dois valores
soma := valor1 + valor2;
// vamos exibir o resultado. Note o uso de IntToStr() para
// converter o valor inteiro em string
ShowMessage('A soma é: ' + IntToStr(soma));
end;
Note que, se a string sendo convertida possuir um valor inteiro inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToInt(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Integer que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
valor: Integer;
begin
// vamos tentar converter o valor da caixa de texto
// em um inteiro
if TryStrToInt(Edit1.Text, valor) then
ShowMessage('Conversão efetuada com sucesso.')
else
ShowMessage('Erro na conversão');
end;
Há ainda uma terceira possibilidade: usar a função StrToIntDef(). Esta função funciona exatamente da mesma forma que StrToInt(), exceto que agora, se houver um erro de conversão, um valor inteiro padrão será retornado. Veja: procedure TForm1.Button1Click(Sender: TObject); var valor: Integer; begin // vamos converter o valor da caixa de texto // em um inteiro. Se a conversão não puder ser feita // o valor 10 será atribuído à varial valor valor := StrToIntDef(Edit1.Text, 10); // vamos exibir o resultado ShowMessage(IntToStr(valor)); end; Caso você precise trabalhar com inteiros de 64 bits, poderá usar as funções StrToInt64(), StrToInt64Def() e TryStrToInt64(). Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escreva um programa Java para calcular e imprimir o número de lâmpadas necessáriasQuantidade de visualizações: 717 vezes |
|
Pergunta/Tarefa: Escreva um programa Java para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado. Sua saída deverá ser parecida com: Informe a potência da lâmpada (em watts): 100 Informe a largura do cômodo (em metros): 6 Informe o comprimento do cômodo (em metros): 4 Serão necessárias 4 lâmpadas. Veja a resolução completa para o exercício em Java, comentada linha a linha:
// Como calcular o número de lâmpadas necessárias
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double potencia_lampada, largura_comodo, comprimento_comodo;
double area_comodo, potencia_total;
int quant_lampadas;
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler a potência da lâmpada
System.out.print("Informe a potência da lâmpada (em watts): ");
potencia_lampada = Double.parseDouble(entrada.nextLine());
// vamos ler a largura do cômodo
System.out.print("Informe a largura do cômodo (em metros): ");
largura_comodo = Double.parseDouble(entrada.nextLine());
// agora vamos ler o comprimento do cômodo
System.out.print("Informe o comprimento do cômodo (em metros): ");
comprimento_comodo = Double.parseDouble(entrada.nextLine());
// agora vamos calcular a área do cômodo
area_comodo = largura_comodo * comprimento_comodo;
// calculamos a potência total necessária para iluminar
// todo o cômodo
potencia_total = area_comodo * 18;
// e finalmente calculamos a quantidade de lâmpadas necessárias
quant_lampadas = (int)(potencia_total / potencia_lampada);
// será necessário no mínimo uma lâmpada
if (quant_lampadas == 0) {
quant_lampadas = quant_lampadas + 1;
}
// e mostramos o resultado
System.out.println("Serão necessárias " + quant_lampadas +
" lâmpadas.");
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como quebrar (separar) uma string em palavras usando um objeto da classe StringTokenizer do Java Python - Como calcular o volume de chuvas em Python - Fórmula do cálculo do volume de chuvas em Python MySQL - Como usar joins no MySQL Java - Como usar o método next() da interface Iterator do Java para obter o próximo elemento da iteração |
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 |




