Python - Dicas & Truques - Arquivos e Diretórios

Mais Dicas e Truques de Programação

Java ::: Dicas & Truques ::: Data e Hora

Como construir uma data no passado ou futuro em Java usando a classe GregorianCalendar

Quantidade de visualizações: 7440 vezes
Esta dica mostra como construir uma data no passado ou futuro na linguagem Java usando a classe GregorianCalendar, que é uma classe derivada e concreta da classe Calendar. Veja a linha na qual informamos a data a ser criada:

Calendar data = new GregorianCalendar(2008, 11, 13);

Aqui nós estamos usando o construtor da classe GregorianCalendar que requer três valores inteiros. O ano, o mês e o dia. O mês é informado como um valor inteiro na faixa de 0 a 11, ou seja, 0 para janeiro, 1 para fevereiro e assim por diante. Veja o exemplo:

package arquivodecodigos;

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // vamos construir a data "13/12/2008"
    Calendar data = new GregorianCalendar(2008, 11, 13); 

    // vamos exibir o resultado
    Format formato = new SimpleDateFormat(
      "EEEE, dd 'de' MMMM 'de' yyyy");
    System.out.println(formato.format(data.getTime()));
  } 
}

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

Sábado, 13 de Dezembro de 2008


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

Como pesquisar valores em arrays usando a função array_search() do PHP

Quantidade de visualizações: 22048 vezes
A função array_search() do PHP é muito útil quando precisamos pesquisar um determinado valor em um vetor e retornar o seu índice. É importante observar que esta função retorna o índice do elemento se ele for encontrado no array e, em caso contrário, retorna o valor FALSE.

Veja um exemplo completo de seu uso:

<?php
  $pessoas[0] = "Carlos";
  $pessoas[1] = "Juliana";
  $pessoas[2] = "Igor";
  $pessoas[3] = "Marcelo";
  $pessoas[4] = "Amélia";

  $indice = array_search("Igor", $pessoas);
  if($indice){
    echo "O valor foi encontrado no índice " . $indice;
  }
  else{
    echo "O valor pesquisado não foi encontrado.";
  }
?>

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

O valor foi encontrado no índice 2.


PHP ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para letras maiúsculas em PHP usando as funções strtoupper() e mb_strtoupper()

Quantidade de visualizações: 14483 vezes
As funções strtoupper() e mb_strtoupper() do PHP nos ajuda quando precisamos transformar uma string inteira para letras maiúsculas. Veja o seguinte exemplo:

<?php
  // uma frase contendo letras minúsculas
  $frase = "PHP? Eu gosto de PHP";
  echo "A frase é: " . $frase . "\n";
  
  // agora vamos transformá-la em letras
  // maiúsculas
  $frase = strtoupper($frase);
  echo "A frase em letras maiúsculas é: " . $frase;
?>

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

A frase é: PHP? Eu gosto de PHP
A frase em letras maiúsculas é: PHP? EU GOSTO DE PHP

A função mb_strtoupper(), por sua vez, é usada quando a palavra, frase ou texto contém acentuações. Nas versões mais recentes do PHP, a função strtoupper() sozinha não consegue converter caracteres minúsculas com acentos para caracteres maiúsculas acentuados.

Por isso, a função mb_strtoupper() é usada. Veja:

<?php
  // uma frase contendo letras minúsculas
  $frase = "Java? Não gosto muito de Java não";
  echo "A frase é: " . $frase . "\n";
  
  // agora vamos transformá-la em letras
  // maiúsculas
  $frase1 = strtoupper($frase);
  echo "Usando strtoupper(): " . $frase1;
  $frase2 = mb_strtoupper($frase, 'UTF-8');
  echo "\nUsando mb_strtoupper(): " . $frase2;
?>

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

A frase é: Java? Não gosto muito de Java não
Usando strtoupper(): JAVA? NãO GOSTO MUITO DE JAVA NãO
Usando mb_strtoupper(): JAVA? NÃO GOSTO MUITO DE JAVA NÃO

Veja que usei o valor "UTF-8" como segundo argumento para a função mb_strtoupper(). Se necessário você pode fornecer o valor "ISO-8859-1" também.


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

Apostila C# para iniciantes - Como calcular juros compostos e montante usando C#

Quantidade de visualizações: 11697 vezes
O regime de juros compostos é o mais comum no sistema financeiro e portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte.

Chamamos de capitalização o momento em que os juros são incorporados ao principal. Após três meses de capitalização, temos:

1º mês: M = P .(1 + i)
2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i)
3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i)

Simplificando, obtemos a fórmula:

M = P . (1 + i)^n

Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses.

Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período:

J = M - P

Vejamos um exemplo:

Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros?

Veja o código C# para a resolução:

static void Main(string[] args){
  double principal = 2000.00;
  double taxa = 0.03;
  int meses = 3;
  
  double montante = principal * Math.Pow((1 + taxa), meses);  
  double juros = montante - principal;

  Console.WriteLine("O total de juros a ser pago é: " 
      + juros);
  Console.WriteLine("O montante a ser pago é: " 
      + montante);

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

Um outra aplicação interessante é mostrar mês a mês a evolução dos juros.

Veja o código a seguir:

static void Main(string[] args){
  double principal = 2000.00;
  double taxa = 0.03;
  int meses = 3;
  double anterior = 0.0;  

  for(int i = 1; i <= meses; i++){
    double montante = principal * Math.Pow((1 + taxa), i);
    double juros = montante - principal - anterior;
      
    anterior += juros;

    Console.WriteLine("Mês: " + i + " - Montante: " 
      + montante + " - Juros: " + juros);
  }  

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



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

Como calcular o arco cosseno de um número em Python usando o método acos() do módulo math

Quantidade de visualizações: 849 vezes
O arco cosseno, (também chamado de cosseno inverso) pode ser representado por cos-1 x, arccos x ou acos x. Esta função é a inversa do cosseno, ou seja, se o cosseno é a relação entre o cateto adjacente ao ângulo e a hipotenusa, o arco cosseno parte desta relação para encontrar o valor do ângulo.

Em Python, o arco cosseno de um número pode ser obtido por meio do método acos() da classe Math. Este método recebe um valor double e retorna também um double, na faixa 0 <= x <= PI, onde PI vale 3.1416.

Veja um código Python completo no qual informamos um número e em seguida calculamos o seu arco-cosseno:

# vamos importar o módulo Math
import math as math

def main():
  numero = 0.5
  print("O arco cosseno de %f é %f" % (numero, math.acos(numero)))
  
if __name__== "__main__":
  main()

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

O arco cosseno de 0.500000 é 1.047198

Não se esqueça de que as funções trigonométricas são usadas para modelar o movimento das ondas e fenômenos periódicos, como padrões sazonais. Elas formam a base para análises avançadas em engenharia elétrica, processamento digital de imagem, radiografia, termodinâmica, telecomunicações e muitos outros campos da ciência e da tecnologia.


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

Como declarar e inicializar uma matriz de Integer em Delphi

Quantidade de visualizações: 11148 vezes
Nesta dica eu mostrarei como declarar e inicializar uma matriz de inteiros (Integer) em Delphi. Mostrarei também como exibir o valor de cada elemento usando um laço For. Veja o código:

procedure TForm3.Button1Click(Sender: TObject);
var
  // vamos declarar uma matriz de 10 inteiros
  valores: array[1..10] of Integer;
  i: Integer;
begin
  // vamos inicializar a matriz com os números pares de 2 até 20
  for i := Low(valores) to High(valores) do
    begin
      valores[i] := i * 2;
    end;

  // vamos exibir os valores dos elementos
  for i := Low(valores) to High(valores) do
    begin
      Memo1.Lines.Add(IntToStr(valores[i]));
    end;
end;


Ao executar este código teremos o seguinte resultado:

2
4
6
8
10
12
14
16
18
20


Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter um valor inteiro em um caractere usando a função Chr() do Delphi

Quantidade de visualizações: 12590 vezes
Em algumas situações precisamos converter um valor inteiro em um caractere, ou seja, uma letra, símbolo, dígito, etc. Para isso podemos usar a função Chr() do Delphi. Esta função recebe um valor inteiro e retorna seu caractere correspondente de acordo com a tabela ASCII.

Vamos ver um exemplo? Eis um trecho de código que declara uma variável do tipo Integer e depois a converte para um caractere:

procedure TForm3.Button2Click(Sender: TObject);
var
  valor: Integer;
  letra: Char;
begin
  // vamos atribuir à variável valor o número 70
  valor := 70;

  // vamos converter este valor para um caractere
  // o resultado será a letra F
  letra := Chr(valor);

  // vamos mostrar o resultado
  ShowMessage(letra);
end;

Ao executar este código teremos o valor 70 convertido para a letra "F". Note que também é possível converter um valor inteiro em um caractere usando uma conversão forçada (cast) para o tipo Char. Veja:

procedure TForm3.Button2Click(Sender: TObject);
var
  valor: Integer;
  letra: Char;
begin
  // vamos atribuir à variável valor o número 70
  valor := 70;

  // vamos converter este valor para um caractere
  // o resultado será a letra F
  letra := Char(valor);

  // vamos mostrar o resultado
  ShowMessage(letra);
end;

Neste segundo trecho de código nós conseguimos o mesmo resultado do código anterior, mas, sem usar a função Chr().


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

Como criar um array de strings em Ruby usando a notação %w

Quantidade de visualizações: 6083 vezes
Como criar um array de strings em Ruby usando a notação %w

Nesta dica mostrarei como podemos criar um vetor de strings em Ruby usando a notação %w(..). Ao usarmos esta sintáxe, cada elemento do array é separado por um espaço. Veja como usamos a barra invertida "\" para um elemento composto de mais de uma palavra.

Veja o código completo para o exemplo:

# define um array de cidades
cidades = %w(Goiânia Salvador Rio\ de\ Janeiro São\ Paulo)

# exibe os elementos do array
cidades.each do |cidade|
  puts cidade
end

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

Goiânia
Salvador
Rio de Janeiro
São Paulo


JavaScript ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators)

JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript

Quantidade de visualizações: 327 vezes
O operador de bits & (E/AND sobre bits) da linguagem JavaScript é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0.

Para quem gosta de Lógica Matemática, ou a Tabela Verdade da Lógica de Boole, vai se lembrar do conectivo "^", que diz que a proposição resultante da conjunção só será verdadeira quando as proposições simples individuais forem verdadeiras. O operador de bits & do JavaScript é similar ao conectivo "^" da Lógica Proposicional.

Vamos analisar os seguintes valores binários:

a) 0101 (5 decimal)
b) 0100 (4 decimal)

Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado:

0101
0100
----
0100

Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em JavaScript agora. Observe o seguinte trecho de código:

<html>
<head>
  <title>Manipulação de Bits em JavaScript</title>
</head>
 
<body>

<script type="text/javascript">
  var a = 5;
  var b = 4;
  var c = a & b;
  
  // exibe o resultado (em binário e em decimal)
  document.writeln("a = " + obterBits(a) + " (" + a + ")");
  document.writeln("<br>b = " + obterBits(b) + " (" + b + ")");
  document.writeln("<br>a & b = " + obterBits(c) + " (" + c + ")");
  
  // função auxiliar que converte um decimal em sua representação em bits
  function obterBits(valor){
    var mascara = 1 << 31; // 10000000 00000000 00000000 00000000
    var buffer = ""; // um buffer para guardar os bits dos bytes
    
    for(var i = 1; i <= 32; i++){
      // compara os bits individuais dos dois valores inteiros
      if((valor & mascara) == 0){
    	buffer = buffer + "0";
      }
      else{
    	buffer = buffer + "1";
      }
      
      valor = valor << 1; // desloca uma posição para a esquerda
      // Cada troca à esquerda corresponde à multiplicação do
      // valor por 2
      
      if(i % 8 == 0){ // completou um byte?
        buffer = buffer + " ";
      }
    }
    
    return buffer;
  }
</script>

</body>
</html>


Ao executar este código teremos o seguinte resultado:

    a = 00000000 00000000 00000000 00000101 (5) 
    b = 00000000 00000000 00000000 00000100 (4)
a & b = 00000000 00000000 00000000 00000100 (4)



Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do Delphi

Quantidade de visualizações: 10908 vezes
Em algumas situações gostaríamos de verificar se já estamos no último registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset e queremos saber se já estamos no último. Para isso podemos usar a propriedade Eof da classe TClientDataSet. Esta propriedade retorna true se estivermos no último registro e false em caso contrário.

Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet. Note o uso da propriedade Eof para finalizar as iterações do laço:

procedure TForm3.Button4Click(Sender: TObject);
begin
  // vamos percorrer todos os registros do TClientDataSet
  ClientDataSet1.First; // vamos para o primeiro registro
  // e agora disparamos um laço While
  while not ClientDataSet1.Eof do
    begin
      // vamos mostrar em um TMemo os valores do
      // campo id de cada registro
      Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString);
      // vamos mover para o próximo registro
      ClientDataSet1.Next;
    end;
end;


A propriedade Eof é verdadeira quando:

a) Abrimos um dataset vazio.

b) Efetuamos uma chamada ao método Last do dataset.

c) Chamamos o método Next do dataset e a chamada falha porque o registro atual já é o último registro no dataset.

d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio.

Esta dica foi escrita e testada no Delphi 2009.

Carregar Publicações Anteriores


Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português