Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: JavaScript ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators)

JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript

Quantidade de visualizações: 1010 vezes
O operador de bits & (E/AND sobre bits) da linguagem JavaScript é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0.

Para quem gosta de Lógica Matemática, ou a Tabela Verdade da Lógica de Boole, vai se lembrar do conectivo "^", que diz que a proposição resultante da conjunção só será verdadeira quando as proposições simples individuais forem verdadeiras. O operador de bits & do JavaScript é similar ao conectivo "^" da Lógica Proposicional.

Vamos analisar os seguintes valores binários:

a) 0101 (5 decimal)
b) 0100 (4 decimal)

Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado:

0101
0100
......


Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em JavaScript agora. Observe o seguinte trecho de código:

<html>
<head>
  <title>Manipulação de Bits em JavaScript</title>
</head>
 
<body>

<script type="text/javascript">
  var a = 5;
  var b = 4;
  var c = a & b;
  
  // exibe o resultado (em binário e em decimal)
  document.writeln("a = " + obterBits(a) + " (" + a + ")");
  document.writeln("<br>b = " + obterBits(b) + " (" + b + ")");
  document.writeln("<br>a & b = " + obterBits(c) + " (" + c + ")");
  
  // função auxiliar que converte um decimal em sua representação em bits
  function obterBits(valor){
    var mascara = 1 << 31; // 10000000 00000000 00000000 00000000
......


Ao executar este código teremos o seguinte resultado:

    a = 00000000 00000000 00000000 00000101 (5) 
    b = 00000000 00000000 00000000 00000100 (4)
......


Link para compartilhar na Internet ou com seus amigos:

PHP ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em PHP - Como efetuar cálculos de porcentagem em PHP

Quantidade de visualizações: 32745 vezes
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em PHP.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em PHP:

<?php
  // Algoritmo que calcula porcentagem em PHP

  $valor = 178.00; // valor original
  $percentual = 15.0 / 100.0; // 15%
  $valor_final = $valor + ($percentual * $valor);
......


Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em PHP:

<?php
  // Algoritmo que calcula porcentagem em PHP

  $valor = 250.00; // valor original
  $percentual = 8.0 / 100.0; // 8%
  $valor_final = $valor - ($percentual * $valor);
......


Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em PHP:

<?php
  // Algoritmo que calcula porcentagem em PHP

  $perguntas = 90.0;
  $acertos = 72.0;

  // mostra a porcentagem de acertos
  echo "Porcentagem de acertos: " .
    (($acertos / $perguntas) * 100) . "%";
......


Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em PHP:

<?php
  // Algoritmo que calcula porcentagem em PHP

  $valor_anterior = 300.0; // valor anterior
  $novo_valor = 340.0; // valor novo

  // calcula a porcentagem de lucro
  // efetua o cálculo
......


Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em PHP:

<?php
  // Algoritmo que calcula porcentagem em PHP

  $valor = 70.0; // valor do produto
  $percentual = 5.0 / 100.0; // 5%

  // calcula a comissão
  $comissao = $percentual * $valor;
......



C# ::: Windows Forms ::: CheckBox

Como detectar a mudança de estado da CheckBox do C# Windows Forms usando o evento CheckedChanged

Quantidade de visualizações: 9462 vezes
Em algumas situações gostaríamos de efetuar algumas tarefas quando uma CheckBox é marcada ou desmarcada. O melhor lugar para isso é no evento CheckedChanged da própria CheckBox. Este evento é disparado todas as vezes que a CheckBox é marcada ou desmarcada.

Coloque uma CheckBox no formulário e dê duplo-clique no controle. Automaticamente o marcador do evento CheckedChanged será criado. Modifique-o para o código abaixo:

private void checkBox1_CheckedChanged(object sender, EventArgs e){
  // vamos verificar se a CheckBox foi marcada ou desmarcada
  if((sender as CheckBox).Checked)
......


Note que aqui eu usei o operador as para tratar o controle que gerou o evento (sender) como um objeto da classe CheckBox.


Ruby ::: Dicas & Truques ::: Data e Hora

Como usar a classe Date do Ruby em seus programas

Quantidade de visualizações: 7221 vezes
A classe Date da linguagem Ruby representa datas. Ela o faz trabalhando com anos, meses, semanas e dias. Tenha em mente que, ao usar a classe Date não temos acesso a nada relacionado a horas, minutos ou segundos.

Internamente, uma data é representada como um número: ajd (Astronomical Julian Day Number). O dia da reforma do calendário (Day of Calendar Reform), sg, também é armazenado, para conversões para outros formatos de datas (há também um campo chamado "of" para a diferença de fuso horário, mas este é usado somente na subclasse DateTime).

Um novo objeto Date é criado usando-se um dos métodos de criação de objetos da classe. E tais métodos recebem nomes de acordo com o formato de data. Além disso, os argumentos fornecidos devem obedecer ao formato de data desejado, por exemplo, Date::civil() (apelido para Date::new()) com ano, mês e dia do ano, ou Date::ordinal() com ano e dia do ano. Todos estes métodos de criação de objetos da classe também aceitam o dia da reforma do calendário (Day of Calendar Reform) como um argumento opcional.

Objetos Date são imutáveis após sua criação.

Após criarmos um objeto Date, valores de data podem ser obtidos para os diferentes formatos de data suportados usando métodos de instância. Por exemplo, mon() retorna o mês civil, cwday() retorna o dia comercial da semana, e yday() retorna o dia ordinal do ano. Valores Date podem ser obtidos em qualquer formato, independente de qual formato foi usado para criar a instância do objeto.

A classe Date inclui o módulo Comparable, o que permite que objetos Date possam ser comparados e ordenados, faixas de datas possam ser criadas e assim por diante.

Veja no trecho de código abaixo como podemos criar um objeto Date representando a data atual:

# importa o módulo date
require 'date'

# obtém a data de hoje
hoje = Date.today
......



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

Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à reta

Quantidade de visualizações: 619 vezes
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa:

// pacote principal
package main

// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
  
// esta é a função principal do programa
func main() {
  // variáveis que vamos usar na resolução do problema
  var x1, y1, x2, y2, m, n float32
  var sinal string

  // vamos ler as coordenadas do primeiro ponto
  fmt.Print("Coordenada x do primeiro ponto: ")
  fmt.Scanln(&x1)
  fmt.Print("Coordenada y do primeiro ponto: ")
  fmt.Scanln(&y1)
    
  // vamos ler as coordenadas do segundo ponto
  fmt.Print("Coordenada x do segundo ponto: ")
......


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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
......


temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Delphi para iniciantes - Como escrever uma função que retorna uma matriz de Integer

Quantidade de visualizações: 13323 vezes
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:

type // vamos declarar um novo tipo
......


Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// função usada para construir e retornar uma
// matriz de Integer
function obterValores: TMatrizInteiros;
var
  tempArray: TMatrizInteiros;
  i: integer;
begin
  // vamos definir o tamanho da matriz
......


Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

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.