![]() |
|
|
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. |
||
Você está aqui: Cards de Python |
||
|
||
|
|
||
C# ::: LINQ ::: LINQ to Objects |
Como retornar o primeiro elemento de um array de strings em C# usando a função First() do LINQQuantidade de visualizações: 1468 vezes |
|
Nesta dica mostrarei um exemplo bem simples do uso do método First() do LINQ (Language-Integrated Query) do C# para retornar o primeiro elemento de um vetor de strings. É claro que este método funciona com qualquer coleção, mas um exemplo simples nos ajudará a entender melhor o seu funcionamento. Em outras dicas eu aprofundo o uso deste método. Vamos ao código então. Veja:
using System;
using System.Linq;
namespace Estudos {
class Principal {
static void Main(string[] args) {
// vamos construir um vetor de strings
string[] linguagens = {"Java", "Python", "PHP", "Ruby"};
// vamos obter o primeiro elemento do vetor
string primeira = linguagens.First();
// vamos mostrar o resultado
Console.WriteLine("A primeira linguagem é: {0}", primeira);
Console.WriteLine("Pressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: A primeira linguagem é: Java Fique atento ao fato de que o método First() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas. Veja o resultado ao chamarmos este método em um vetor vazio: System.InvalidOperationException HResult=0x80131509 Message=Sequence contains no elements Source=System.Linq StackTrace: at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11 |
C# ::: Dicas & Truques ::: Data e Hora |
Como exibir a data atual completa e as horas no formato curto em C# usando o sinalizador {0:f} da função Format() da classe StringQuantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como usar o sinalizador {0:f} da função Format() da classe String para exibir a data completa e as horas no formato curto, algo como "quarta-feira, 16 de março de 2022 11:19". Veja o código C# completo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// vamos obter a data e hora atual
DateTime dataHora = DateTime.Now;
// vamos exibir a data completa e as hora no formato curto
System.Console.WriteLine("Hoje é: {0:f}", dataHora);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Hoje é: quarta-feira, 16 de março de 2022 11:19 Veja que aqui eu mostrei a data e as horas diretamente na saída do programa. Podemos usar uma variável intermediária também. Veja:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// vamos obter a data e hora atual
DateTime dataHora = DateTime.Now;
// vamos guardar a data completa e as hora no formato curto
string dataHoraStr = String.Format("{0:f}", dataHora);
System.Console.WriteLine("Hoje é: " + dataHoraStr);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivadaQuantidade de visualizações: 19843 vezes |
|
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada. Comece criando a classe Pessoa (Pessoa.java):
public class Pessoa{
public String nome;
public int idade;
// construtor da classe
public Pessoa(String nome, int idade){
this.nome = nome;
this.idade = idade;
}
}
Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa:
public class Aluno extends Pessoa{
public String matricula;
// construtor
public Aluno(String nome, int idade,
String matricula){
// chama o construtor da superclasse
super(nome, idade);
this.matricula = matricula;
}
}
Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada:
public class Estudos{
public static void main(String args[]){
// cria um objeto da classe Aluno
Aluno aluno = new Aluno("Osmar J. Silva",
36, "AC434-23");
// Exibe o resultado
System.out.println("Nome: " + aluno.nome + "\n" +
"Idade: " + aluno.idade + "\n" +
"Matrícula: " + aluno.matricula);
}
}
Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse: // chama o construtor da superclasse super(nome, idade); Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse. |
Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Delphi para iniciantes: Como usar o laço de repetição for do DelphiQuantidade de visualizações: 23099 vezes |
|
O laço for do Delphi (linguagem Object Pascal) é usado quando queremos que um determinado bloco de instruções seja executado um determinado número de vezes. Na maioria das vezes a execução deste laço é controlada por uma variável de controle, que deve ser declarada antes de seu uso. Veja um laço for que contará de 0 até 10 (incluído):
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer; // variável de controle
begin
for i := 0 to 10 do
begin
ShowMessage(IntToStr(i)); // mostra a mensagem 10 vezes
end;
end;
Veja que o valor da variável de controle i começa em 0 e é incrementado a cada iteração até que seu valor seja igual a 10, o que faz com que a execução do laço seja interrompida. A variável de controle de um laço for deve ser do tipo ordinal (inteiro, caractere, Boolean, enumerações ou sub-faixas) e não pode ser alterada dentro do laço. Veja:
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer; // variável de controle
begin
// este laço for pretende exibir os números pares de 0 a 10
for i := 0 to 10 do
begin
ShowMessage(IntToStr(i));
i := i + 2; // vamos ter problemas aqui
end;
end;
Ao tentarmos compilar este código teremos o seguinte erro: [DCC Error] Unit1.pas(107): E2081 Assignment to FOR-Loop variable 'i' Este erro nos informa que não é possível atribuir valor a uma variável de controle dentro do laço for. Se quisermos que o laço "conte" de trás para frente, podemos substituir a palavra-chave to por downto. Veja:
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer; // variável de controle
begin
// este laço for conta de 10 até 0
for i := 10 downto 0 do
begin
ShowMessage(IntToStr(i));
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C# ::: Windows Forms ::: DataGridView |
Como ligar um DataGridView do C# Windows Forms à tabela de um banco de dados e efetuar inserção, alteração e remoção de registrosQuantidade de visualizações: 33432 vezes |
|
Uma das principais dúvidas que recebo em meu site é em relação aos passos necessários para associar um DataGridView com a tabela de um banco de dados e listar os dados. Em tempo de design este processo é relativamente fácil, visto que temos wizards que nos acompanham e fazem o trabalho mais pesado nos bastidores. No entanto, o cenário é completamente diferente quando temos que realizar tal tarefa via código. Espero que esta dica o deixe mais preparado para enfrentar tais situações. Para esta dica eu fiz uma conexão Visual C# 2005 + MySQL 5.0 usando ODBC (caso tenha dúvidas sobre isso, veja minha seção sobre C# + MySQL). Criei uma tabela MySQL chamada clientes contendo id, nome, idade, cidade e estado do cliente. Criei uma classe de conexão, inseri um DataGridView no formulário e coloquei as declarações abaixo na classe do formulário Form1.cs (fora dos métodos, para que os dados sejam globais na classe): // membros de instância de acesso global na classe // Dica: Se estiver usando SQL Server, troque "Odbc" por // "Sql" (Ex: SQLConnection, SqlCommand, SqlDataAdapter) // conexão com o banco de dados OdbcConnection conn = null; OdbcCommand cmd = null; OdbcDataAdapter adapter = null; DataSet ds = null; Em seguida colocamos o código abaixo no evento Click de um botão:
private void button4_Click(object sender, EventArgs e){
// Dica: Se estiver usando SQL Server, troque "Odbc"
// por "Sql" (Ex: SqlCommand, SqlDataAdapter, etc)
// obtém a conexão com o banco de dados
conn = ConexaoODBC.obterConexao();
if(conn != null){
// obtém todos os clientes cadastrados
cmd = new OdbcCommand("SELECT * FROM clientes",
conn);
adapter = new OdbcDataAdapter(cmd);
ds = new DataSet();
adapter.Fill(ds, "clientes_table");
// exibe os dados da tabela no DataGridView
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "clientes_table";
// fecha a conexão
ConexaoODBC.fecharConexao();
}
}
Aqui os dados já são listados no DataGridView. Porém, as alterações efetuadas no controle ainda não são repassadas para o banco de dados. Veja o código adicional no evento Click de outro botão:
private void button5_Click(object sender, EventArgs e){
// vamos salvar os dados do DataGridView para a tabela do
// banco de dados
// Dica: Se estiver usando SQL Server, troque "Odbc" por
// "Sql" (Ex: SqlCommandBuilder)
// obtém a conexão com o banco de dados
conn = ConexaoODBC.obterConexao();
if(conn != null){
OdbcCommandBuilder cmb = new OdbcCommandBuilder(adapter);
cmb.GetUpdateCommand();
adapter.Update(ds.Tables["clientes_table"]);
// fecha a conexão
ConexaoODBC.fecharConexao();
}
}
Pronto! Execute a aplicação, clique no primeiro botão para carregar os dados da tabela MySQL no DataGridView. Em seguida efetue algumas alterações, insira ou exclua linhas e clique no segundo botão. Feche a aplicação e abra-a novamente e se certifique de que os registros foram atualizados, inseridos ou removidos com sucesso. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





