![]() |
|
|
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. |
||
Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial Delphi para iniciantes: Como usar o laço while do DelphiQuantidade de visualizações: 26863 vezes |
O laço while do Delphi é usado quando queremos que um bloco de instruções seja executado enquanto uma condição for satisfeita. Assim, todas as iterações do laço serão resultados de um teste condicional. Veja um exemplo:
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer; // variável de controle
begin
// este laço contará de 0 até 10
i := 0;
while i <= 10 do
begin
ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes
Inc(i); // vamos incrementar a variável de controle
end;
end;
Aqui nós temos uma variável i que tem seu valor inicial definido como 0. Ao entrarmos no laço while nós verificamos se o valor desta variável é menor ou igual a 10. Se este teste for verdadeiro o laço é executado pela primeira vez. Dentro do laço nós aumentamos o valor da variável de controle em 1. Isso é feito de forma a evitar um laço infinito. O laço então prossegue para a próxima iteração, que ocorre somente após a verificação do resultado do teste condicional. Isso nos mostra que um laço while pode nunca ser executado (casos nos quais o teste de continuidade do laço falha já na primeira iteração). Veja agora um exemplo no qual usamos um laço while para contar de 10 até 0:
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer; // variável de controle
begin
// este laço contará de 10 até 0
i := 10;
while i >= 0 do
begin
ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes
Dec(i); // vamos decrementar a variável de controle
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
MySQL ::: Dicas & Truques ::: Joins (Junções) |
Como usar joins no MySQLQuantidade de visualizações: 11598 vezes |
|
As junções (joins) são ferramentas presentes na maioria dos bancos de dados que suportam SQL e são usadas quando precisamos recuperar dados de uma ou mais tabelas com base em suas relações lógicas. Desta forma, é possível combinar os registros de tais tabelas de forma a construir um "super-registro", que nos permitirá exibir relatórios mais elaborados. Para o bom entendimento de junções, vamos considerar duas tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x N. Um filme possui um gênero, enquanto um gênero pode abranger vários filmes. Vamos começar criando estas duas tabelas (comece com a tabela generos, já que esta não depende da tabela de filmes): Comando DLL CREATE TABLE para a tabela generos: CREATE TABLE generos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; Veja agora o comando SQL para a criação da tabela de filmes: Comando DLL CREATE TABLE para a tabela filmes:
CREATE TABLE filmes(
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
titulo VARCHAR(45) NOT NULL,
genero INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(id),
CONSTRAINT fk_filmes_generos FOREIGN KEY fk_filmes_generos(id)
REFERENCES generos(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = InnoDB;
Veja que a tabela filmes contém uma chave estrangeira referenciando a chave primária da tabela generos. Isso nos permite "atrelar" um filme ao seu gênero. Vá em frente e insira alguns dados em ambas as tabelas. Primeiro cadastre alguns gêneros e em seguida alguns filmes. Vejamos agora a importância dos joins. Observe o resultado de um comando DML SELECT na tabela filmes: SELECT * FROM filmes; id titulo genero 1 EFEITO BORBOLETA 6 2 O PENTELHO 1 3 VIAGEM MALDITA 3 Nesta query o gênero é retornado como um valor inteiro, ou seja, o valor do campo id da tabela generos. Em muitos casos este não é o comportamento que queremos. Em vez do id do gênero nós gostaríamos de exibir seu nome. Isso pode ser conseguido da seguinte forma: SELECT filmes.id, filmes.titulo, generos.nome FROM filmes, generos WHERE filmes.genero = generos.id; id titulo genero 1 EFEITO BORBOLETA FICÇÃO 2 O PENTELHO COMÉDIA 3 VIAGEM MALDITA TERROR Nesta query eu usei o nome completo da tabela antes do nome dos campos a serem retornados. Na prática, é comum darmos apelidos às tabelas. Veja: SELECT f.id, f.titulo, g.nome FROM filmes f, generos g WHERE f.genero = g.id; Neste exemplo, não usamos as palavras-chaves INNER JOIN, LEFT JOIN, RIGHT JOIN, etc. A junção está "escondida" na cláusula SELECT. Esta técnica é conhecida como "junção implícita" ou "implicit join". Veja como o mesmo resultado pode ser obtido usando a junção INNER JOIN: SELECT f.id, f.titulo, g.nome FROM filmes f INNER JOIN generos g ON f.genero = g.id; Veja minhas outras dicas sobre junções para aprender mais sobre INNER JOIN, LEFT JOIN, RIGHT JOIN, OUTER JOIN, FULL JOIN, etc. |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como retornar uma referência ao primeiro elemento de um vector C++ usando a função front()Quantidade de visualizações: 7063 vezes |
O primeiro elemento em um contêiner STL vector do C++ pode ser acessado por meio da função front(). Como esta função é sobrecarregada, temos duas opções:reference front(); const_reference front() const;
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[]){
// um vector vazio que conterá inteiros
vector<int> valores;
// vamos inserir três elementos
valores.push_back(54);
valores.push_back(13);
valores.push_back(87);
// vamos obter o valor do primeiro elemento do vector
// Note que front() pode ser usada dos dois lados
// de uma operação de atribuição
int valor = valores.front();
cout << "Primeiro elemento: " << valor << endl;
// vamos alterar o valor do primeiro elemento
valores.front() = 102;
// vamos testar o resultado
cout << "Primeiro elemento: " << valores.front() << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Note que aqui nós usamos: int valor = valores.front(); int& valor = valores.front(); valor = 102; Observe agora o seguinte trecho de código: int valor = valores.front(); // o primeiro elemento é 54 valores.front() = 20; cout << "Primeiro elemento: " << valor << endl; Aqui nós acessamos o valor do primeiro elemento, guardarmos-o na variável valor e atribuímos o valor 20 à valores.front(). Porém, ao imprimirmos a variável valor o seu conteúdo ainda é 54. De fato, o que gostaríamos é que uma alteração em valores.front() afetasse também a variável valor. Assim: int& valor = valores.front(); // o primeiro elemento é 54 valores.front() = 20; cout << "Primeiro elemento: " << valor << endl; const int& valor = valores.front(); // o primeiro elemento é 54 valores.front() = 20; valor = 300; // esta linha não compila cout << "Primeiro elemento: " << valor << endl; Agora o efeito que queríamos é alcançado. Alterações em valores.front() afetam a variável valor, mas, não podemos alterar valor diretamente, já que esta variável é uma referência constante agora. |
Python ::: wxPython ::: Janelas, Diálogos, Formulários e Painéis do wxPython |
Como definir o ícone para uma janela wx.Frame do wxPythonQuantidade de visualizações: 7679 vezes |
|
Nesta dica mostrarei como usar a função SetIcon() da classe wx.TopLevelWindow para definir o ícone da janela de nossa aplicação wxPython. Observe que, se o ícone não for encontrado, uma mensagem de erro será exibida. Veja o código completo para o exemplo:
# vamos importar a biblioteca Wx
import wx
# vamos criar uma classe que herda de wxFrame
class MinhaJanela(wx.Frame):
def __init__(self):
# chamamos o construtor da super classe
wx.Frame.__init__(self, None, -1,
"Cadastro de Clientes", size=(350, 200))
# Define o ícone para a janela
self.SetIcon(wx.Icon("icone.ico", wx.BITMAP_TYPE_ICO))
if __name__ == "__main__":
app = wx.App()
janela = MinhaJanela()
janela.Show(True)
app.MainLoop()
|
Nossas 20 dicas & truques de programação mais populares |
|
VB.NET - Como usar o laço While em VB.NET CSS - Como definir uma imagem de fundo para um botão HTML usando a propriedade background-image do CSS |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Exercícios Resolvidos de Java - Contando de 1 até 20 e formatando a saída usando System.out.printf() |
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 |





