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.

C# ::: Dicas & Truques ::: Gráficos

Como desenhar gráficos em C# usando GDI+ - Computação gráfica em C# - Passos inicias

Quantidade de visualizações: 18293 vezes
Qualquer um que queira iniciar os estudos e desenhos de gráficos em C# usando Windows Forms deve obrigatoriamente entender um pouco de GDI e GDI+. GDI é o acrônimo de Graphics Device Interface e GDI+ é o seu sucessor em versões mais recentes do Microsoft Windows. Com a indepedência do GDI+ podemos desenhar em um formulário, na tela ou impressora sem qualquer modificação no código. O próprio GDI+ se encarrega dos detalhes da implementação de cada um destes diferentes dispositivos.

O GDI+ é uma interface de programação de aplicações (API) que forma o sub-sistema do sistema operacional Microsoft Windows XP. Esta API é a responsável pela exibição de informações na tela e impressoras. O GDI+ é uma DLL Win32 chamada de gdiplus.dll que é distribuída com o Windows XP e versões mais recentes do Windows. Esta DLL está também disponível para uso em versões do Windows anteriores ao XP.

A plataforma .NET encapsula as funcionalidades do GDI+ nos seguintes namespaces: System.Drawing, System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Text e System.Drawing.Printing.

Antes de iniciar seus desenhos em C# e Windows Forms, é importante entender o sistema de coordenadas do GDI+. Este sistema usa a medida de pixels ("picture elements"), que é a menor unidade de resolução no display de um monitor. Assim, o canto superior esquerdo de um controle GUI (um formulário, um painel, botão, etc) tem as coordenadas (0, 0), ou seja, x = 0 e y = 0. Lembre-se de que x é o eixo horizontal e y é o eixo vertical.

A classe Graphics, do pacote System.Drawing, é quem fornece boa parte dos métodos que usamos para desenhar em C# e Windows Forms. Veja sua posição na hierarquia de classes da plataforma .NET:

System.Object 
  System.MarshalByRefObject 
    System.Drawing.Graphics

Um objeto desta classe pode ser obtido com uma chamada ao método CreateGraphics() a partir de um objeto que herda de System.Windows.Forms.Control ou gerenciando o evento Paint do controle e acessando a propriedade Graphics da classe System.Windows.Forms.PaintEventArgs.

Veja um trecho de código no qual desenhamos uma linha horizontal no formulário a partir do clique de um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos desenhar uma linha horizontal de 300 pixels na
  // cor preta e espessura de 1 pixel
  g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), 
    new Point(320, 80));

  // vamos liberar o objeto Graphics
  g.Dispose();
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como resolver o problema da Subsequência de Soma Máxima em Java usando o Algorítmo de Kadane

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

O problema do Subvetor Contíguo de Soma Máxima, ou Subarray ou Subsequência de Soma Máxima é um dos algorítmos mais populares na programação dinâmica. Este problema envolve encontrar um subvetor, ou seja, um sub-array contíguo de maior soma possível. Por contíguo entendemos que os elementos da subsequência deverão estar consecutivos no vetor original.

O Algorítmo de Kadane, inventado por Jay Kadane em 1977, é um dos favoritos para a resolução deste problema, e deverá ser aplicado na resolução deste exercício.

Dado o vetor [-2, 1, -3, 4, -1, 2, 1, -5, 4], encontre a soma máxima da subsequência contígua. Não é exigido mostrar os elementos da sub-sequência, apenas o valor da soma máxima.

Sua saída deverá ser parecida com:

A soma maxima é: 6
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um array com 9 elementos
    int valores[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
    
    // agora usamos o algoritmo de Kadane para encontrar
    // a maior soma consecutiva
    int soma_maxima = kadane(valores);
    System.out.println("A soma maxima é: " + soma_maxima);
  }
  
  // método que recebe um array e usa o algoritmo de Kadane
  // para retornar a maior soma consecutiva
  public static int kadane(int vetor[]){
    // ajustamos max_atual para 0 e max_total para -1 
    int max_atual = 0, max_total = -1;
    
    // um laço for que percorre todos os elementos do
    // vetor, do primeiro até o último
    for(int i = 0; i < vetor.length; i++){
      // max_atual recebe ele mesmo mais o valor
      // do elemento no índice i
      max_atual = max_atual + vetor[i];
      
      // se max_atual for negativo nós o ajustamos
      // para zero novamente
      if(max_atual < 0){
        max_atual = 0;
      }
      
      // se max_atual for maior que max_total então
      // max_total recebe o valor de max_atual
      if(max_atual > max_total){
        max_total = max_atual;
      }
    }
    
    // e retornamos a soma máxima
    return max_total;
  }
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators)

Exercícios Resolvidos de C - Como converter de decimal para binário usando os operadores de bits em C

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

Escreva um programa C para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits.

Sua saída deverá ser parecida com:

Informe um número decimal: 9
O número binário é: 00000000000000000000000000001001
Resposta/Solução:

Veja a resolução completa para o exercício em C, comentada linha a linha:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// vamos definir o tamanho do vetor para guardar
// os dígitos do número binário
#define TAM_INT sizeof(int) * 8

int main(int argc, char *argv[]){
  // variáveis para ajudar a resolver o problema
  int decimal, indice, i;
  
  // vetor para guardar o número binário
  int binario[TAM_INT];

  setlocale(LC_ALL,""); // para acentos do português 

  // vamos pedir para o usuário informar um decimal inteiro
  printf("Informe um número decimal: ");
  scanf("%d", &decimal);

  // ajustamos índice para o último elemento do vetor
  indice = TAM_INT - 1;

  // enquanto índice for maior ou igual a 0
  while(indice >= 0){
    // vamos guardar o bit menos significativo LSB
    binario[indice] = decimal & 1;
    
    // diminuímos o índice
    indice--;

    // desloca bits para a direita uma posição
    decimal = decimal >> 1;
  }

  // agora vamos exibir o número binário
  printf("O número binário é: ");
  for(i = 0; i < TAM_INT; i++){
    printf("%d", binario[i]);
  }
 
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



Java ::: Fundamentos da Linguagem ::: Modificadores

Regras importantes sobre o uso de modificadores na linguagem Java

Quantidade de visualizações: 8059 vezes
1) Uma declaração de método ou variável pode conter somente um destes modificadores de acesso: public, protected ou private. Na ausência de um destes, o acesso será de pacote.

2) Classes não podem ser declaradas abstract e final simultâneamente.

3) Métodos abstratos não podem ser declarados private, static, final, native, strictfp ou synchronized.

4) Métodos não podem ser declarados native e strictfp ao mesmo tempo.

5) Métodos abstract e native não possuem corpo. Ex:

abstract void inserir();
native void obterDados();

6) Uma classe que contenha métodos abstratos deve ser declarada como abstrata.

7) Membros final não podem ser volatile.


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 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 Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


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