![]() |
|
|
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 Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Equações Lineares |
Exercício Resolvido de Octave - Sistema de Equações Lineares - Como resolver um sistema de equações lineares em OctaveQuantidade de visualizações: 765 vezes |
|
Pergunta/Tarefa: Este exercício de Octave mostra como resolver uma equação linear. 1) Dado o seguinte sistema de equações lineares: ![]() use o GNU Octave para encontrar os valores das incógnitas x, y e z. Sua saída deverá ser parecida com: x = 6 2 7 Para resolver esse sistema nós temos que definir três matrizes para representarmos as equações lineares no formato de matriz: Ax = b onde A, x, e b são matrizes. Dessa forma, para obter o conjunto de soluções, ou seja, as incógnitas, nós temos que escrever as equações lineares na forma: x = A \ b Veja agora o código Octave para a resolução (aqui eu fiz em modo interativo): >> % vamos criar a matriz A [ENTER] >> A = [4 3 2; 3 7 4; 8 9 5]; [ENTER] >> % agora vamos criar a matriz b [ENTER] >> b = [44; 60; 101]; [ENTER] >> % obtemos o conjunto de solucoes [ENTER] >> x = A \ b [ENTER] |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como centralizar uma janela QMainWindow do PyQtQuantidade de visualizações: 624 vezes |
|
Nesta dica mostrarei como podemos centralizar a janela principal de nossa aplicação PyQt. Note que esta janela principal, na maioria das vezes, é representada por uma instância da classe QMainWindow. Veja o código completo para o exemplo, já atualizado para o PyQt6:
# vamos importar os módulos necessários
import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
# vamos criar uma classe que herda de QMainWindow
class JanelaPrincipal(QMainWindow):
# construtor da classe
def __init__(self):
super().__init__()
# definimos o título da janela
self.setWindowTitle("Cadastro de Produtos")
# vamos definir as dimensões da janela
self.resize(600, 420)
# vamos obter a geometria do frame da nossa janela
geometria_frame = self.frameGeometry()
# acessamos a geometria da monitor e obtemos seu centro
ponto_central = self.screen().availableGeometry().center()
# movemos o retângulo obtido anteriormente para o centro da tela
geometria_frame.moveCenter(ponto_central)
# e finalmente movemos nossa janela para este ponto
self.move(geometria_frame.topLeft())
if __name__== "__main__":
# cria a aplicação
app = QApplication(sys.argv)
# cria a janela principal e a coloca visível
janela_principal = JanelaPrincipal()
janela_principal.show()
# executa a aplicação
app.exec()
|
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar um vetor com valores igualmente espaçados usando a função linspace() da biblioteca NumPy do Python - Python NumPy para EngenhariaQuantidade de visualizações: 2986 vezes |
|
Em algumas situações nós precisamos de vetores e matrizes com valores igualmente espaçados entre um determinado intervalo. Para isso nós podemos usar a função linspace() da biblioteca NumPy do Python. Esta função exige, entre vários argumentos, o início e o fim do intervalo. Vamos ver um exemplo? Observe o trecho de código a seguir:
# vamos importar a biblioteca NumPy
import numpy as np
def main():
valores = np.linspace(2, 5, num=10)
print("O vetor gerado foi: ", valores)
if __name__== "__main__":
main()
Este código Python vai gerar o seguinte resultado: O vetor gerado foi: [2. 2.33333333 2.66666667 3. 3.33333333 3.66666667 4. 4.33333333 4.66666667 5. ] Note que informamos o valor inicial como 2 e o valor final como 5, e definimos a quantidade de elementos gerados como 10 (se omitida, 50 valores serão gerados). Se não quisermos que o valor final do intervalo seja incluído na amostra, basta informamos endpoint=False como argumento para a função linspace(). |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter os tipos de dados suportados pelo MySQL e seus correspondentes JDBC usando o método getTypeInfo() da interface DatabaseMetaDataQuantidade de visualizações: 6527 vezes |
|
Em algumas situações precisamos obter os tipos de dados suportados pelo MySQL e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café. O primeiro passo é obter os tipos de dados suportados pelo MySQL com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no MySQL enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos. Veja o código completo para o exemplo:
package estudosbancodados;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
public class EstudosBancoDados{
static Map mapa; // usado para mapear os tipos JDBC
public static void main(String[] args) {
// strings de conexão
String databaseURL = "jdbc:mysql://localhost/estudos";
String usuario = "root";
String senha = "osmar1234";
String driverName = "com.mysql.jdbc.Driver";
try {
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);
// vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
DatabaseMetaData dbmd = conn.getMetaData();
// vamos obter os tipos de dados suportados por esta versão do MySQL
// e seus correspondentes JDBC
ResultSet tiposDados = dbmd.getTypeInfo();
while(tiposDados.next()){
System.out.println("MySQL: " + tiposDados.getString("TYPE_NAME") + " - JDBC: "
+ getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE"))));
}
// vamos fechar o ResultSet
tiposDados.close();
}
catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
catch (Exception e) {
System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
}
}
// Este método retorna o nome de um tipo JDBC
// O retorno é null se o tipo JDBC não puder ser reconhecido
public static String getJdbcTypeName(int jdbcType){
// vamos usar reflection para mapear valores inteiros a seus nomes
if(mapa == null) {
mapa = new HashMap();
// vamos obter todos os campos da classe java.sql.Types
Field[] campos = java.sql.Types.class.getFields();
// vamos percorrer os campos
for(int i = 0; i < campos.length; i++){
try{
// vamos obter o nome do campo
String nome = campos[i].getName();
// vamos obter o valor do campo
Integer valor = (Integer)campos[i].get(null);
// vamos adicionar ao mapa
mapa.put(valor, nome);
}
catch(IllegalAccessException e){
System.out.println("Ops: " + e.getMessage());
}
}
}
// vamos retornar o nome do tipo JDBC
return (String)mapa.get(new Integer(jdbcType));
}
}
O resultado da execução deste código foi: MySQL: BIT - JDBC: BIT MySQL: BOOL - JDBC: BIT MySQL: TINYINT - JDBC: TINYINT MySQL: TINYINT UNSIGNED - JDBC: TINYINT MySQL: BIGINT - JDBC: BIGINT MySQL: BIGINT UNSIGNED - JDBC: BIGINT MySQL: LONG VARBINARY - JDBC: LONGVARBINARY MySQL: MEDIUMBLOB - JDBC: LONGVARBINARY MySQL: LONGBLOB - JDBC: LONGVARBINARY MySQL: BLOB - JDBC: LONGVARBINARY MySQL: TINYBLOB - JDBC: LONGVARBINARY MySQL: VARBINARY - JDBC: VARBINARY MySQL: BINARY - JDBC: BINARY MySQL: LONG VARCHAR - JDBC: LONGVARCHAR MySQL: MEDIUMTEXT - JDBC: LONGVARCHAR MySQL: LONGTEXT - JDBC: LONGVARCHAR MySQL: TEXT - JDBC: LONGVARCHAR MySQL: TINYTEXT - JDBC: LONGVARCHAR MySQL: CHAR - JDBC: CHAR MySQL: NUMERIC - JDBC: NUMERIC MySQL: DECIMAL - JDBC: DECIMAL MySQL: INTEGER - JDBC: INTEGER MySQL: INTEGER UNSIGNED - JDBC: INTEGER MySQL: INT - JDBC: INTEGER MySQL: INT UNSIGNED - JDBC: INTEGER MySQL: MEDIUMINT - JDBC: INTEGER MySQL: MEDIUMINT UNSIGNED - JDBC: INTEGER MySQL: SMALLINT - JDBC: SMALLINT MySQL: SMALLINT UNSIGNED - JDBC: SMALLINT MySQL: FLOAT - JDBC: REAL MySQL: DOUBLE - JDBC: DOUBLE MySQL: DOUBLE PRECISION - JDBC: DOUBLE MySQL: REAL - JDBC: DOUBLE MySQL: VARCHAR - JDBC: VARCHAR MySQL: ENUM - JDBC: VARCHAR MySQL: SET - JDBC: VARCHAR MySQL: DATE - JDBC: DATE MySQL: TIME - JDBC: TIME MySQL: DATETIME - JDBC: TIMESTAMP MySQL: TIMESTAMP - JDBC: TIMESTAMP |
PHP ::: Dicas & Truques ::: Data e Hora |
Datas e horas em PHP - Como obter o timestamp do primeiro dia do mês e ano informadosQuantidade de visualizações: 1 vezes |
|
Nesta dica eu mostrarei como é possível obter o timestamp do primeiro dia de um determinado mês e ano. O "Unix timestamp" contém o número de segundos entre a "Unix Epoch" (1 de janeiro de 1970, às 00:00:00 GMT) e o tempo decorrido desde então. Veja o código PHP completo para o exemplo:
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
$mes = 1; // 1 = janeiro;
$ano = 2021;
$primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano);
echo "O timestamp do primeiro dia do mês e ano
informado é: " . $primeiro_dia;
?>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado O timestamp do primeiro dia do mês e ano informado é: 1609455600 |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





