![]() |
|
|
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 Cards de Hidrologia |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como passar vetores e matrizes (arrays) para seus métodos JavaQuantidade de visualizações: 16830 vezes |
|
Nesta dica mostrarei como você pode passar um array (vetor ou matriz) para seus métodos Java. Observe que um array é um objeto Java, e objetos são sempre passados por referência. Assim, as alterações feitas no vetor ou matriz dentro do método afetarão o array original. Veja o código completo para o exemplo:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
int[] valores = {43, 6, 17, 23, 8};
// Exibe os valores antes de passar o
// array para o método multiplicar
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + ", ");
}
System.out.println();
// fornece o array para o método multiplicar
multiplicar(valores, 2);
// Exibe os valores depois de passar o
// array para o método multiplicar
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + ", ");
}
System.exit(0);
}
public static void multiplicar(int a[], int num){
for(int i = 0; i < a.length; i++){
a[i] = a[i] * num;
}
}
}
Ao executar este código nós teremos o seguinte resultado: 43, 6, 17, 23, 8, 86, 12, 34, 46, 16, |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 1305 vezes |
|
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em Python:
# função principal do programa
def main():
# vamos ler três números do usuário
a = int(input("Primeiro número: "))
b = int(input("Segundo número: "))
c = int(input("Terceiro número: "))
# os números estão em ordem crescente?
if a < b and b < c:
print("Ordem Crescente")
# os números estão em ordem decrescente?
elif a > b and b > c:
print("Ordem Decrescente")
# sem ordem definida
else:
print("Sem ordem definida")
if __name__== "__main__":
main()
|
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para leitura em Ruby sem a necessidade de métodos acessores usando a função attr_readerQuantidade de visualizações: 7436 vezes |
|
Por padrão, variáveis de instância em Ruby só podem ser acessadas usando métodos acessores, ou seja, uma variável de instância @nome deve ser lida usando um método obter_nome. É possível dispensar o uso de métodos acessores empregando o método attr_reader nos nomes das variáveis que poderão ser acessadas, para leitura, é claro. Veja um exemplo:
# Definição da classe Cliente
class Cliente
attr_reader :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
def obter_nome
@nome
end
def obter_idade
@idade
end
end
# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)
# Acessa as variáveis de instância sem a necessidade de
# métodos acessórios
puts cliente.nome
puts cliente.idade
Sem o uso do método attr_reader, a linha: puts cliente.nome causaria o seguinte erro: teste.rb:25: undefined method `nome' for #<Cliente:0x27f540c @nome="Osmar J. S ilva", @idade=35> (NoMethodError) |
Flutter ::: Material Library - Biblioteca Material ::: TextField |
Como habilitar ou desabilitar um botão ao digitar em um widget TextField do FlutterQuantidade de visualizações: 4194 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,
],
),
),
),
),
);
}
}
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional |
Exercício Resolvido de Python - Programação Linear em Python - Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metrosQuantidade de visualizações: 1143 vezes |
|
Pergunta/Tarefa: Este exercício de Python aborda o uso da biblioteca PuLP para resolver um problema de Pesquisa Operacional usando Programação Linear. Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metros quadrados de casca de árvore, dispondo de carvalho e pinheiro, sendo que o carvalho gera 40kg de lenha, 150kg de madeira e 3 metros quadrados de casca aproveitável; o pinheiro 100kg de lenha, 60kg de madeira e 8 metros quadrados de casca aproveitável. Formule o problema, de modo a minimizar os custos, sabendo que cada carvalho custa R$ 1500,00 para a empresa e cada pinheiro R$ 1200,00. Em seguida use a API de Programação Linear do PuLP para resolver o problema e mostrar a melhor solução. Sua saída deverá ser parecida com: x: 11.111111 y: 5.5555556 Antes de passarmos para o código Python é importante entendermos e fazermos a modelagem do problema. Neste exercício busca-se encontrar o custo mínimo. Assim, a nossa função objetivo será dada pela combinação dos preços do carvalho e do pinheiro. Veja: Zmin = 1500x + 1200y Aqui nós definimos a variável x para o carvalho e a variável y para o pinheiro. Agora que já temos a função Z, o próximo passo é analizarmos as restrições. Note que a empresa precisa de 1000kg de lenha. O carvalho gera 40kg de lenha, enquanto o pinheiro gera 100kg. Então nossa primeira restrição é: R1 = 40x + 100y >= 1000 Para a segunda restrição nós temos que a empresa precisa de 2000kg de madeira. O carvalho gera 150kg de madeira, enquanto o pinheiro gera 60kg. Assim, nossa segunda restrição é: R2 = 150x + 60y >= 2000 Finalmente, para a terceira restrição, sabemos que a empresa necessita de 50 metros quadrados de casca de árvore. O carvalho gera 3 metros quadrados de casca aproveitável, enquanto o pinheiro gera 8 metros quadradros. Então a terceira restrição é: R3 = 3x + 8y >= 50 As restrições 4 e 5 dizem que tanto o x quanto o y devem ser maiores ou iguais a zero, e que ambos devem pertencer aos números reais. Veja agora como usamos os dados de formulação para resolver este exercício usando Python e a biblioteca PuLP:
# vamos importar as ferramentas necessárias
from pulp import LpMinimize, LpProblem, LpVariable
# método principal
def main():
# vamos criar o modelo
modelo = LpProblem(name="Pesquisa Operacional em Python", sense=LpMinimize)
# agora inicializamos as variáveis de decisão
x = LpVariable(name="x", lowBound=0)
y = LpVariable(name="y", lowBound=0)
# vamos adicionar as restrições de acordo com a formulação do problema
modelo += (40 * x + 100 * y >= 1000, "R1")
modelo += (150 * x + 60 * y >= 2000, "R2")
modelo += (3 * x + 8 * y >= 50, "R3")
# definimos a função objetivo e a adicionamos ao modelo
funcao_objetivo = 1500 * x + 1200 * y
modelo += funcao_objetivo
# e tentamos resolver o problema
modelo.solve()
# assumindo que o problema foi resolvido com sucesso, vamos
# mostrar os valores das variáveis x e y
for var in modelo.variables():
print(f"{var.name}: {var.value()}")
if __name__== "__main__":
main()
Note como o PuLP nos deu o custo mínimo de 23333.33 para atingir o objetivo desejado pela madeireira. |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




