![]() |
|
|
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 ::: Dicas & Truques ::: Formulários |
Formulários HTML - Como marcar ou desmarcar todas as checkboxes de um formulário HTML de uma só vez usando JavaScriptQuantidade de visualizações: 19618 vezes |
|
Nesta dica mostrarei como é possível clicar em um botão (pode ser um link também) e chamar uma função JavaScript que marca ou desmarca todos os elementos HTML checkbox de uma só vez. Para isso usaremos o método getElementsByName() para retornar todas as checkbox e em seguida manipular sua propriedade checked. Veja a imagem abaixo: ![]() E agora o código HTML e JavaScript completo:
<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
<form name="teste">
<input type="checkbox" name="linguagem">Java
<input type="checkbox" name="linguagem">Delphi
<input type="checkbox" name="linguagem">C++
</form>
<a href="javascript:marcar()">Marcar Todas</a> |
<a href="javascript:desmarcar()">Desmarcar Todas</a>
<script language="JavaScript">
function marcar(){
var boxes = document.getElementsByName("linguagem");
for(var i = 0; i < boxes.length; i++)
boxes[i].checked = true;
}
function desmarcar(){
var boxes = document.getElementsByName("linguagem");
for(var i = 0; i < boxes.length; i++)
boxes[i].checked = false;
}
</script>
</body>
</html>
|
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como tratar o erro IndexOutOfBoundsException do Java - A exceção IndexOutOfBoundsException da linguagem JavaQuantidade de visualizações: 18192 vezes |
|
A exceção IndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor, matriz, string ou demais coleções. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Antes de vermos os exemplos, observe a posição da classe pública IndexOutOfBoundsException na hierarquia de classes da plataforma Java:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IndexOutOfBoundsException
Esta classe implementa a interface Serializable e possui duas sub-classes conhecidas: ArrayIndexOutOfBoundsException e StringIndexOutOfBoundsException. Veja um exemplo no qual tentamos acessar um elemento de um vetor usando um índice inválido:
public class Estudos{
public static void main(String args[]){
// um array de quatro elementos
int[] valores = {5, 23, 76, 3};
// vamos fornecer um índice inválido
System.out.println(valores[4]);
System.exit(0);
}
}
Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Estudos.main(Estudos.java:7) A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. Veja agora o mesmo trecho de código usando uma string:
public class Estudos{
public static void main(String args[]){
String nome = "Java";
// vamos fornecer um índice inválido
System.out.println(nome.charAt(4));
System.exit(0);
}
}
Compile este código e execute-o. Você verá a seguinte mensagem de erro: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.charAt(Unknown Source) at Estudos.main(Estudos.java:6) Vamos fazer o mesmo usando uma ArrayList:
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
// fornecemos um índica inválido
String nome = nomes.get(4);
System.out.println("O valor obtido foi: " + nome);
System.exit(0);
}
}
Compile, execute e veja a mensagem de erro: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at Estudos.main(Estudos.java:15) Veja que no caso do vetor, a exceção lançada foi ArrayIndexOutOfBoundsException, no caso da string a exceção foi StringIndexOutOfBoundsException e no caso do ArrayList tivemos IndexOutOfBoundsException. Resolvemos abordar estas três exceções em apenas uma anotação para que você perceba a semelhança entre elas. |
Python ::: wxPython ::: Eventos e Tratadores de Eventos |
Como tratar o evento wx.EVT_MOVE em suas aplicações wxPython - Interfaces gráficas no PythonQuantidade de visualizações: 732 vezes |
|
Em algumas situações nós precisamos reagir ao evento wx.EVT_MOVE em nossas aplicações wxPython. Este evento é gerado todas as vezes que movemos uma janela para uma nova posição. Veja o código completo para uma aplicação wxPython na qual interceptamos e tratamos o evento wx.EVT_MOVE na janela principal do programa. Note o uso da função e.GetPosition() para recuperarmos as coordenadas x e y do evento e mostrarmos o resultado em controles wx.StaticText.
# vamos importar o framework wxPython
import wx
# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
# o método construtor
def __init__(self, *args, **kw):
# chama o construtor da classe wx.Frame
super(JanelaPrincipal, self).__init__(*args, **kw)
# chama a função que inicializa a GUI
self.InicializarGUI()
# método usado para gerenciar o evento Move
def OnMove(self, e):
# obtemos a posição do evento e guardamos nas variáveis x e y
x, y = e.GetPosition()
# mostramos os valores nas labels
self.st1.SetLabel(str(x))
self.st2.SetLabel(str(y))
# função que inicializa a GUI do programa
def InicializarGUI(self):
# criamos dois controles StaticText com os labels já definindos
wx.StaticText(self, label='x:', pos=(10,10))
wx.StaticText(self, label='y:', pos=(10,30))
# criamos mais dois controles StaticText para escrevermos neles
self.st1 = wx.StaticText(self, label='', pos=(30, 10))
self.st2 = wx.StaticText(self, label='', pos=(30, 30))
# fazemos um binding o evento wx.EVT_MOVE para a
# função OnMove que criamos
self.Bind(wx.EVT_MOVE, self.OnMove)
# definimos o tamanho da janela
self.SetSize((450, 350))
# define a cor de fundo da janela (Windows 10)
self.SetBackgroundColour((150, 250, 100, 255))
# definimos o título da janela
self.SetTitle('O evento Move')
# e centralizamos a janela
self.Centre()
# função principal do programa Python
def main():
# vamos criar a aplicação wxPython
app = wx.App()
janela_principal = JanelaPrincipal(None)
janela_principal.Show()
app.MainLoop()
if __name__ == "__main__":
main()
|
jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico |
Como adicionar conteúdo ao final de um elemento HTML usando a função append() do jQueryQuantidade de visualizações: 1310 vezes |
|
O método append() permite adicionar conteúdo ao final de um elemento HTML. Este conteúdo pode ser um seletor, um elemento HTML, uma string HTML ou um objeto jQuery. Veja um trecho de código no qual adicionamos mais um linha de texto a um parágrafo:
<script type="text/javascript">
<!--
function adicionarConteudo(){
var texto = "<br>Mais uma linha.";
$("#parag").append(texto);
}
//-->
</script>
O método append() opera em todos os elementos HTML retornados sob uma determinação condição. O retorno do método é um objeto jQuery que pode ser usado para fins de encadeamento de chamadas de métodos. |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar diretórios em C++ usando a função mkdir()Quantidade de visualizações: 10893 vezes |
Em algumas situações nossos códigos C++ precisam criar diretórios. Isso pode ser feito com o auxílio da função mkdir(), disponível no header direct.h (trazido da linguagem C). Veja a assinatura desta função:int _mkdir(const char *pathname); Veja um trecho de código C++ no qual criamos um diretório no mesmo diretório do executável.
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar o diretório
char diretorio[] = "estudos";
// vamos testar se houve erro na criação do diretório
if(mkdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório criado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de mkdir(), ou _mkdir(). O método _wmkdir(), também presente em direct.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar o diretório
wchar_t diretorio[] = L"C:\\Dev-Cpp\\estudos";
// vamos testar se houve erro na criação do diretório
if(_wmkdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório criado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Note que agora eu troquei o tipo char por wchar_t e usei o sinalizado L antes da atribuição da string. |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
|
JavaScript - Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto Array |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




