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 Apenas R$ 32,90
C# ::: Threads ::: Thread

Como usar a classe Thread para criar threads em seus programas C#

Quantidade de visualizações: 12084 vezes
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:

System.Object
  System.Runtime.ConstrainedExecution.CriticalFinalizerObject
    System.Threading.Thread


Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread.

Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional.

O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor.

Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho:

class Program{
  static void Main(string[] args){
    // using using System.Threading;

    // vamos criar uma nova instância da clase Thread
    // e fornecer o método que será executado
    Thread thread = new Thread(contar);
     
    // vamos agendar a thread para futura execução
    thread.Start();

    // agora vamos contar na thread principal
    for (int i = 0; i <= 20; i++){
      Console.Write("#" + Thread.CurrentThread.GetHashCode() 
        + ": " + i + ", ");
    }

    Console.Write("\n\nPressione uma tecla para sair...");
    Console.ReadKey();
  }

  // método que será chamado pela thread
  static void contar(){
    for (int i = 0; i <= 20; i++){
      Console.Write("#" + Thread.CurrentThread.GetHashCode() 
        + ": " + i + ", ");
    }
  }
}

Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada.


PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados)

Como criar uma base de dados no PostgreSQL usando o comando DDL CREATE DATABASE

Quantidade de visualizações: 4845 vezes
Quando queremos criar uma nova base de dados no PostgreSQL, é comum usarmos o pgAdmin ou a ferramenta de linha de comando createdb. No entanto, há situações nas quais precisamos criar uma nova base de dados usando instruções SQL. Para isso podemos usar o comando DDL CREATE DATABASE. Veja sua sintáxe para o PostgreSQL:

CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] user_name ]
           [ TEMPLATE [=] template ]
           [ ENCODING [=] encoding ]
           [ LC_COLLATE [=] lc_collate ]
           [ LC_CTYPE [=] lc_ctype ]
           [ TABLESPACE [=] tablespace_name ]
           [ CONNECTION LIMIT [=] connlimit ] ]
Note que o único parâmetro exigido é o nome da base de dados. Todos os demais parâmetros são opcionais. Assim, se quisermos criar uma base de dados chamada "estudos", só precisamos disparar o seguinte comando:

CREATE DATABASE estudos;

Este comando pode ser disparado via linha de comando SQL Shell (psql), na janela de Query do pgAdmin ou a partir de uma linguagem de programação. Se uma mensagem parecida com:

Query returned successfully with no result in 7674 ms.

for exibida, é sinal de que a base de dados foi criada com sucesso.

Quando tentamos criar uma base de dados com um nome já existente, o PostgreSQL abortará a operação e exibirá a seguinte mensagem de erro:

ERRO:  banco de dados "estudos" já existe

********** Error **********

ERRO: banco de dados "estudos" já existe
SQL state: 42P04
É importante observar que, quando informamos apenas o nome da base de dados para o comando CREATE DATABASE, as demais opções serão herdadas a partir do template padrão (template1) e das configurações padrões do servidor para a máquina na qual foi instalado. Assim, se verificarmos, no pgAdmin, a base de dados que criamos, encontraremos as seguintes configurações:

OWNER = postgres

ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'Portuguese_Brazil.1252'
LC_CTYPE = 'Portuguese_Brazil.1252'
CONNECTION LIMIT = -1;

Em outras dicas desta seção você verá como personalizar cada um destes parâmetros no comando CREATE DATABASE.


AutoLISP ::: Dicas & Truques ::: Linha, Linhas, Comando LINE

Como desenhar uma linha no AutoCAD usando AutoLISP - Dois pontos geométricos e o comando LINE

Quantidade de visualizações: 621 vezes
Nesta dica mostrarei como desenhar linhas no AutoCAD usando AutoLISP e o comando LINE. Para isso nós vamos definir dois pontos geométricos p e q. Para deixar o código simples eu defini os pontos (coordenadas x, y, z) usando listas.

Posteriormente você poderá pedir para o usuário clicar na área de desenho (GA) e obter as coordenadas usando a função getpoint() da AutoLISP.

Veja o código AutoLISP completo para o exemplo:

; Este programa é usado para desenhar uma
; linha a partir de dois pontos definidos no
; código. Opcionalmente você poderá pedir
; para o usuário informar as coordenadas dos
; dois pontos usando a função getpoint()
(defun desenhar-linha()
  ; vamos definir as coordenadas do
  ; primeiro ponto
  (setq p (list 300 250 0)) 
  
  ; vamos definir as coordenadas do
  ; segundo ponto
  (setq q (list 1900 650 0))

  ; Agora chamamos o comando LINE passando os
  ; dois pontos geométricos
  (command "LINE" p q "")
)

Dica: Para carregar seu código AutoLISP no AutoCAD, digite (LOAD "C:\\codigos_autolisp\\desenho.lsp"), com duas barras invertidas na separação dos diretórios e nome do arquivo, na janela de comandos e depois chame a função desejada digitando (DESENHAR-LINHA), por exemplo. Opcionalmente você pode ir até o menu Manage e escolher a opção Load Application. Em seguida selecione o arquivo desejado e clique o botão Load.


Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Como usar a busca binária em Python - Pesquisa binária na linguagem Python

Quantidade de visualizações: 716 vezes
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados.

O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado).

Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade.

Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas.

Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2.

Vamos agora ver como podemos codificar a busca binária em Python. Veja o código a seguir:

# função principal do programa
def main():
  # vamos criar uma lista ordenada de inteiros
  valores = [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
  print("Os valores da lista são: {0}".format(valores))

  # vamos pedir o item a ser pesquisado
  numero = int(input("Informe o número a ser pesquisado: "))

  # agora vamos pesquisar o número no array usando a pesquisa
  # binária
  # a variável esquerda aponta para o primeiro elemento do vetor
  esquerda = 0
  # a variável direita aponta para o último elemento do vetor
  direita = len(valores) - 1
  # para indicar se o valor foi encontrado
  encontrado = False

  # enquanto houver mais de um elemento a ser comparado
  while esquerda <= direita:
    # obtemos o elemento na metade da lista
    meio = (esquerda + direita) // 2
    
    # fazemos a comparação
    if numero == valores[meio]:
      print("O número foi encontrado no índice {0}".format(
        meio))
      encontrado = True
      break # sai do laço  

    # o item atual é maior que o valor pesquisado?
    if valores[meio] > numero:
      direita = meio - 1
    # o item atual é menor que o valor pesquisado?
    else:
      esquerda = meio + 1

  # o valor foi encontrado?
  if not encontrado:
    print("O valor pesquisado não foi encontrado")  

if __name__== "__main__":
  main()

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

Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
Informe o número a ser pesquisado: 9
O número foi encontrado no índice 4


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

Como ordenar um array em PHP usando a função sort() - PHP para iniciantes

Quantidade de visualizações: 9450 vezes
Em várias situações nós precisamos ordenar os elementos de um vetor de inteiros, de caracteres, de strings, etc. Para isso nós podemos usar a função sort() da linguagem PHP.

Veja o código a seguir:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  // um vetor com quatro elementos
  $pessoas = array("Kelly", "Alice", "Mônica", "Cíntia"); 
  // mostra os elementos sem ordenação
  echo "Sem ordenar: ";
  foreach($pessoas as $pessoa){
    echo $pessoa . ", ";
  }

  // vamos ordenar o vetor em ordem alfabética
  // crescente
  sort($pessoas); 

  // mostra os elementos ordenados
  echo "<br><br>Ordenados: ";
  foreach($pessoas as $pessoa){
    echo $pessoa . ", ";
  }   
?>
 
</body>
</html>

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

Sem ordenar: Kelly, Alice, Mônica, Cíntia
Ordenados: Alice, Cíntia, Kelly, Mônica

Note que a função sort() requer o vetor (array) a ser ordenado e uma flag opcional indicando como a ordenação deverá ser feita. Esta flag pode ser um dos seguintes valores:

SORT_REGULAR - padrão, compara os itens normalmente (não modifica o tipo).
SORT_NUMERIC - compara os items numericamente.
SORT_STRING - compara os itens como strings.
SORT_LOCALE_STRING - compara os itens como strings, utilizando o locale atual. Utiliza o locale que pode ser modificado com setlocale().
SORT_NATURAL - compara os itens como strings utilizando "ordenação natural" tipo natsort().
SORT_FLAG_CASE - pode ser combinado (bitwise OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem considerar maiúsculas e minúsculas.


C ::: Dicas & Truques ::: Strings e Caracteres

Como acessar os caracteres de uma string individualmente usando índices na linguagem C

Quantidade de visualizações: 9669 vezes
Como em C uma string é vetor (array) de caracteres, tais caracteres podem ser acessados por meio de seu índice no vetor (um valor inteiro começando em 0). Este trecho de código mostra como esta tarefa pode ser realizada:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char *argv[]){
  char palavra[] = "Arquivo";
 
  // vamos acessar o primeiro caractere da string
  char letra = palavra[0];
  printf("O primeiro caractere e %c\n", letra);
 
  // vamos acessar o quinto caractere da string
  letra = palavra[4];
  printf("O quinto caractere e %c\n", letra);
 
  puts("\n\n");
  system("PAUSE");
  return 0;
}

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

O primeiro caractere e A
O quinto caractere e i


C# ::: Coleções (Collections) ::: List<T>

Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-la

Quantidade de visualizações: 7457 vezes
O objeto List do C# possui uma propriedade Capacity que nos retorna a quantidade de elementos que podem ser inseridos na lista antes que ela tenha que redimensionar o seu array interno. Quando o tamanho da lista excede essa capacidade, automaticamente o array interno é redimensionado de forma a acomodar esses novos itens.

Nessa dica eu mostro como podemos retornar o valor dessa propriedade. Veja:

using System;
using System.Collections.Generic;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      List<int> valores = new List<int>();

      // insere valores na lista
      valores.Add(4);
      valores.Add(2);
      valores.Add(87);
      valores.Add(23);
      valores.Add(100);

      // obtém a capacidade da lista
      // NOTA: Capacity é o número de elementos que a lista
      // pode armazenar antes de ser preciso redimensioná-la.
      int capac = valores.Capacity;
      Console.WriteLine("A capacidade da lista é de "
         + capac + " elementos.");

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

A capacidade da lista é de 8 elementos.


C++ ::: C++ para Engenharia ::: Física - Mecânica

Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em C++

Quantidade de visualizações: 380 vezes
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados.

A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é:

\[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \]

Onde:

Epg ? energia potencial gravitacional (em joule, J).

m ? massa do corpo (em kg).

g ? aceleração da gravidade (m/s2).

h ? altura do objeto em relação ao chão (em metros).

Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula.

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo?

Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C++ completo para o cálculo:

#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  double gravidade = 9.80665;
  // massa do corpo
  double massa = 2; // em kg
  // altura do corpo em relação ao chão
  double altura = 1.5; // em metros
  
  // vamos calcular a energia potencial gravitacional
  double epg = massa * gravidade * altura;
  
  // mostramos o resultado
  cout << "A Energia Potencial Gravitacional é: " << epg << "J";
		
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A Energia Potencial Gravitacional é: 29.419950J


PHP ::: Dicas & Truques ::: Matemática e Estatística

PHP para matemática - Como arredondar valores fracionários usando a função round() do PHP

Quantidade de visualizações: 8938 vezes
A função round() do PHP pode ser usada quando queremos arredondar valores fracionários para o inteiro mais próximo. Se a parte fracionária for menor que 0.5, o resultado será o menor número inteiro mais próximo do valor sendo arredondado. Se a parte fracionária for igual ou maior que 0.5, então o resultado será o maior número inteiro mais próximo do valor sendo arredondado.

Desta forma, se aplicarmos esta função ao valor 6.4, o resultado será 6. Veja:

<?
  // valor a ser arredondado
  $valor = 6.4;
  
  // vamos arredondar usando a função round()
  $valor2 = round($valor);

  // vamos exibir o resultado
  echo "O valor " . $valor . " arredondado usando " .
    " round() resulta em: " . $valor2;
?>

Ao executarmos este código teremos o seguinte resultado:

O valor 6.4 arredondado usando round() resulta em: 6.

Veja agora o resultado de se aplicar a função round() ao valor 7.5:

<?
  // valor a ser arredondado
  $valor = 7.5;
  
  // vamos arredondar usando a função round()
  $valor2 = round($valor);

  // vamos exibir o resultado
  echo "O valor " . $valor . " arredondado usando " .
    " round() resulta em: " . $valor2;
?>

Agora o resultado será:

O valor 7.5 arredondado usando round() resulta em: 8.


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todas as ocorrências de uma substring em uma string Delphi usando a função ReplaceStr()

Quantidade de visualizações: 16744 vezes
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string. Em Delphi isso pode ser feito com o auxílio da função ReplaceStr(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  frase: string;
begin
  frase := 'PHP? Sim, eu gosto muito de PHP';

  // vamos substituir todas as ocorrências de "PHP" por "Delphi'
  frase := ReplaceStr(frase, 'PHP', 'Delphi');

  // vamos exibir o resultado
  ShowMessage(frase);
end;

Lembre-se de que esta função diferencia maiúsculas e minúsculas.

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.

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