![]() |
|
|
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 Hidrostática |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um arquivo existe usando a linguagem CQuantidade de visualizações: 14730 vezes |
Muitas vezes precisamos saber se um determinado arquivo existe antes de efetuarmos alguma operação. O trecho de código abaixo mostra como você pode implementar uma função file_exists() em C que pode ser usada em seus programas. O segredo aqui é tentar abrir o arquivo passado como argumento para a função. Se o arquivo for aberto com sucesso, sabemos que ele existe e a função retorna o valor 1 (true), do contrário retorna 0 (false):
#include <stdio.h>
#include <stdlib.h>
/*
Implementação de uma função file_exists() em C. Se
o arquivo existir o valor 1 (true) será retornado. Caso
contrário a função retornará 0 (false).
*/
int file_exists(const char *filename)
{
FILE *arquivo;
if(arquivo = fopen(filename, "r"))
{
fclose(arquivo);
return 1;
}
return 0;
}
int main(int argc, char *argv[])
{
// testa se o arquivo existe
if(file_exists("c:\\testes.txt")){
printf("O arquivo existe no local especificado.\n");
}
else
printf("O arquivo NAO existe no local especificado.\n");
printf("\n\n");
system("PAUSE");
return 0;
}
|
C# ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Tutorial C# para iniciantes - Como escrever seu primeiro método ou função em C#Quantidade de visualizações: 2589 vezes |
|
À medida que estamos desenvolvendo nossos códigos, percebemos que estes podem ser divididos de acordo com suas funcionalidades. Ao efetuar esta divisão, estamos na verdade criando blocos de códigos que executam uma determinada tarefa. E, descobrimos que tais blocos de códigos podem ser reaproveitados com frequencia em um mesmo programa. Assim, ao mecanismo usado para disparar a execução destes blocos de códigos é dado o nome de método (ou função em linguagens tais como C e C++). Um método, em sua forma mais simples, é apenas um conjunto de instruções que podem ser chamadas a partir de locais estratégicos de um programa. Veja um exemplo:
// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
Console.WriteLine("Sou um método");
}
Este método apenas exibe o texto "Sou um método". Veja o uso das chaves { e } para delimitar a área de atuação do método (o corpo do método). A palavra-chave void indica que este método não retorna nenhum valor ao finalizar sua execução enquanto a palavra-chave static é melhor explicada na nossa seção sobre modificadores em C#. Todos os métodos em C# possuem parênteses, os quais servem como marcadores para a lista de parâmetros do método. Parênteses vazios indicam que o método não possui parâmetros.[br][br] Veja agora um trecho de código completo exemplificando a chamada ao método recém-criado:
// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
Console.WriteLine("Sou um método");
}
static void Main(string[] args){
// efetua uma chamada ao método
metodo();
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
|
PHP ::: Fundamentos da Linguagem ::: Tipos de Dados |
PHP para iniciantes - Como usar o tipo de dados float do PHPQuantidade de visualizações: 13319 vezes |
|
Números de ponto-flutuante, ou float (também conhecido com double ou real) representam números com casas decimais. Assim como o tipo integer, a faixa de limite deste tipo depende da arquitetura da máquina na qual o PHP está sendo executado. A faixa de números de ponto-flutuante em PHP equivale à faixa do tipo de dados double de seu compilador C. Geralmente esta faixa está entre 1.7E-308 e 1.7E+308 com 15 dígitos de precisão. Se precisarmos de uma precisão ainda maior, podemos usar as extensões BC e GMP. O PHP reconhece números de ponto-flutuante escritos de duas formas diferentes. Eis a que usamos mais comumente: 3.14 0.017 -7.1 E a forma usando notação científica: 0.314E1 // 0.314*101, ou 3.14 17.0E-3 // 17.0*10-3, ou 0.017 Valores de ponto-flutuante são apenas representações aproximadas de números. Por exemplo, em muitos sistemas, 3,5 é na verdade representado como 3,4999999999. Isso quer dizer que devemos ter cuidado ao comparar valores de ponto-flutuante usando ==. O mais correto é comparar usando várias casas decimais:
if(int($a * 1000) == int($b * 1000)){
// comparação baseada em três casas decimais
}
Se quisermos verificar se uma variável é do tipo float, podemos usar as funções is_float() ou is_real(). Veja:
<?
$valor = 0.6;
if(is_float($valor)){
echo 'A variável $valor é do tipo float';
}
?>
|
Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial Delphi para iniciantes: Como usar o laço while do DelphiQuantidade de visualizações: 27014 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. |
Flutter ::: Material Library - Biblioteca Material ::: TextField |
Como habilitar ou desabilitar um botão ao digitar em um widget TextField do FlutterQuantidade de visualizações: 4231 vezes |
|
Nesta dica eu mostro como podemos habilitar ou desabilitar um botão ElevatedButton dependendo do conteúdo de um TextField. Para isso nós vamos usar a propriedade onChanged da classe TextField para desabilitar o botão quando a caixa de texto estiver vazia e habilitá-lo em caso contrário. O truque aqui é passar um valor null para a propriedade onPressed do ElevatedButton. Só isso já basta para que o botão fique desabilitado. Veja o código completo para o exemplo:
import 'package:flutter/material.dart';
// método principal do Dart, que inicia a aplicação
void main() {
runApp(MeuApp());
}
class MeuApp extends StatelessWidget {
// Este widget é a raiz da aplicação Flutter
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Controle TextField',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: TelaInicial(),
);
}
}
// Vamos construir a view e retornar para a raiz da aplicação
class TelaInicial extends StatefulWidget {
TelaInicial({Key key}) : super(key: key);
@override
_TelaInicialState createState() => _TelaInicialState();
}
class _TelaInicialState extends State<TelaInicial> {
bool btnDesabilitado = true; // vamos desabilitar o botão
@override
Widget build(BuildContext context) {
// vamos criar uma caixa de texto chamada nomeTxt
final nomeTxt = TextField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0)),
hintText: 'Digite seu nome'
),
// Vamos detectar a mudança de conteúdo do TextField
onChanged: (String value) async {
// setState() força a atualização da janela
if(value.isEmpty) { // o campo de texto não está vazio
setState(() {
btnDesabilitado = true; // desabilita o botão
});
}
else{
setState(() {
btnDesabilitado = false; // habilita o botão
});
}
}
);
final btnNome = ElevatedButton(
onPressed: btnDesabilitado ? null : (){},
child: Text('Clique Aqui'),
);
return Scaffold(
appBar: AppBar(
title: Text("O Widget TextField"),
),
body: Center(
child: Container(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
children: <Widget>[
// a caixa de texto TextField vai aqui
nomeTxt,
// o botão vai aqui
btnNome,
],
),
),
),
),
);
}
}
|
Veja mais Dicas e truques de Flutter |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




