Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como inverter uma string em Ruby usando as funções reverse e reverse!

Quantidade de visualizações: 10042 vezes
Esta dica mostra como podemos inverter uma string em Ruby, ou seja, reverter a ordem de seus caracteres. Para isso nós temos dois métodos: reverse e reverse!. O método reverse retorna uma nova string enquanto reverse! reverte o conteúdo da string original. Veja o trecho de código:

# declara e inicializa uma variável string
frase = "Osmar J. Silva"

# inverte a string sem afetar o original
invertida = frase.reverse

# exibe o resultado
puts "Original: " + frase
puts "Invertida: " + invertida

# inverte afetando o original
frase.reverse!

# exibe o resultado
puts "Original: " + frase

Ao executar este código Ruby nós teremos o seguinte resultado:

Original: Osmar J. Silva
Invertida: avliS .J ramsO
Original: avliS .J ramsO


Kotlin ::: Dicas de Estudo e Anotações ::: Input e Output (Entrada e Saída)

Como usar a função readLine() do kotlin.io para ler a entrada do usuário em Kotlin

Quantidade de visualizações: 7593 vezes
Podemos ler a entrada do usuário usando o método readLine() do pacote kotlin.io, que é importado automaticamente para todas as aplicações Kotlin. Esta função retorna um objeto da classe String? e aceita um valor null, ou seja, uma string vazia.

Veja um exemplo no qual pedimos para o usuário informar o seu nome e em seguida exibimos uma saudação:

fun main(args: Array<String>) {
  print("Por favor, informe o seu nome: ")
  // vai ler o nome e guardar na variável nome
  var nome = readLine()
  println("Olá, $nome. Bem-vindo(a) ao Kotlin.")
}

Ao executarmos este código nós teremos o seguinte resultado:

Por favor, informe o seu nome: Osmar J. Silva
Olá, Osmar J. Silva. Bem-vindo(a) ao Kotlin.


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: 366 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
Resposta/Solução:

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");
        }
      }
    }
  }
}



C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como verificar o estado da tecla Num Lock em suas aplicações C# Windows Forms

Quantidade de visualizações: 8277 vezes
Em algumas situações nós precisamos verificar o estado da tecla Num Lock (que ativa ou desativa o teclado numérico), ou seja, precisamos saber se ela está ou não ativada. Em C# isso pode ser feito de duas formas:

1) A forma mais simples, oferecida no .NET Framework a partir da versão 2.0;
2) Usando código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API).

Vamos começar com a forma mais fácil, disponível no .NET Framework a partir da versão 2.0:

private void button1_Click(object sender, EventArgs e){
  // vamos verificar se a tecla Num Lock está ativada
  if(Control.IsKeyLocked(Keys.NumLock)){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}

Aqui nós usamos o método IsKeyLocked() da classe Control e fornecemos como argumento a constante NumLock, da enumeração Keys.

A segunda forma consiste em usar código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API). Para isso devemos seguir os seguintes passos:

a) Adicionar

using System.Runtime.InteropServices;

na seção de importações.

b) Adicionar o código abaixo no corpo da classe, como um método:

// Função com código não gerenciado que obtém o estado de uma
// determinada tecla

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, 
CallingConvention = CallingConvention.Winapi)]

public static extern short GetKeyState(int keyCode); 

c) Adicione o código abaixo no evento Click de um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o estado da tecla Num Lock como um boolean
  bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;

  // vamos verificar se a tecla Num Lock está ativada
  if(NumLock){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}



C# ::: Dicas & Truques ::: Data e Hora

Como construir uma data e hora em C# usando o objeto DateTime e fornecendo o dia, mês, ano, horas, minutos e segundos da data e hora desejadas

Quantidade de visualizações: 12522 vezes
Esta dica mostra como construir uma data e hora em C# usando o seguinte construtor da estrutura DateTime:

DateTime(Int32, Int32, Int32, Int32, Int32, Int32)

Este construtor pede seis valores inteiros representando o ano, mês, dia, horas, minutos e segundos da data e hora que queremos construir e retorna um objeto DateTime representando a data e hora recém-construidas (note que a hora deve ser informada no formato 0-23). Veja um exemplo:

static void Main(string[] args){
  // cria um objeto DateTime para a data 10/04/2008
  // e hora 18:32:10
  DateTime data = new DateTime(2008, 4, 10, 18, 32, 10);

  // exibe o resultado
  System.Console.WriteLine(data.ToString(
    "dd/MM/yyyy - HH:mm:ss"));

  // pausa o programa
  Console.ReadKey();
}

Tome cuidade. Este método pode lançar exceções dos tipos ArgumentOutOfRangeException e ArgumentException se os valores fornecidos estiverem fora das faixas permitidas.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas

Exercícios Resolvidos de Java - Como inserir no final de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar vários

Quantidade de visualizações: 960 vezes
Pergunta/Tarefa:

Este exercício Java demonstra como inserir um nó no final de uma lista ligada. Escreva um programa Java que cria uma lista ligada, ou seja, uma lista dinamicamente encadeada, e pede para o usuário informar vários valores inteiros, colocando os valores sempre no final da lista.

Seu código deverá interromper a leitura dos valores quando o usuário informar o valor -1. Quando isso acontecer, mostre todos os valores contidos na lista ligada, na mesma ordem que foram inseridos (o último valor lido será o último da lista).

Sua saída deve ser parecida com:

Inserindo valores no final da lista

Informe o valor (-1 para sair): 3
Informe o valor (-1 para sair): 9
Informe o valor (-1 para sair): 1
Informe o valor (-1 para sair): 5
Informe o valor (-1 para sair): 2
Informe o valor (-1 para sair): -1

Valores na lista: 3 -> 9 -> 1 -> 5 -> 2 -> null
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;
  
import java.util.Scanner;

// classe interna usada para representar um
// nó na lista ligada
class No {
  int valor; // valor do nó
  No proximo; // aponta para o novo nó
 
  // construtor da classe No
  No(int valor, No proximo) {
    this.valor = valor;
    this.proximo = proximo;
  }
}

public class Estudos { 
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos criar uma referência para o início da lista
    No inicio = null;
    
    // agora vamos pedir para o usuário informar
    // valores inteiros. O valor -1 sai do laço
    int valor;
    System.out.println("Inserindo valores no final da lista\n");
    do {
      System.out.print("Informe o valor (-1 para sair): ");
      valor = Integer.parseInt(entrada.nextLine());
      if (valor != -1) {
        inicio = inserirFinal(inicio, valor);
      }
    } while(valor != -1);
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista: ");
    exibirLista(inicio);
  }
  
  // função que permite adicionar um nó no final da
  // lista ligada
  public static No inserirFinal(No inicio, int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
 
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }    
    else { // temos um ou mais nós na lista ligada
      // vamos localizar o último nó
      while (atual.proximo != null) {
        atual = atual.proximo;
      }
      
      // encontramos o último nó. Agora vamos inserir
      // o novo nó depois dele
      atual.proximo = novo;
    }
    
    // e retornamos o início da lista
    return inicio;
  }
  
  // função usada para construir e retornar um novo nó
  public static No criarNo(int valor) {
    // cria o novo nó
    No no = new No(valor, null);
    // retorna o nó criado
    return no;
  }
  
  // função usada para percorrer a lista ligada e
  // exibir os valores contidos em seus nós
  public static void exibirLista(No inicio) {
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      System.out.println("A lista está vazia.");
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos mostrar o valor desse nó
        System.out.print(temp.valor + " -> ");
        // avança para o próximo nó
        temp = temp.proximo;
      }
    
      // mostra o final da lista
      System.out.println("null");
    }
  }
}



C# ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em C#

Quantidade de visualizações: 14331 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.

O trecho de código abaixo mostra como calcular o MDC de dois números informados:

static void Main(string[] args){
  Console.WriteLine("Este programa permite calcular o MDC\n");
  Console.Write("Informe o primeiro número: ");
  int x = int.Parse(Console.ReadLine());

  Console.Write("Informe o primeiro número: ");
  int y = int.Parse(Console.ReadLine());

  Console.WriteLine("\nO Máximo Divisor Comum de "
    + x + " e " + y + " é " + MDC(x, y));

  Console.WriteLine("\nPressione qualquer tecla para sair...");
  // pausa o programa
  Console.ReadKey();
}

public static int MDC(int a, int b){
  int resto;

  while(b != 0){
    resto = a % b;
    a = b;
    b = resto;
  }

  return a;
}



Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação orientada a objetos em Java - Como usar o modificador protected em suas variáveis e métodos Java

Quantidade de visualizações: 10780 vezes
O modificador protected pode ser aplicado às variáveis e métodos de uma classe. Membros de uma classe marcados como protected podem ser acessados por qualquer classe no mesmo pacote (package) ou por suas classes derivadas (subclasses), mesmo que estas classes estejam em pacotes diferentes.

Contudo, a discussão sobre este modificador é um pouco mais profunda. Subclasses residentes em outros pacotes tem algumas limitações em relação ao acesso de variáveis e métodos marcados como protected em suas superclasses. Em resumo, uma subclasse em um pacote diferente pode sobrescrever métodos protected de suas superclasses. Além disso, instâncias destas subclasses podem acessar ou modificar variáveis protected herdadas de suas superclasses, assim como chamar os métodos protected herdados. Porém, estas instâncias não têm liberdade para efetuar estas ações em outras instâncias das mesmas subclasses.

Veja um exemplo no qual mostramos como acessar variáveis marcadas como protected em uma classe a partir de sua classe derivada:

// superclasse
class Pessoa{
  protected String nome;

  public String getNome(){
    return this.nome;
  }
}

// subclasse
class Aluno extends Pessoa{
  public Aluno(){
    this.nome = "Osmar J. Silva";
  }
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
    System.out.println(a.getNome());
  } 
}



Java ::: Coleções (Collections) ::: LinkedHashSet

Como remover itens repetidos de uma ArrayList usando um objeto da classe LinkedHashSet do Java

Quantidade de visualizações: 695 vezes
Em algumas situações nós temos uma ArrayList com algumas repetições e gostaríamos de remover os itens duplicados mas gostaríamos de manter a ordem original dos elementos. Para isso nós podemos usar um objeto da classe LinkedHashSet.

Como sabemos, classes que implementam a interface Set possuem a habilidade de recusar itens repetidos. A classe LinkedHashSet, além de recusar duplicidades de valores, mantém a ordem de inserção dos elementos.

Veja o código Java completo para o exemplo:

package estudos;

import java.util.ArrayList;
import java.util.LinkedHashSet;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar uma ArrayList de linguagens de programação
    ArrayList<String> lista = new ArrayList<>();
    
    // vamos adicionar alguns elementos no ArrayList. Note
    // que temos itens repetidos
    lista.add("Java");
    lista.add("Scala");
    lista.add("Ruby");
    lista.add("Scala");
    lista.add("Python");
    lista.add("Ruby");
    lista.add("Delphi");
 
    // vamos mostrar o conteúdo do ArrayList
    System.out.println("O conteúdo do ArrayList é: " +
      lista.toString());
    
    // vamos criar uma instância da classe LinkedHashSet
    LinkedHashSet<String> set = new LinkedHashSet<>(lista);
 
    // agora construímos uma nova ArrayList sem repetições a
    // partir do LinkedHashSet
    ArrayList<String> lista2 = new ArrayList<>(set);
 
    // e mostramos o resultado
    System.out.println("ArrayList sem repetições: " +
      lista2.toString());
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

O conteúdo do ArrayList é: [Java, Scala, Ruby, Scala, Python, Ruby, Delphi]
ArrayList sem repetições: [Java, Scala, Ruby, Python, Delphi]

Note como a ordem dos elementos no ArrayList original foi respeitada.


HTML5 ::: Referência Tags/Elementos HTML5 ::: Tag/Elemento <Video>

Como usar a tag/elemento <video> do HTML5 em suas aplicações web

Quantidade de visualizações: 1742 vezes
A tag/elemento <video> do HTML5 é usada quando queremos incorporar um vídeo em nossos documentos HTML sem incluir plugs adicionais, tais como o Flash Player. Contudo, o suporte a este elemento pode variar de navegador para navegador (faça testes com seus navegadores alvos antes).

Em geral, navegadores que dão suporte ao elemento <video> suportam os seguintes formatos de vídeo: MP4, Ogg e WebM.

Veja um documento HTML que carrega um vídeo MP4:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<title>Como usar a tag video do HTML5</title>
  
</head>
<body>
 
<video controls="controls" src="filme.mp4">
  Seu browser não dá suporte ao elemento video do HTML5.
</video> 
  
</body>
</html>

Quando você abrir esta página HTML, você verá um vídeo na tela já com os controles para iniciar, pausar, e parar a execução (contanto que você tenha informado um endereço válido para o vídeo). Note que não especificamos o tamanho do vídeo na página, o que fará com que o elemento <video> tenha as dimensões do vídeo que foi carregado.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 60 usuários muito felizes estudando em nosso site.