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 PHPQuantidade 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> </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> </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é 10Quantidade 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 - RevisadaQuantidade 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 CQuantidade 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 stringQuantidade 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 TimeQuantidade 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 |
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 |