![]() |
|
|
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 Aço e Madeira |
||
|
||
|
|
||
JavaScript ::: DOM (Document Object Model) ::: document Object |
JavaScript DOM - Como usar o objeto document em seus códigos JavaScriptQuantidade de visualizações: 8252 vezes |
O objeto document representa a página HTML e fornece possibilidades para acessar, criar e manipular todos os elementos HTML no documento. Este objeto está logo abaixo do objeto window na hierarquia do DOM (Document Object Model), ou seja, podemos dizer que este elemento é filho do objeto window. Assim, para acessá-lo a partir de nossos códigos JavaScript podemos usar window.document ou simplesmente document. Veja:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos obter o título desta página
var titulo = window.document.title;
// vamos exibir o resultado em uma mensagem alert
window.alert("O título da página é: " + titulo);
</script>
</body>
</html>
Neste exemplo nós usamos o objeto window para obter o objeto document. O passo seguinte foi obter o valor de sua propriedade title, que é usada para definir ou obter o título da página HTML. Para obter um elemento em um documento HTML nós podemos usar as coleções (all, anchors, applets, etc), os métodos getElementById(), getElementsByName() e getElementsByTagName() e algumas outras propriedades e métodos. Se precisarmos acessar o elemento body ou html, podemos usar as propriedades document.documentElement e document.body. Veja um trecho de código no qual acessamos o corpo do documento HTML e definimos sua cor de fundo: <script type="text/javascript"> // vamos definir a cor de fundo da página HTML window.document.body.bgColor = "Beige"; </script> Uma vez que o objeto document é um objeto contâiner para um documento HTML, ele fornece métodos para a crição de novos elementos (por meio do método createElement()), nós textos (createTextNode()) e nós de comentários (createComment()). Depois que um nó (node) é criado, ele pode ser inserido no documento por meio de chamadas aos métodos appendChild() e insertBefore(). Veja um trecho de código no qual usamos o método createElement() para criar um novo elemento div e logo em seguida usamos o método appendChild() para adicionar o elemento recém-criado no final do documento HTML:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos criar um novo elemento div
var elem = document.createElement("div");
elem.innerHTML = "Sou uma div criada dinâmicamente";
elem.style.backgroundColor = "beige";
// vamos adicionar este novo elemento no final do documento
document.body.appendChild(elem);
</script>
</body>
</html>
Os documentos HTML contidos em elementos frames e iframes possuem seus próprios objetos document. Para obter tais objetos, devemos usar a propriedade contentDocument. |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como detectar o evento OnSelect da classe TComboBox do DelphiQuantidade de visualizações: 13974 vezes |
|
O evento OnSelect da classe TComboBox é disparado quando o usuário seleciona um item (uma string) na lista drop-down do componente. Este evento possui a seguinte assinatura: property OnSelect: TNotifyEvent; Um evento do tipo TNotifyEvent não possui parâmetros específicos ao evento ocorrido. Assim, no evento OnSelect temos acesso somente ao parâmetro Sender, do tipo TObject, que nos informa em qual componente o evento ocorreu. Vamos ver um exemplo? Veja o código para o tratamento do evento OnSelect de um ComboBox. Aqui, todas as vezes que o evento disparar, nós vamos exibir o valor do novo item:
procedure TForm3.ComboBox1Select(Sender: TObject);
begin
// vamos mostrar o novo item selecionado
ShowMessage('O novo item selecionado é: ' +
ComboBox1.Items[ComboBox1.ItemIndex]);
end;
Note que o evento OnSelect é disparado somente após a mudança de seleção e, consequentemente, a atualização da propriedade Text, que deverá refletir o novo item. |
QGIS ::: PyQGIS API ::: Aplicações com código fonte completo |
Como listar os 5 municípios goianos com maior área em uma camada do QGIS usando PyQGIS - Código Python completoQuantidade de visualizações: 756 vezes |
|
Este código completo mostra uma aplicação QGIS na qual usei PyQGIS para resolver um desafio muito interessante, e complexo. Acredito que servirá de base para muitos códigos interessantes envolvendo QGIS, Python e PyQGIS. Comecei fazendo o download do shapefile do Estado de Goiás, contendo seus 246 municípios no site do IBGE. Em seguida carreguei o shapefile no QGIS usando um objeto QgsVectorLayer. Note que criei uma classe Municipio para guardar cada um dos municípios encontrados no shapefile. E, para agrupar os objetos da classe Municipio eu criei uma lista chamada municipios. Para acessar cada um dos municipios, ou seja, cada uma das 246 feições da camada, eu usei a função getFeatures() da classe QgsVectorLayer. Então, ao percorrer cada uma dessas feições, eu obtive seus atributos, por meio da função attributes(), e os usei para criar os objetos da classe Municipio. Uma vez obtida a lista de municípios, o passo seguinte foi classificar a lista por ordem crescente de área (a área dos municípios). Um laço for me permitiu listar apenas os 5 municípios com maiores áreas e, além de registrar o somatório de seus áreas, obter os seus códigos para selecioná-los na camada, usando a função selectByExpression(). O desafio final foi mostrar as labels, ou seja, os rótulos de cada um dos municípios no mapa do QGIS, porém, eu queria mostrar os rótulos apenas dos 5 municípios com as maiores áreas. Para resolver o desafio, lancei mão da função setFilterExpression(). Veja o código completo para o exemplo:
# uma classe para guardar cada um dos municípios
# do Estado de Goiás
class Municipio:
# método construtor
def __init__(self, codigo, nome, estado, area):
self.codigo = codigo
self.nome = nome
self.estado = estado
self.area = area
# para guardar os municípios
municipios = []
# vamos criar um novo objeto QgsVectorLayer com o local
# do nosso shapefile
camada = QgsVectorLayer("C:\\GOIAS\\GO_Municipios_2022.shp",
"Municípios do Estado de Goiás", "ogr")
# vamos testar se a camada é válida
if not camada.isValid():
print("Não foi possível carregar a camada %s" % camada.name())
else:
# vamos percorrer todas as feições da camada
# e obter os seus atributos
feicoes = camada.getFeatures()
for f in feicoes:
# vamos obter os atributos desta feição
atributos = f.attributes()
# e criamos um novo objeto da classe Municipio
municipio = Municipio(atributos[0], atributos[1],
atributos[2], atributos[3])
# adicionamos este município na lista
municipios.append(municipio)
# agora vamos ordenar a lista por área da maior para
# a menor
municipios = sorted(municipios,
key=lambda municipio:municipio.area, reverse=True)
# vamos adicionar a camada à relação de camadas
QgsProject.instance().addMapLayer(camada)
# vamos calcular a área ocupada pelos 5 maiores municípios
# do Estado de Goiás
area_5_maiores = 0
for i in range(5):
area_5_maiores = area_5_maiores + municipios[i].area
# agora vamos selecionar os 5 maiores municípios na
# camada do QGIS
codigos = ""
for i in range(5):
codigos = codigos + municipios[i].codigo + ", "
codigos = codigos[0:len(codigos) - 2]
camada.selectByExpression('"CD_MUN" IN (' + codigos + ')')
# e mostramos os resultados
print("Os 5 maiores municípios do Estado de Goiás são:\n")
for i in range(5):
print("{0}) {1} - Área: {2} km2".format(i + 1, municipios[i].nome,
municipios[i].area))
print("\nÁrea ocupada pelos 5 maiores municípios: {0} km2".format(
area_5_maiores))
# finalmente vamos exibir os nomes dos municípios. Essa foi
# a parte mais desafiadora do código, pois eu queria mostrar
# somente os rótulos dos cinco maiores municípios
settings = QgsPalLayerSettings()
settings.isExpression = True
settings.placement = QgsPalLayerSettings.Line
settings.placement = QgsPalLayerSettings.Horizontal
# mostra o nome do município
settings.fieldName = "NM_MUN"
format = QgsTextFormat()
format.setColor(QColor('Black'))
settings.setFormat(format)
settings.enabled = True
# cria e adiciona uma nova regra
root = QgsRuleBasedLabeling.Rule(QgsPalLayerSettings())
rule = QgsRuleBasedLabeling.Rule(settings)
rule.setDescription("5 Maiores Municípios do Estado de Goiás")
# define o campo que será usado no filtro. Note que somente
# serão listados os rótulos dos municípios com área maior ou
# igual ao quinto elemento da lista municípios
campo_area = "AREA_KM2"
rule.setFilterExpression(f"\"{campo_area}\" >= {municipios[4].area}")
root.appendChild(rule)
# define as configurações do rótulo
camada.setLabelsEnabled(True)
rules = QgsRuleBasedLabeling(root)
camada.setLabeling(rules)
# redesenha a camada no canvas do QGIS
camada.triggerRepaint()
Ao executar este código QGIS, Python e PyQGIS nós teremos o seguinte resultado: Os 5 maiores municípios do Estado de Goiás são: 1) Niquelândia - Área: 9846.293 km2 2) Mineiros - Área: 9042.844 km2 3) Caiapônia - Área: 8627.961 km2 4) Rio Verde - Área: 8374.255 km2 5) Nova Crixás - Área: 7308.681 km2 Área ocupada pelos 5 maiores municípios: 43200.03399999999 km2 Para fins de compatibilidade este código foi escrito e testado no QGIS 3.34.5-Prizren. |
jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico |
Como usar a função text() do jQuery para obter o conteúdo de um elemento HTML desconsiderando as tagsQuantidade de visualizações: 10515 vezes |
Enquanto o método html() nos permite obter o conteúdo de um elemento HTML incluindo as tags, o método text() permite a mesma operação, porém, desconsiderando quaisquer tags HTML que forem encontradas. Considere o elemento DIV a seguir:<div id="div_1"> <button>Clique Aqui</button> </div> Veja agora o código JavaScript que obtém o conteúdo entre as tags <div> e </div>:
<script type="text/javascript">
<!--
function obterTexto(){
var texto = $('#div_1').text();
window.alert(texto);
}
//-->
</script>
Veja que enquato o método html() retorna a string "<button>Clique Aqui</button>", o método text() retorna apenas "Clique Aqui". Observe também que o método text() atuará em todos os elementos retornados em uma determinada condição. O retorno deste método é uma string. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de Python - Como retornar o código ASCII associado a um caractere em Python - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 962 vezes |
|
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em Python:
# função principal do programa
def main():
# vamos pedir para o usuário informar uma letra, símbolo ou pontuação
caractere = input("Informe um caractere: ")
# agora vamos obter o código ASCII correspondente
codigo = ord(caractere)
# e mostramos o resultado
print("Você informou o caractere: {0}".format(caractere))
print("O código ASCII correspondente é: {0}".format(codigo))
if __name__== "__main__":
main()
O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
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 |




