![]() |
|||||
|
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como embaralhar os elementos de um array em PHP usando a função shuffle() - Vetores e matrizes em PHPQuantidade de visualizações: 12762 vezes |
Em algumas situações nós precisamos misturar os elementos de um vetor em PHP, ou seja, embaralhar de forma aleatória os elementos. Para isso nós podemos usar a função shuffle(), que recebe um vetor e o devolve com a ordem dos elementos embaralhada de forma randômica. Veja o exemplo completo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $nomes = array("Osmar", "Marcos", "Igor", "Gustavo"); // ordem original for($i = 0; $i < count($nomes); $i++){ echo $nomes[$i] . "<br>"; } echo "<br>"; // embaralha o vetor shuffle($nomes); // ordem embaralhada for($i = 0; $i < count($nomes); $i++){ echo $nomes[$i] . "<br>"; } ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: Osmar Marcos Igor Gustavo Gustavo Osmar Marcos Igor |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como embaralhar os caracteres de uma string em C++ usando a função random_shuffle()Quantidade de visualizações: 13050 vezes |
Em algumas situações, tais como o desenvolvimento de um gerador de senhas aleatórias, pode ser necessário embaralharmos as letras de uma palavra. Em C++ isso pode ser feito por meio do uso da função random_shuffle() da STL (Standard Template Library). Não se esqueça de efetuar uma chamada a srand() antes do código que embaralha os caracteres da string. Veja o código C++ completo para o exemplo: #include <string> #include <iostream> #include <algorithm> #include <time.h> using namespace std; int main(int argc, char *argv[]){ // vamos iniciar o gerador de números // aleatórios srand(time(NULL)); // vamos criar uma string string palavra = "JAVASCRIPT"; cout << "Palavra original: " << palavra << endl; // vamos embaralhar as palavras da string random_shuffle(palavra.begin(), palavra.end()); // exibe o resultado cout << "Palavra com caracteres embaralhados: " << palavra << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Palavra original: JAVASCRIPT Palavra com caracteres embaralhados: RPSAITCVAJ |
Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n) |
Como usar os construtores da classe Locale em seus programas JavaQuantidade de visualizações: 9729 vezes |
A classe Locale, na versão 1.6 do Java, apresenta 3 construtores. Aprender a usá-los corretamente trará muito mais flexibilidade aos seus códigos. Veja o primeiro construtor: Locale(String language) Este construtor requer como argumento um código de língua válido, ou seja, um dos códigos de duas letras minúsculas definidos pelo ISO-639. Assim, "pt" é para o português, "en" para o inglês, e assim por diante. Veja: import java.util.*; import java.text.*; public class Estudos{ public static void main(String args[]){ // criamos um locale para o Brasil Locale localeBR = new Locale("pt"); // vamos obter a data e hora atual Calendar agora = Calendar.getInstance(); // vamos formatar de acordo com o formato de // data longa no português brasileiro DateFormat df = DateFormat.getDateInstance( DateFormat.FULL, localeBR); // vamos exibir o resultado System.out.println(df.format(agora.getTime())); } } Veja o segundo construtor: Locale(String language, String country) Este construtor requer a língua (language) e o país (country). O argumento country deve ser um código de país válido, ou seja, um dos códigos de duas letras maiúsculas definidos pelo ISO-3166. Assim, "BR" é para o Brasil, "PT" para Portugal, "US" para United States, e assim por diante. Este construtor que aceita o código da língua e o código do país é o mais frequentemente usado, uma vez que Brasil e Portugal possuem o mesmo código de língua, mas códigos de paises diferentes. Além disso, há países cujas regiões falam línguas diferentes, por exemplo, o Canadá. Veja um exemplo: import java.util.*; import java.text.*; public class Estudos{ public static void main(String args[]){ // criamos um locale para o Brasil Locale localeBR = new Locale("pt", "BR"); // vamos obter a data e hora atual Calendar agora = Calendar.getInstance(); // vamos formatar de acordo com o formato de // data longa no português brasileiro DateFormat df = DateFormat.getDateInstance( DateFormat.FULL, localeBR); // vamos exibir o resultado System.out.println(df.format(agora.getTime())); } } Vejamos agora o terceiro construtor: Locale(String language, String country, String variant) Este construtor requer a língua, o país e a variante de localização. O argumento variante é um código específico relacionado ao fornecedor do sistema ou browser. Por exemplo: WIN para Windows, MAC para Macintosh, etc. Este último construtor não é usado comumente, razão pela qual o exemplo de seu uso fica pendente até a próxima revisão desta dica. |
React.js ::: Dicas & Truques ::: Passos Iniciais |
Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-appQuantidade de visualizações: 1503 vezes |
Embora seja recomendável usar a ferramenta create-react-app para criar suas aplicações React, às vezes gostaríamos de testar algumas idéias diretamente no código HTML, ou seja, sem precisar passar pelo processo "npx create-react-app" -> "npm start" -> "npm run build". Tudo que temos que fazer é incluir três scripts, a saber, react.production.min.js, react-dom.production.min.js e babel.min.js. Estes scripts estão disponíveis para inclusão via CDN (o mais recomendado) ou você pode baixá-los para uso local, o que, com certeza, vai deixar o processo de desenvolvimento ainda mais rápido. Para obter os CDS ou fazer o download individual dos mesmos, basta pesquisá-los no Google por seus nomes. Nesta dica eu optei por baixar os scripts e rodá-los a partir da minha máquina de desenvolvimento. Os dois primeiros scripts nos permitem escrever código React em nossos códigos JavaScript, e o terceiro, babel.min.js, nos permite usar a síntáxe JSX (JavaScript XML) e também dar suporte ao JavaScript ES6 para os navegadores mais antigos. Então, vamos escrever código? Veja a listagem a seguir: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Estudos React</title> <script src="js/react.production.min.js"></script> <script src="js/react-dom.production.min.js"></script> <script src="js/babel.min.js"></script> </head> <body> <h1>Primeira aplicação React direto no HTML</h1> <div id="minha_app"></div> <script type="text/babel"> // vmaos criar um novo compomente React class Mensagem extends React.Component{ render() { return <h1>Olá, bem-vindo(a) ao React!</h1> } }; // vamos exibir o componente Mensagem na div minha_app ReactDOM.render(<Mensagem />, document.getElementById('minha_app')); </script> </body> </html> Ao abrir esta página no navegador teremos o seguinte resultado: Primeira aplicação React direto no HTML Olá, bem-vindo(a) ao React! Pronto! Agora você pode testar idéias no React de forma bem rápida e fácil. Mas, lembre-se, em aplicações mais complexas, o uso da ferramenta create-react-app continua sendo o mais recomendado. |
Revit C# ::: Dicas & Truques ::: Selection, Seleção |
Como pedir para o usuário selecionar um ou mais elementos no Revit usando a função PickElementsByRectangle() do objeto Selection da Revit C# APIQuantidade de visualizações: 459 vezes |
A Seleção por Retângulo (ou Retângulo de Seleção) do Revit funciona da seguinte forma: a) Desenhe uma caixa de seleção ao colocar o cursor em um dos lados do elemento a ser selecionado e arraste-o na diagonal para formar um limite retangular. b) Para selecionar somente os elementos que estejam completamente dentro do limite da caixa de seleção, arraste o cursor da esquerda para a direita. c) Para selecionar quaisquer elementos que estejam completamente ou parcialmente dentro do limite da caixa de seleção, arraste o cursor da direita para a esquerda. Via código C# usando a API do Revit, nós podemos pedir para o usuário selecionar elementos usando o retângulo de seleção por meio da função PickElementsByRectangle() do objeto Selection e retornar os elementos selecionados em uma IList. O primeiro passo é obter uma referência ao documento atual UIDocument a partir de uma chamada a this.ActiveUIDocument. Em seguida nós obtemos o objeto Selection a partir do UIDocument e chamamos a sua função PickElementsByRectangle(). Finalmente, de posse da lista IList de elementos selecionados nós só precisamos acessar sua propriedade Count para verificar a quantidade de elementos que o usuário selecionou. Veja o código Revit C# completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; using System.Linq; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // vamos obter uma referência ao UIDocument ativo UIDocument uidoc = this.ActiveUIDocument; // agora mostramos uma mensagem para o usuário selecionar um // elemento TaskDialog.Show("Aviso", "Selecione um ou mais elementos"); // obtemos uma referência ao objeto Selection do // UIDocument ativo Selection selecao = uidoc.Selection; // e finalmente esperamos que o usuário selecione um ou // mais elementos usando a seleção de retângulo e os // guardamos em uma lista IList<Element> selecionados = selecao.PickElementsByRectangle( "Selecione os elementos"); // agora mostramos a quantidade de elementos selecionados TaskDialog.Show("Aviso", "Você selecionou " + selecionados.Count + " elementos."); } private void Module_Shutdown(object sender, EventArgs e) { // para fazer alguma limpeza de memória ou algo assim } #region Revit Macros generated code private void InternalStartup() { this.Startup += new System.EventHandler(Module_Startup); this.Shutdown += new System.EventHandler(Module_Shutdown); } #endregion } } Ao executar esta macro você verá uma mensagem TaskDialog com o seguinte aviso: Você selecionou 4 elementos. |
Python ::: Dicas & Truques ::: Lista (List) |
Como excluir e retornar o primeiro item de uma lista Python usando a função pop()Quantidade de visualizações: 7501 vezes |
Em algumas situações nós precisamos remover e retornar um determinado elemento de uma list em Python. Para isso nós podemos usar o método pop(), já embutida na linguagem. A função pop(), quando usada sem argumentos, exclui e retorna o último elemento de uma lista. Se fornecido um argumento, a função remove e retorna o elemento no índice indicado. Se o índice informado estiver fora da faixa permitida, um erro do tipo IndexError será retornado. Veja um trecho de código Python no qual removemos e retornamos o primeiro elemento da lista: def main(): # cria uma lista de inteiros valores = [4, 23, 7, 1, 0, 54] # imprime a lista print(valores) # remove o primeiro item valor = valores.pop(0) print("Item removido:", valor) # exibe a lista novamente print(valores) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: [4, 23, 7, 1, 0, 54] Item removido: 4 [23, 7, 1, 0, 54] Experimente rodar esse código e fornecer, por exemplo, o valor 50 para o índice. Você verá o seguinte erro: Exception has occurred: IndexError pop index out of range File "C:\estudos_python\estudos.py", line 9, in main valor = valores.pop(90) File "C:\estudos_python\estudos.py", line 16, in <module> main() |
Ruby ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar um diretório em Ruby usando a função FileUtils.mkdir()Quantidade de visualizações: 8218 vezes |
O trecho de código a seguir mostra como criar um diretório em Ruby usando o método mkdir() da classe FileUtils. Esta função recebe uma string contendo o nome e caminho do diretório a ser criado. Veja o código Ruby completo para o exemplo: require "fileutils" # nome e caminho do diretório a ser criado diretorio = "C:\\estudos_ruby\\escola" # cria o diretório if FileUtils.mkdir diretorio puts "Diretório criado com sucesso" else puts "Não foi possível criar o diretório" end Ao executar este código Ruby nós teremos o seguinte resultado: Diretório criado com sucesso Veja que, se o diretório não puder ser criado, a seguinte mensagem de erro será exibida: C:/ruby/lib/ruby/1.8/fileutils.rb:243:in `mkdir': File exists - estudos (Errno:: EEXIST) from C:/ruby/lib/ruby/1.8/fileutils.rb:243:in `fu_mkdir' from C:/ruby/lib/ruby/1.8/fileutils.rb:172:in `mkdir' from C:/ruby/lib/ruby/1.8/fileutils.rb:171:in `each' from C:/ruby/lib/ruby/1.8/fileutils.rb:171:in `mkdir' from estudos.rb:7 |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar um ponteiro para acessar e alterar o valor de mais de uma variável do tipo int usando a linguagem CQuantidade de visualizações: 10126 vezes |
Esta dica mostra a você como podemos usar apenas um ponteiro para acessar e manipular os valores de três variáveis do tipo int. Veja o uso do símbolo "&" para acessar o endereço de uma variável e "*" (operador de indireção) para acessar o valor da variável apontada pelo ponteiro. Observe o código completo para o exemplo: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // declara e inicializa três variáveis int a = 23; int b = 40; int c = 3; // exibe seus valores printf("a = %d, b = %d, c = %d\n\n", a, b, c); // declara um ponteiro para uma variável do tipo int int *p; // aponta para a variável "a" e altera seu valor p = &a; *p = 12; // aponta para a variável "b" e altera seu valor p = &b; *p = 695; // aponta para a variável "c" e altera seu valor p = &c; *p = 90; // exibe os novos valores das variáveis printf("a = %d, b = %d, c = %d\n\n", a, b, c); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: a = 23, b = 40, c = 3 a = 12, b = 695, c = 90 Pressione qualquer tecla para continuar... |
C# ::: Windows Forms ::: TextBox |
Como retornar o tamanho do texto de um TextBox em C# Windows Forms usando a propriedade TextLengthQuantidade de visualizações: 9480 vezes |
A propriedade TextLength da classe TextBox do C# Windows Forms nos permite obter a quantidade de caracteres digitadas na caixa de texto, o seja, o tamanho da string presente no controle. Veja um exemplo C# Windows Forms no qual temos um botão button1 e uma caixa de texto textbox1. Ao digitar algum conteúdo e clicar no botão, uma mensagem MessageBox exibirá a quantidade de caracteres digitados: private void button1_Click(object sender, EventArgs e) { // vamos obter o tamanho do texto do TextBox int tamanho = textBox1.TextLength; MessageBox.Show("A caixa de texto contém " + tamanho + " caracteres."); } Ao executar este código C# Windows Forms nós teremos um resultado parecido com: A caixa de texto contém 10 caracteres. |
C++ ::: Win32 API (Windows API) ::: Strings e Caracteres |
Como converter caracteres individuais para letras maiúsculas usando a função CharUpper() da API do Windows a partir de seus códigos C++Quantidade de visualizações: 9669 vezes |
Pode usar a função CharUpper() da API do Windows para converter um caractere para seu correspondente em letra maiúscula. Veja o protótipo da função:LPTSTR CharUpper( LPTSTR lpsz ); Veja um exemplo no qual usamos esta função para converter uma letra minúscula em maiúscula: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ CHAR letra = 'a'; // vamos converter para letra maiúscula CharUpper(&letra); // vamos exibir o resultado cout << letra << endl; system("PAUSE"); return EXIT_SUCCESS; } Note que aqui nós fornecemos um ponteiro para o caractere que queremos transformar. Isso resulta em uma conversão sendo efetuada diretamente no caractere para o qual o ponteiro está apontando no momento. Podemos também obter o resultado da conversão em um outro ponteiro e usá-lo posteriormente. Veja: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ CHAR letra = 'a'; // vamos converter para letra maiúscula CHAR *resultado = CharUpper(&letra); // vamos exibir o resultado cout << *resultado << endl; system("PAUSE"); return EXIT_SUCCESS; } |
Nossas 20 dicas & truques de programação mais populares |
R - R para Matemática e Estatística - Como calcular desvio padrão usando a função sd() da linguagem R JavaScript - Como inverter a ordem dos elementos de um array em JavaScript - Vetores e matrizes em JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como usar a classe Character da linguagem Java para tratar caracteres individuais em seus programas |
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 |