Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: VB.NET ::: Dicas & Truques ::: Matemática e Estatística

Escrevendo uma função que converte valores binários em decimal

Quantidade de visualizações: 8341 vezes
'Este exemplo mostra como escrever um função que
'converte um valor binário em decimal

Module Module1
  Sub Main()
    Dim binario As String = "10000000"
    Dim dec As Integer = BinToDec(binario)

    Console.WriteLine(binario & " em decimal é " & dec)

    Console.WriteLine()
    Console.WriteLine("Pressione uma tecla para sair...")
    Console.ReadKey()
  End Sub

  Public Function BinToDec(ByVal bin As String) As Long
    Dim n As Long

    For s As Integer = 1 To Len(bin) Step 1
      n = n + (Mid(bin, Len(bin) - s + 1, 1) * (2 ^ (s - 1)))
    Next

    Return n
  End Function
End Module


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Data e Hora

Java para iniciantes - Como usar a classe Date em suas aplicações Java

Quantidade de visualizações: 13780 vezes
A classe Date pertence ao pacote java.util, e, embora muitos de seus métodos estejam em desuso (Deprecated), ainda encontraremos muito código Java que usa esta classe para trabalhar com datas e horas. Veja sua posição na hierarquia de classes Java:

java.lang.Object
......


Esta classe implementa as interfaces Serializable, Cloneable e Comparable<Date> e suas subclasses conhecidas são Date, Time, Timestamp (todas do pacote java.sql). As informações abaixo podem ser encontradas na documentação da classe Date.

A classe Date representa um momento específico no tempo, com uma precisão de milisegundos.

Antes do JDK 1.1, esta classe tinha duas funções adicionais. Ela permitia a interpretação de datas como valores de ano, mês, dia, hora, minuto e segundo. Também permitia a formatação e parsing de strings de datas. Infelizmente, a API para estas funções não facilitava a internacionalização. Assim, a partir do JDK 1.1, a classe Calendar deve ser usada para converter entre campos de datas e horas e a classe DateFormat deve ser usada para formatar e fazer o parsing de strings de datas. Os métodos correspondentes a estas funções estão em desuso (Deprecated) na classe Date.

Embora a classe Date tenha sido projetada para refletir a hora universal coordenada (Coordinated Universal Time - UTC), ela pode não ser capaz de fazer isso corretamente, dependendo do sistema no qual a Java Virtual Machine esteja sendo executada. A grande maioria dos sistemas operacionais modernos assume que 1 dia = 24 × 60 × 60 = 86400 segundos em todos os casos. No UTC, contudo, de dois em dois anos, aproximadamente, há um segundo extra, chamado de "leap second" (a mesma idéia do ano bissexto). O leap second é sempre adicionado como o último segundo do dia e sempre nos dias 31 de dezembro ou 30 de junho. Por exemplo, o último minuto do ano de 1995 teve 61 segundos, graças ao segundo extra que foi adicionado. A maioria dos relógios dos computadores não são precisos o suficiente para refletir a distinção do leap second.

Alguns padrões de computadores são definidos em termos da hora de Greenwich (Greenwich mean time - GMT), que é o equivalente ao Universal Time (UT). GMT é o nome "civil" para o padrão, UT é o nome "científico" para o mesmo padrão. A distinção entre UTC e UT é que UTC é baseado em um relógio atômico e UT é baseado em observações astronômicas, o que para todos os propósitos práticos não traz diferença significativa. Devido à rotação da terra não ser uniforme (ela desacelera ou acelera de formas complicadas), O UT nem sempre flui uniformente. Segundos extras (Leap seconds) são inseridos conforme necessário no UTC de forma a mantê-lo dentro dos 0.9 segundos do UT1, que é uma versão do UT com algumas correções aplicadas. Há outros sistemas de datas e horas também; por exemplo, a escala de tempo pelo sistema de posicionamento global baseado em satélite (satellite-based global positioning system - GPS) é sincronizado com o UTC mas não é ajustado para os segundos extras.

Em todos os métodos da classe Date que aceitam ou retornam valores de ano, mês, dia, hora, minuto e segundos, as seguintes representações são usadas:


  • Um ano y é representado pelo inteiro y - 1900.

  • Um mês é representado por um inteiro na faixa de 0 a 11. 0 é janeiro, 1 é fevereiro e assim por diante; assim, 11 é dezembro.

  • Um dia (dia do mês) é representado por um inteiro na faixa de 1 a 31, como estamos acostumados.

  • Uma hora é representada por um inteiro na faixa de 0 a 23. Assim, a hora da meia-noite até 1 a.m. é a hora 0 e a hora do meio-dia até 1 p.m. é a hora 12.

  • Um minuto é representado por um inteiro na faixa de 0 a 59, como estamos acostumados.

  • Um segundo é representado por um inteiro na faixa de 0 a 61; os valores 60 e 61 ocorrem somente para os segundos extras (leap seconds) e somente nas implementações Java que realmente lidam com estes segundos corretamente. Devido à forma na qual leap seconds são apresentados atualmente, é pouco provável que dois leap seconds ocorrerão no mesmo minuto, mas esta especificação segue as convenções de datas e horas do ISO C.

  • Em todos os casos, argumentos fornecidos a estes métodos não precisam necessariamente estar nas faixas indicadas; por exemplo, uma data pode ser definida como 32 de janeiro e ser interpretada como 1º de fevereiro.




Node.js ::: Express.js ::: Passos Iniciais

Node.js Express.js - Como escrever sua primeira aplicação Express.js

Quantidade de visualizações: 1663 vezes
Se você chegou até esta página vindo(a) de um sistema de busca tal como o Google, saiba que o Express.js é um framework web baseado no núcleo do Node.js, ou seja, antes de experimentar o exemplo abaixo, você deve ter uma instalação funcional do Node.js na sua máquina. Além disso, o módulo express deve estar instalado também, e 100% operacional.

No entanto, se sua instalação do Node.js ainda não tem o express, basta entrar no diretório que você instalou o Node.js e disparar o comando a seguir:

npm install express
......


Verifique se a instalação foi feita com sucesso e vamos continuar.

Este exemplo é bem simples e requer apenas um arquivo. Para tanto, abra o seu editor de código favorito e digite a listagem abaixo:

// vamos importar o módulo express
var express = require('express');
// o servidor vai ouvir na porta 8081
var porta = 8081;
var app = express();

// o asterisco (*) quer dizer que todas as requisições vão cair aqui
......


Salve o arquivo como servidor.js e execute o Node.js. Em seguida abra o seu navegador web no endereço http://localhost:8081 e veja o resultado.

Agora não deixe de ver nossas outras dicas de Node.js e aprender cada vez mais.


Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elas

Quantidade de visualizações: 14209 vezes
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados.

No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing.

Veja o código Java completo:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.event.*;
 
public class Estudos extends JFrame{
  int linha, coluna;
   
  public Estudos(){
    super("JTable");
         
    // colunas da tabela
    String[] colunas = {"Cidade", "Estado", "Habitantes"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Goiânia", "GO", "43.023.432"},
        {"São Paulo", "SP", "5.343.234"},
        {"Rio de Janeiro", "RJ", "6.434.212"},
        {"Jussara", "GO", "87.454"},
        {"Barra do Garças", "MT", "64.344"}
    };
         
    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas);
    tabela.setPreferredScrollableViewportSize(new 
      Dimension(350, 50));
     
    class CellListener extends MouseMotionAdapter{
      public void mouseMoved(MouseEvent e){
    JTable tb = (JTable)e.getSource();
        linha = tb.rowAtPoint(e.getPoint());
        coluna = tb.columnAtPoint(e.getPoint());
        tb.repaint();
......


Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado:




C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em C

Quantidade de visualizações: 1756 vezes
Nesta dica mostrarei como podemos tirar proveito do Teorema de Pitágoras para obter a medida do cateto adjascente quando temos as medidas da hipotenusa e do cateto oposto. Este teorema diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos", o que torna a nossa tarefa, na linguagem C, muito fácil.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[b^2 = c^2 - a^2\]

Veja que agora o quadrado do cateto adjascente é igual ao quadrado da hipotenusa menos o quadrado do cateto oposto. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem C:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char *argv[]){
  float c = 36.056; // medida da hipotenusa
  float a = 20; // medida do cateto oposto
  
  // agora vamos calcular a medida da cateto adjascente
......


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

A medida do cateto adjascente é: 30.000586

Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercício Resolvido de Java - Escreva um programa Java console que solicite ao usuário que informe dois valores inteiros. Em seguida seu programa deverá efetuar a soma dos dois valores e exibí-la

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

Escreva um programa Java console que solicite ao usuário que informe dois valores inteiros. Em seguida seu programa deverá efetuar a soma dos dois valores e exibí-la. O aplicativo deverá exibir a seguinte saída:

Informe o primeiro valor: 7
Informe o segundo valor: 3
A soma dos valores é: 10

Dica: Use a classe Scanner para efetuar a leitura dos valores informados pelo usuário:

Sugestão: Que tal modificar a solução para efetuar a leitura e exibir o resultado usando a classe JOptionPane?

Resposta/Solução:

Veja a resolução do exercício usando a classe Scanner:

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe Scanner
  // import java.util.Scanner;

  // vamos criar um objeto da classe Scanner
  Scanner entrada = new Scanner(System.in);

  int a, b; // variáveis que receberão os valores informados
  int soma; // variável que guardará a soma dos valores informados

  // vamos pedir ao usuário que informe o primeiro valor
  System.out.print("Informe o primeiro valor: ");
......


Veja agora a resolução usando a classe JOptionPane:

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe JOptionPane
  // import javax.swing.JOptionPane;

  int a, b; // variáveis que receberão os valores informados
  int soma; // variável que guardará a soma dos valores informados

  // vamos pedir ao usuário que informe o primeiro valor
  a = Integer.parseInt(JOptionPane.showInputDialog("Informe o primeiro valor:"));
......



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



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