Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar um array em Ruby usando as funções sort e sort!

Quantidade de visualizações: 12196 vezes
Em várias situações nós precisamos ordenar arrays na linguagem Ruby. Para isso nós podemos usar a função sort, que ordenará os elementos do array em ordem crescente.

Veja o código Ruby a seguir:

=begin
  Este trecho de código mostra como ordenar
  um array de inteiros usando o método sort
  da classe Array.  
=end

# define um array de inteiros
valores = [10, 3, 56, 100, 34, 0, 4]

# exibe os valores na ordem original
puts "Ordem original:"
for valor in valores
  print valor.to_s + " "
end

# array ordenado
puts "\n\nOrdenado do menor para o maior:"
valores = valores.sort # ordena o array
for valor in valores
  print valor.to_s + " "
end

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

Ordem original:
10 3 56 100 34 0 4

Ordenado do menor para o maior:
0 3 4 10 34 56 100

Se quisermos que a ordenação seja feita no array original, sem criar uma cópia, podemos usar a função sort!. Veja:

=begin
  Este trecho de código mostra como ordenar
  um array de inteiros usando o método sort
  da classe Array.  
=end

# define um array de inteiros
valores = [10, 3, 56, 100, 34, 0, 4]

# exibe os valores na ordem original
puts "Ordem original:"
for valor in valores
  print valor.to_s + " "
end

# array ordenado
puts "\n\nOrdenado do menor para o maior:"
valores.sort! # ordena o array
for valor in valores
  print valor.to_s + " "
end



PHP ::: Dicas & Truques ::: Data e Hora

Como gerar um calendário mensal completo para um determinado mês e ano usando PHP

Quantidade de visualizações: 468 vezes
Nesta dica eu mostro como podemos usar as principais funções de data e hora da linguagem PHP para montar um calendário PHP completo (com comentários e fácil de modificar). Basta passar um mês e ano e a função se encarrega do restante.

Este código é muito útil em aplicações PHP para escolas, faculdades, sistemas financeiros, etc. Veja o resultado na imagem abaixo:



E agora o código completo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  // função que permite montar o calendário
  function montar_calendario($mes, $ano){
    // um vetor para guardar os meses
    $meses = array(1 => 'Janeiro', 2 => 'Fevereiro', 
      3 => 'Março', 4 => 'Abril', 5 => 'Maio', 
      6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 
      9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro',
      12 => 'Dezembro');
  
    // um vetor com os dias da semana
    $dias_semana = array('Dom', 'Seg', 'Ter', 'Qua',
      'Qui', 'Sex', 'Sáb');
  
    // vamos obter o primeiro dia do calendário
    $primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano);
    // obtém a quantidade de dias no mês  
    $dias_mes = date('t', $primeiro_dia);  
    // dia da semana que o calendário inicia (começa em 0)
    $dia_inicio = date('w', $primeiro_dia);
    
    // cria a tabela HTML para o calendário
    echo '<table border="1" cellspacing="0" cellpadding="4">
      <tr><th colspan="7">'. $meses[$mes] . ' - ' . 
       $ano . '</th>
      </tr>
      <tr><td align="center">';
       echo implode('</td><td align="center">', $dias_semana);
    echo '</td></tr>';
   
    // precisamos de células vazias até encontrarmos
    // o dia inicial da semana
    if($dia_inicio > 0){ 
      for($i = 0; $i < $dia_inicio; $i++){ 
        echo '<td>&nbsp;</td>'; 
      }
    }
   
    // agora já podemos começar a preencher o
    // calendário
    for($dia = 1; $dia <= $dias_mes; $dia++ ){
      if($dia_inicio == 0){
        // vamos colorir o domingo de vermelho
        $estilo = ' style="color: red"';
      } 
      else{
        $estilo = '';
      }     

      // vamos colocar a data de hoje sublinhada
      if(($dia == date("j")) && ($mes == date("n")) && 
       ($ano == date("Y"))){
         echo '<td ' . $estilo . ' align="center"><u>' 
           . $dia . '</u></td>';
      }
      else{
        echo '<td ' . $estilo . ' align="center">' . 
          $dia . '</td>';
      }
     
      // vamos incrementar o dia de referência 
      $dia_inicio++;
     
      // já precisamos adicionar uma nova linha na tabela?
      if($dia_inicio == 7){
        $dia_inicio = 0;
        echo "</tr>";

        if($dia < $dias_mes){
          echo '<tr>';
        }
      }
    } // fim do laço for
   
    // agora preenchemos as células restantes
    if($dia_inicio > 0){
      for($i = $dia_inicio; $i < 7; $i++){
        echo '<td>&nbsp;</td>';
      }
   
      echo '</tr>';
    }
 
    echo '</table>';
  }
 
  // vamos montar o mês de março de 2021
  montar_calendario(3, 2021);
?>
 
</body>
</html>



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um laço for que conta de 0 até 10

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

Escreva uma aplicação console Java que usa o laço for para contar de 0 até 10. Faça dois exemplos. No primeiro você deverá escrever os valores na horizontal e no segundo você deverá escrever os valores na vertical:

Resposta/Solução:

Este exercício é um dos primeiros sobre o uso de laços nos cursos de Java e você pode fazer usando o Bloco de Notas, Netbeans, Eclipse ou sua IDE favorita. Veja o código que usa o laço for para contar de 0 até 10 e exibir os valores na horizontal:

public static void main(String[] args){
  // laço for que conta de 0 até 10 e exibe os valores na horizontal
  for(int i = 0; i <= 10; i++){
    System.out.print(i + "  ");
  }
}

Quando você executar este código, os valores deverão ser impressos da seguinte forma:

0  1  2  3  4  5  6  7  8  9  10

Agora, veja como uma pequena modificação faz com que os valores sejam impressos na vertical:

public static void main(String[] args){
  // laço for que conta de 0 até 10 e exibe os valores na vertical
  for(int i = 0; i <= 10; i++){
    System.out.println(i + "  ");
  }
}

Agora os valores serão exibidos da seguinte forma:

0  
1  
2  
3  
4  
5  
6  
7  
8  
9  
10



PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como criar diretórios usando PHP - Como usar a função mkdir() da linguagem PHP para criar diretórios - Revisada

Quantidade de visualizações: 25173 vezes
Diretórios podem ser criados com a função mkdir() do PHP. Esta função recebe o nome do diretório a ser criado, um modo que define as permissões de acesso ao diretório e um valor boolean que define se os diretórios fornecidos no primeiro parâmetro serão criados recursivamente. O valor padrão para o modo de acesso é 0777 (todos têm permissão de leitura, escrita e execução) e false para a criação de diretórios recursivamente.

Veja um trecho de código no qual criamos um diretório no diretório public_html:

<?
  // nome do diretório
  $diretorio = "/site/public_html/minhas_imagens";
   
  // cria o diretório com a permissão 0777
  if(mkdir($diretorio))
    echo "Diretório criado com sucesso.";
  else
    echo "Não foi possível criar o diretório.";
?>

Antes de criar um diretório, é preciso que você verifique se o diretório dentro do qual o novo diretório será criado apresenta as permissões adequadas, do contrário você terá a seguinte mensagem de erro:

Warning: mkdir() [function.mkdir]: Permission denied
in /site/public_html/testes.php on line 8
Não foi possível criar o diretório.

Veja agora como criar um diretório contendo dois sub-diretórios recursivamente:

<?
  // cria o diretório imagens contendo o subdiretório "fotos" 
  // e este conterá o sub-diretório 
  // "recentes"
  $diretorio = "/site/public_html/imagens/fotos/recentes";
   
  // cria o diretório com a permissão 0777
  if(mkdir($diretorio, 0777, true))
    echo "Diretório criado com sucesso.";
  else
    echo "Não foi possível criar o diretório.";
?>

Esta dica foi revisada, atualizada e testada com o PHP 8.


C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em C

Quantidade de visualizações: 3144 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem C.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem C:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char *argv[]){
  float c = 36.056; // medida da hipotenusa
  float b = 30; // medida do cateto adjascente
  
  // agora vamos calcular o comprimento da cateto oposto
  float a = sqrt(pow(c, 2) - pow(b, 2));
 
  // e mostramos o resultado
  printf("A medida do cateto oposto é: %f", a);
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A medida do cateto oposto é: 20.000877

Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada.


C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como retornar o tamanho de um array em C++ - Curso de C++ - Vetores e matrizes em C++

Quantidade de visualizações: 11139 vezes
Muitas vezes precisamos saber a quantidade de elementos em vetor (array). Em C++, isso pode ser feito com o uso da função sizeof(). O que fazemos é obter a quantidade de bytes contidos em todo o vetor e depois dividimos pela quantidade de bytes no primeiro elemento. Veja o código:

#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  // declara e inicializa um array de 5 inteiros
  int valores[5] = {43, 12, 8, 4, 102};
 
  // obtém a quantidade de elementos na matriz
  int quant = sizeof(valores) / sizeof(valores[0]);
 
  // exibe o resultado
  cout << "Quant. elementos : " << quant << endl;
 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Quant. elementos : 5


JavaScript ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith()

Quantidade de visualizações: 2170 vezes
O método startsWith() da linguagem JavaScript foi adicionado ao objeto String na revisão ECMAScript 2015, ou ES6, também chamado de ECMAScript 6.

Este método é chamado diretamente em uma variável do tipo string e retorna true se a palavra, frase ou texto começar com uma substring específica e false em caso contrário.

Veja um exemplo no qual verificamos se uma frase começa com a palavra "JavaScript":

<script type="text/javascript">
  var frase = "JavaScript é uma das melhores linguagens";
  
  if(frase.startsWith("JavaScript")){
    document.writeln("A frase começa com a palavra JavaScript");  
  }
  else{
    document.writeln("A frase não começa com a palavra JavaScript");  
  }
</script>

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

A frase começa com a palavra JavaScript

É importante ter em mente que a função startsWith() diferente letras maiúsculas de letras minúsculas.


Java ::: Dicas & Truques ::: Strings e Caracteres

Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma string

Quantidade de visualizações: 39 vezes
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto.

Veja o código completo para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase: " + frase); 
    
    int cont = 0;
    char letra = 'a'; // ocorrências da letra "a"
     
    for(int i = 0; i < frase.length(); i++){
      if(frase.charAt(i) == letra){
        cont++; 
      }
    }
     
    System.out.println("A frase contem " + 
       cont + " ocorrencias da letra \"" + letra + "\"");
     
    System.exit(0);
  }
}

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

Frase: Programar em Java é muito bom
A frase contém 4 ocorrências da letra "a"


Ruby ::: Dicas & Truques ::: Data e Hora

Como construir uma data e hora em Ruby usando os métodos mktime() e local() da classe Time

Quantidade de visualizações: 7551 vezes
Há situações em que precisamos trabalhar com datas e horas no passado ou futuro em Ruby. Para estas situações nós precisamos construir a data ou a data e a hora. Nesta dica mostrarei como usar os métodos mktime() e local() para esta finalidade.

Os métodos mktime() e local() são sinônimos e ambos aceitam os seguintes argumentos:

# argumentos para mktime
Time.mktime(year [, month, day, hour, min, sec, 
  usec) => time

#argumentos para local
Time.local(year [, month, day, hour, min, sec, 
  usec]) => time


Estes métodos criam um novo objeto Time baseado nos parâmetros fornecidos. As unidades de tempo são fornecidas em ordem inversa do mais longo para o mais curto: ano, mês, dia, horas, minutos, segundos e microsegundos. Todos os parâmetros, exceto ano, são opcionais. Quando não fornecidos, estes parâmetros são automaticamente inicializados com seus menores valores possíveis. O parâmetro de microsegundos (usec) pode ser ignorado em muitas arquiteturas. O valor para as horas deve estar na faixa 0..23 (formato 24 horas).

Veja um trecho de código no qual usamos os métodos mktime() e local() para construir uma data e uma data e hora:

# constrói uma data usando o método mktime
# passando o ano, mês e dia
hoje = Time.mktime(2008, 11, 22)

# exibe o resultado
puts "A data é: " + hoje.to_s

# constrói uma data e hora usando o método mktime
# passando o ano, mês, dia, horas, minutos e segundos
hoje = Time.mktime(2008, 11, 22, 20, 25, 10)

# exibe o resultado
puts "A data e hora é: " + hoje.to_s

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

A data é: 2008-11-22 00:00:00 -0300
A data e hora é: 2008-11-22 20:25:10 -0300


VB.NET ::: Dicas & Truques ::: Strings e Caracteres

Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse()

Quantidade de visualizações: 7893 vezes
Nesta dica mostrarei como podemos tirar proveito do método ToCharArray() da classe String e do método Reverse() da classe Array do VB.NET para inverter a ordem dos caracteres de uma palavra, frase ou texto.

Note que criamos uma função personalizada InverterString() que recebe uma string, a inverte e devolve uma nova string com a ordem dos caracteres invertida.

Veja o código completo para o exemplo:

Imports System

Module Program
  Sub Main(args As String())
    ' vamos declarar uma string
    Dim frase As String = "Gosto de VB.NET"

    ' mostramos a frase original
    Console.WriteLine("Frase original: " & frase)

    ' inverte o conteúdo da string
    frase = InverterString(frase)

    ' mostramos a frase invertida
    Console.WriteLine("A frase invertidade é: " & frase)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub

  ' Função que recebe uma string e a devolve invertida
  Function InverterString(ByVal str As String) As String
    Dim invertida As String
    Dim arrChar() As Char = str.ToCharArray()
    Array.Reverse(arrChar)
    invertida = arrChar
    Return invertida
  End Function
End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

Frase original: Gosto de VB.NET
A frase invertidade é: TEN.BV ed otsoG

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á 46 usuários muito felizes estudando em nosso site.