![]() |
|
|
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 ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporárioQuantidade de visualizações: 888 vezes |
|
Pergunta/Tarefa: Dado o vetor:
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor no passo 1 do primeiro laço: 8 0 0 0 0 0 0 0 Rotação do vetor no passo 2 do primeiro laço: 8 5 0 0 0 0 0 0 Rotação do vetor no passo 3 do primeiro laço: 8 5 2 0 0 0 0 0 Rotação do vetor no passo 1 do segundo laço: 8 5 2 1 0 0 0 0 Rotação do vetor no passo 2 do segundo laço: 8 5 2 1 6 0 0 0 Rotação do vetor no passo 3 do segundo laço: 8 5 2 1 6 9 0 0 Rotação do vetor no passo 4 do segundo laço: 8 5 2 1 6 9 3 0 Rotação do vetor no passo 5 do segundo laço: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
// mostramos o array na ordem original
System.out.println("Array na ordem original:");
exibirVetor(valores);
// vamos rotacionar o array 3 casas para a direita
valores = rotacionarArray(valores, 3);
// e mostramos o resultado
System.out.println("Array depois de rotacionar 3 vezes:");
exibirVetor(valores);
}
// método usado para exibir o array
public static void exibirVetor(int []vetor){
// percorremos cada elemento do vetor
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("\n");
}
// método que recebe um vetor de inteiros e o rotaciona um
// determinado número de vezes
public static int[] rotacionarArray(int[] vetor, int n) {
// vamos obter a quantidade de elementos no vetor
int quant = vetor.length;
// o número de rotações é maior que a quantidade de
// elementos no vetor? Se for nós ajustamos o número
// de rotações usando o operador de módulo
if(n > quant){
n = n % quant;
}
// criamos um vetor temporário
int[] resultado = new int[quant];
// o primeiro laço movimenta os elementos a partir
// do valor de n
for(int i = 0; i < n; i++){
resultado[i] = vetor[quant - n + i];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (i + 1) +
" do primeiro laço:");
exibirVetor(resultado);
}
// ajustamos o índice para o primeiro elemento do vetor
int indice = 0;
for(int i = n; i < quant; i++){
resultado[i] = vetor[indice];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (indice + 1) +
" do segundo laço:");
exibirVetor(resultado);
indice++; // incrementa o índice
}
// retorna o vetor rotacionado
return resultado;
}
}
A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como corrigir um erro ClassCastException em Java - Como tratar a exceção ClassCastException do JavaQuantidade de visualizações: 17712 vezes |
|
A exceção ClassCastException é um erro de tempo de execução que ocorre quando tentamos fazer um cast (coerção - conversão explícita) de uma classe para outra classe diferente desta ou que não seja uma superclasse desta. Em outras palavras, casts válidos para classes e interfaces devem seguir as regras abaixo: 1) Se NovoTipo é uma classe, a classe da expressão sendo convertida deve ser do tipo NovoTipo ou herdar de NovoTipo. 2) Se NovoTipo é uma interface, a classe da expressão sendo convertida deve implementar NovoTipo. Considere o código a seguir:
public class Estudos{
public static void main(String args[]){
Object x = new Integer(0);
System.out.println((String)x);
}
}
Este código compila normalmente. Porém, ao ser executado, a seguinte mensagem de erro é exibida: Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at Estudos.main(Estudos.java:4) Esta mensagem nos informa que a classe Integer não pode sofrer um cast para String, uma vez que Integer não é e nem herda de String. Veja agora a nova versão:
public class Estudos{
public static void main(String args[]){
Object x = new Integer(0);
System.out.println((Integer)x);
}
}
Veja que agora nós estamos fazendo o cast de uma referência Object para Integer. Embora Object não seja e nem herde de Integer, o sistema de tempo de execução sabe que x guarda atualmente uma referência a um Integer: Object x = new Integer(0); |
C# ::: Dicas & Truques ::: Data e Hora |
Datas e horas em C# - Como obter o valor numérico do dia da semana para uma determinada data usando C#Quantidade de visualizações: 8 vezes |
|
A propriedade DayOfWeek da classe DateTime da linguagem C# retorna um valor numérico que corresponde ao dia da semana. Assim, se o dia for domingo, o retorno será 0. Se for segunda-feira, o resultado será 1, e assim por diante. Veja o código completo para o exemplo:
using System;
namespace Estudos{
class Program{
static void Main(string[] args) {
// domingo = 0, segunda = 1, etc
DateTime agora = DateTime.Now;
int dia_semana = (int)agora.DayOfWeek;
Console.WriteLine("O valor numérico do dia da semana é: {0:D}", dia_semana);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código nós teremos o seguinte resultado: O valor numérico do dia da semana é: 2 |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando Python - Geometria Analítica e Álgebra Linear usando PythonQuantidade de visualizações: 4510 vezes |
|
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0). Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2: \[\vec{v} = \left(7, 6\right)\] Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D: ![]() Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9. Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6). Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras: \[a^2 = b^2 + c^2\] Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira: \[a = \sqrt{b^2 + c^2}\] Passando para os valores x e y que já temos: \[a = \sqrt{7^2 + 6^2}\] Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final: \[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\] E aqui está o código Python que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:
# função principal do programa
def main():
# vamos ler os valores x e y
x = float(input("Informe o valor de x: "))
y = float(input("Informe o valor de y: "))
# vamos calcular a norma do vetor
norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2))
# mostra o resultado
print("A norma do vetor é: %0.2f" % norma)
if __name__== "__main__":
main()
Ao executar este código nós teremos o seguinte resultado: Informe o valor de x: 7 Informe o valor de y: 6 A norma do vetor é: 9.22 Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo. |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como usar as funções strpos() e stripos() do PHP para obter uma matriz contendo todas as posições das ocorrências de uma substring dentro de uma stringQuantidade de visualizações: 3577 vezes |
Em algumas situações percebemos que uma substring aparece mais de uma vez em uma string e gostaríamos de obter mais informações sobre tais ocorrências. No trecho de código abaixo eu mostro como usar as funções strpos() e stripos() para obter uma matriz contendo todas as posições das ocorrências de uma substring dentro de uma string:
<?php
$frase = "PHP? Gosto muito de PHP e Java. Mas prefiro PHP e Delphi";
$palavra = "PHP";
// primeiro vamos verificar se a palavra está contida na frase
if(strpos($frase, $palavra) !== false){
// agora vamos obter as posições de todas as ocorrências
$posicoes = array();
$offset = 0;
$posicao = -1;
while($offset < strlen($frase)){
$posicao = strpos($frase, $palavra, $offset);
if($posicao !== false){
$posicoes[] = $posicao;
$offset = $posicao + strlen($palavra);
}
else{
$offset++;
}
}
// percorre a matriz de posições e informa o usuário
echo "A palavra foi encontrada nas posições: ";
for($i = 0; $i < count($posicoes); $i++){
echo $posicoes[$i] . ", ";
}
}
else{
echo "A palavra não está contida na string";
}
?>
Ao executarmos este código nós teremos o seguinte resultado: A palavra foi encontrada nas posições: 0, 20, 44, Note que a função strpos() diferencia maiúsculas de minúsculas. Se você quiser efetuar uma pesquisa de substrings desconsiderando maiúsculas e minúsculas, use a função stripos(). |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
|
Delphi - Como obter o número do registro atual em um TClientDataSet do Delphi usando a propriedade RecNo |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






