![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de um arquivo um caractere de cada vez em PHP usando a função fgetc()Quantidade de visualizações: 8250 vezes |
|
A função fgetc() da linguagem PHP é usada quando queremos ler um caractere de cada vez a partir de um arquivo. Note que esta função é um pouco lenta, e deve ser usada somente com arquivos pequenos. A leitura é interrompida quando a função fgetc() retorna um valor false. Veja um código PHP completo demonstrando o seu uso:
<?php
$arquivo = fopen("testes.txt", "r");
if(!$arquivo){
echo "Não foi possível abrir o arquivo";
}
else{
while(false !== ($char = fgetc($arquivo))){
echo $char;
}
}
?>
|
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivoQuantidade de visualizações: 1261 vezes |
|
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma recursiva. Em outra dica desta seção que mostrei como fazer a mesma travessia de forma iterativa e usando uma pilha para backtracking (retrocesso). Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo: ![]() Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas. Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n). Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
Veja agora o código completo para o exemplo. Note que estamos usando recursividade nesta dica. Observe também o uso de uma ArrayList para guardar os valores da árvore binária na ordem depth-first. Eis o código:
package estudos;
import java.util.ArrayList;
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar os nós da árvore
No cinco = new No(5); // será a raiz da árvore
No quatro = new No(4);
No nove = new No(9);
No dois = new No(2);
No tres = new No(3);
No doze = new No(12);
// vamos fazer a ligação entre os nós
cinco.esquerdo = quatro;
cinco.direito = nove;
quatro.esquerdo = dois;
nove.esquerdo = tres;
nove.direito = doze;
// agora já podemos efetuar o percurso depth-first
ArrayList<Integer> valores = new ArrayList<>();
percursoDepthFirst(valores, cinco);
System.out.println("Os valores na ordem Depth-First são: " + valores);
}
public static void percursoDepthFirst(ArrayList<Integer> valores, No no){
if(no != null){
// vamos adicionar o valor deste nó no ArrayList
valores.add(no.valor);
// passamos para o filho esquerdo
percursoDepthFirst(valores, no.esquerdo);
// passamos para o filho direito
percursoDepthFirst(valores, no.direito);
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12] Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First. |
Delphi ::: Imagens, Gráficos e Cores ::: TBitmap (A classe TBitmap) |
Computação gráfica em Delphi - Como usar a classe TBitmap do DelphiQuantidade de visualizações: 17177 vezes |
|
A classe TBitmap encapsula um bitmap Windows (HBITMAP, um handle para um bitmap), incluindo sua paleta (HPALETTE, um handle para uma paleta de cores). Esta classe herda de TGraphic e é usada para criar, manipular (redimensionar, rolar, rotacionar, pintar, etc) e armazenar imagens na memória e como arquivos em disco. A classe TBitmap contém muitas propriedades e métodos úteis. Entre seus métodos podemos citar LoadFromFile(), usado para carregar uma imagem bitmap a partir do disco e guardá-la em memória como um objeto TBitmap. Veja o trecho de código abaixo:
procedure TForm2.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos carregar a imagem e guardá-la no bitmap
bmp.LoadFromFile('foto.bmp');
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form2.Canvas.Draw(0, 0, bmp);
// vamos liberar o bitmap
bmp.Free;
end;
Aqui nós carregamos o bitmap foto.bmp e o desenhamos na superfície do formulário usando o método Draw() do Canvas do formulário. É possível também redimensionar o bitmap ao desenhá-lo no formulário. Veja este novo trecho de código:
procedure TForm2.Button1Click(Sender: TObject);
var
bmp: TBitmap;
retang: TRect; // um objeto TRect
begin
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos carregar a imagem e guardá-la no bitmap
bmp.LoadFromFile('foto.bmp');
// vamos redimensionar o bitmap na memória de
// acordo com o retângulo abaixo
retang.Top := 0;
retang.Left := 0;
retang.Right := 200;
retang.Bottom := 150;
// vamos desenhar o bitmap usando o método
// StretchDraw da classe TCanvas
Form2.Canvas.StretchDraw(retang, bmp);
// vamos liberar o bitmap
bmp.Free;
end;
Aqui nós usamos um objeto do registro (record) TRect para criar um retângulo especificando o tamanho do bitmap e fornecemos tal retângulo, juntamente com o bitmap, para o método StretchDraw() da classe TCanvas. Este método redimensiona a imagem antes de desenhá-la na superfície do formulário. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Dicas & Truques ::: Formulários |
Como obter o valor do item selecionado em um element HTML select (menu de lista) de seleção única usando PHPQuantidade de visualizações: 22146 vezes |
|
Os controles do tipo combobox ou select da linguagem HTML são úteis quando queremos fornecer uma lista de itens a partir da qual o usuário poderá selecionar apenas um ítem (ou vários itens, no caso de uma lista de seleção múltipla. Nesta dica mostrarei como usar PHP para obter o item que o usuário selecionou. Veja o código completo abaixo. Vamos começar com a página HTML que contém o elemento <select>:
<form name="cadastro" method="post" action="testes.php">
<b>Escolha sua linguagem favorita:</b><br>
<select name="linguagem">
<option value="Java" selected>Java</option>
<option value="C++">C++</option>
<option value="Python">Python</option>
<option value="Delphi">Delphi</option>
</select>
<input type="submit" value="Enviar!">
</form>
Agora, para obter o valor do item selecionado podemos usar o seguinte código PHP: <? // Obtém o valor selecionado $selecionada = $_POST["linguagem"]; // Exibe o resultado echo "Sua linguagem favorita é: " . $selecionada; ?> Quando você abrir a página HTML, selecionar um item e clicar o botão Enviar, você verá o seguinte resultado na página PHP: Sua linguagem favorita é: Delphi Esta dica foi revisada no PHP 8. |
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 |
|
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 |





