Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa 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.

GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional

Exercício Resolvido de Octave - Programação Linear - Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais

Quantidade de visualizações: 755 vezes
Pergunta/Tarefa:

Este exercício de Octave aborda o uso da função glpk() para resolver um problema de Pesquisa Operacional usando Programação Linear.

1) Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais exige 60g de proteína e 30g de gordura. A Ração X possui 15g de proteína e 10g de gordura, e custa R$ 80,00 a unidade. A Ração Y apresenta 20g de proteína e 5g de gordura e custa R$ 50,00 a unidade.

Quanto de cada ração deve ser usada para minimizar os custos do fazendeiro?

Sua saída deverá ser parecida com:

A solução para o problema de minimização é:

x = 2.40
y = 1.20

O custo mínimo é: 252.00
Resposta/Solução:

Antes de passarmos ao código Octave, vamos fazer a modelagem matemática do problema. O primeiro passo é identificar as variáveis. Assim, vamos chamar de x o número de unidades da Ração X e de y o número de unidades da Ração Y. Veja:

x = Número de unidades da Ração X
y = Número de unidades da Ração Y

E então temos a função custo:

custo = 80x + 50y

A primeira restrição diz respeito à quantidade de proteína em cada porção de ração. Sabendo que a Ração X apresenta 15g de proteína e a Ração Y apresenta 20g de proteína nós temos:

R1: 15x + 20y >= 60 (proteína)

A segunda restrição diz respeito à quantidade de gordura em cada porção de ração. Sabendo que a Ração X apresenta 10g de gordura e a Ração Y apresenta 5g de gordura nós temos:

R2: 10x + 5y >= 30 (gordura)

As restrições R3 e R4 dizem respeito à não negatividade das variáveis de decisão:

R3: x >= 0
R4: y >= 0

Veja agora o código Octave completo (pesquisa_operacional.m):

# vamos começar definindo a matriz que representa a função de
# minimização
c = [80.0, 50.0]';

# agora a matriz de restrições
A = [15, 20; 10, 5];
b = [60, 30]';

# as restrições de não negatividade e o limite superior
lb = [0, 0]';
ub = [];

# definimos as restrições como limites inferiores
ctype = "LL";

# indicamos que vamos usar variáveis contínuas (não inteiros)
vartype = "CC";

# vamos usar minimização, por isso definimos o valor 1. Se fosse
# maximização o valor seria -1
s = 1;

# definimos os parâmetros adicionais
param.msglev = 1;
param.itlim = 100;

# e chamamos a função glpk()
[xmin, fmin, status, extra] = glpk(c, A, b, lb, ub, ctype, vartype, s, param);

# mostramos a solução para o problema de minimização
printf("A solução para o problema de minimização é:\n\n");
printf("x = %.2f\n", xmin(1));
printf("y = %.2f\n", xmin(2));

# para finalizar vamos mostrar o custo mínimo
printf("\nO custo mínimo é: %.2f\n\n", fmin);

Ao executar o código você perceberá que, para minimizar os custos do fazendeiro, deverão ser usados na mistura 2,4 unidades da Ração X e 1,2 unidades da Raça Y, a um custo mínimo de R$ 252,00.


JavaScript ::: W3C DOM - (Wide Web Consortium) Document Object Model ::: Navegação e Pesquisa de Nós (Nodes)

Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScript

Quantidade de visualizações: 13559 vezes
Em algumas situações temos um elemento HTML (um elemento DIV, por exemplo) e gostaríamos de retornar uma coleção contendo seus elementos filhos. Para isso podemos usar a coleção childNodes, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1.

A coleção childNodes contém todos os descendentes diretos de um determinado elemento HTML, incluindo os nós textos (text nodes) e comentários (comment nodes). Além disso, a ordem dos elementos retornados é aquela definida no código-fonte do documento HTML.

Veja uma página HTML contendo um elemento DIV e, dentro deste, um parágrafo, um link e um elemento SPAN. Note como usamos a propriedade childNodes no elemento DIV para retornar seus três elementos filhos diretos (note que as quebras de linhas e o elemento BR também serão retornados):

<html>
<head>
<title>Estudos JavaScript</title>

<script type="text/javascript">
  function obterNosFilhos(){
    // vamos obter uma referência ao elemento div com o id "container"
    var pai = document.getElementById("container");

    // vamos obter a coleção de elementos filhos
    var filhos = pai.childNodes;

    // vamos obter a quantidade de elementos filhos deste elemento
    window.alert("O elemento div contém " + filhos.length +
      " elementos filhos.");

    // vamos percorrer todos os elementos
    for(var i = 0; i < filhos.length; i++){
      var filho = filhos[i];

      // este filho é um nó texto?
      if(filho.nodeType == 3){
        window.alert("O " + (i + 1) + "º filho é um nó texto. " +
          "Seu conteúdo é: " + filho.data);
      }
      // este filho é um nó elemento?
      else if(filho.nodeType == 1){
        window.alert("O " + (i + 1) + "º filho é um nó elemento. " +
          "Seu conteúdo é: " + filho.innerHTML);
      }
    }
  }  
</script>

</head>
<body>

<div id="container">
<p>Sou um parágrafo</p>
<a href="http://www.google.com">Sou um link</a><br>
<span>E eu sou um elemento span</span>
</div>

<br>
<button onclick="obterNosFilhos()">Obter nós filhos do elemento div</button>

</body>
</html>

Ao executarmos este código JavaScript nós teremos o seguinte resultado:

O elemento div contém 8 elementos filhos.
O 1º filho é um nó texto. Seu conteúdo é:
O 2º filho é um nó elemento. Seu conteúdo é: Sou um parágrafo
O 3º filho é um nó texto. Seu conteúdo é:
O 4º filho é um nó elemento. Seu conteúdo é: Sou um link
O 5º filho é um nó elemento. Seu conteúdo é:
O 6º filho é um nó texto. Seu conteúdo é:
O 7º filho é um nó elemento. Seu conteúdo é: E eu sou um elemento span
O 8º filho é um nó texto. Seu conteúdo é:

Ao executar este exemplo você perceberá que a quantidade de elementos filhos no IE é diferente daquela relatada pelo Firefox. Isso acontece devido à forma que os dois browsers tratam quebras de linhas e espaços. Tenha a certeza de usar a propriedade nodeType para identificar o tipo de elemento filho sendo retornado.

A coleção childNodes pode ser chamada a partir dos seguintes elementos: a, abbr, acronym, address, applet, b, bdo, big, blink, blockquote, body, button, caption, center, cite, code, col, colgroup, dd, del, dfn, dir, div, dl, dt, em, fieldset, font, form, frameset, h1, h2, h3, h4, h5, h6, head, html, i, img, ins, kbd, keygen, label, legend, li, listing, map, marquee, menu, nobr, noframes, noscript, object, ol, optgroup, option, p, plaintext, pre, q, rt, ruby, s, samp, select, small, span, strike, strong, sub, sup, table, tbody, td, textarea, tfoot, th, thead, tr, tt, u, ul, var, xml e xmp.

Esta dica foi escrita e testada no Google Chrome 127.0.6533.122 (Versão oficial) 64 bits.


Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter uma lista das funções de data e hora suportadas pelo MySQL usando o método getTimeDateFunctions() da interface DatabaseMetaData

Quantidade de visualizações: 6020 vezes
Em algumas situações gostaríamos de, via código, obter uma lista das funções de data e hora suportadas pelo MySQL. Para isso podemos usar o método getTimeDateFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getTimeDateFunctions() de forma a retornar a lista de funções de data e hora separadas por vírgulas.

Veja um trecho de código Java no qual listamos todas as funções de data e hora suportados no MySQL 5.0:

package estudosbancodados;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

public class EstudosBancoDados{
  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 a lista de funções de data e hora disponíveis
      // nesta versão do MySQL
      String funcoesDataHora = dbmd.getTimeDateFunctions();

      // como a lista de funções está separada por vírgulas, vamos obter
      // uma matriz de strings
      String funcoes[] = funcoesDataHora.split(",");

      // vamos mostrar o resultado
      for(int i = 0; i < funcoes.length; i++){
        System.out.println(funcoes[i]);
      }
    }
    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);
    }
  }
}

Ao executarmos este código teremos o seguinte resultado:

DAYOFWEEK
WEEKDAY
DAYOFMONTH
DAYOFYEAR
MONTH
DAYNAME
MONTHNAME
QUARTER
WEEK
YEAR
HOUR
MINUTE
SECOND
PERIOD_ADD
PERIOD_DIFF
TO_DAYS
FROM_DAYS
DATE_FORMAT
TIME_FORMAT
CURDATE
CURRENT_DATE
CURTIME
CURRENT_TIME
NOW
SYSDATE
CURRENT_TIMESTAMP
UNIX_TIMESTAMP
FROM_UNIXTIME
SEC_TO_TIME
TIME_TO_SEC


Portugol ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Portugol dados dois pontos no plano cartesiano

Quantidade de visualizações: 925 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Portugol que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

// Calcular o coeficiente angular de uma reta em Portugol

programa {
  // vamos incluir a biblioteca Matematica
  inclua biblioteca Matematica --> mat
  
  funcao inicio() {
    // coordenadas dos dois pontos
    real x1, y1, x2, y2
    // guarda o coeficiente angular
    real m

    // x e y do primeiro ponto
    escreva("Coordenada x do primeiro ponto: ")
    leia(x1)
    escreva("Coordenada y do primeiro ponto: ")
    leia(y1)

    // x e y do segundo ponto
    escreva("Coordenada x do segundo ponto: ")
    leia(x2)
    escreva("Coordenada y do segundo ponto: ")
    leia(y2)

    // vamos calcular o coeficiente angular
    m = (y2 - y1) / (x2 - x1)

    // mostramos o resultado
    escreva("O coeficiente angular é: ", m) 
  }
}

Ao executar este código Portugol Webstudio nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.6666666666666666

No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.