Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: PHP ::: Dicas & Truques ::: Programação Orientada a Objetos

Como escrever um método ou função PHP que retorna uma referência para um objeto de uma determinada classe

Quantidade de visualizações: 8128 vezes
Em algumas situações gostaríamos de chamar um método ou função em PHP e obter, como retorno, um objeto de uma determinada classe. Nesta dica eu mostro como isso pode ser feito. Veja o código:

<?
  // classe Cliente com duas variáveis privadas e seus
  // correspondentes métodos mutatórios e acessórios
  class Cliente{
    private $nome;
    private $email;

    public function setNome($nome){
      $this->nome = $nome;
    }

    public function getNome(){
      return $this->nome;
    }

    public function setEmail($email){
      $this->email = $email;
    }

    public function getEmail(){
      return $this->email;
    }
  }
  // fim da classe Cliente
......


Ao executar este código teremos o seguinte resultado:

Nome: Osmar J. Silva
E-Mail: osmar@arquivodecodigos.net

Veja que, ao efetuar uma chamada à função obterCliente(), esta cria um novo objeto da classe Cliente e nos retorna uma referência a este objeto. Isso quer dizer que, mesmo após a finalização da função obterCliente(), a referência retornada ainda continuará ativa. A memória alocada por tal referência será liberada somente quando a variável usada para armazenar a referência (em nosso caso a variável $cliente) for também liberada (geralmente atribuindo NULL à variável que guarda a referência ao objeto).

Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Rotinas de Conversão

Como converter um tipo string para um tipo decimal em C# usando o método Parse() da classe Decimal

Quantidade de visualizações: 12264 vezes
Este exemplo mostra como converter uma string em um valor do tipo decimal. Para isso nós vamos usar o método Parse() da classe Decimal da linguagem C#. No entanto, é preciso termos cuidado, pois este método pode lançar três tipos de exceções: ArgumentNullException, FormatException e OverflowException.

Veja o trecho de código a seguir:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string valor_string = "530,54";
      // experimente com os valores "23,5", "arquivo" e
      // "659"

      // tenta efetuar a conversão de string para decimal
      try {
        decimal valor_decimal = decimal.Parse(valor_string);
        // exibe o resultado
        Console.WriteLine("Valor convertido com sucesso: " + valor_decimal);
......


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

Valor convertido com sucesso: 530,54

Se tentarmos atribuir um valor string a um tipo decimal, sem efetuar a conversão, teremos o seguinte erro de compilação:

Cannot implicitly convert type string to decimal


JavaScript ::: Web APIs (APIs Web) ::: MediaDevices Interface (Interface MediaDevices)

HTML5 + JavaScript - Como usar a interface MediaDevices em seus códigos JavaScript

Quantidade de visualizações: 1427 vezes
A interface MediaDevices é um daqueles objetos que vemos com frequencia em códigos JavaScript e não entendemos muito bem o seu funcionamento. Nesta dica vou decifrá-la.

O objetivo da interface MediaDevices é fornecer acesso aos dispositivos de entrada de mídia conectadas e às quais o navegador tem acesso, a saber, câmeras, microfone e compartilhamento de tela. É por meio dessa interface que acessamos tais dispositivos.

A interface MediaDevices está disponível como um objeto do objeto navigator. Veja como testar sua existência e suporte no seu navegador web:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<title>A interface MediaDevices</title>
  
</head>
<body>
 
<script type="text/javascript">
  // o browser suporta o MediaDevices?
......


Note que mediaDevices é um objeto Singleton do objeto navigator, ou seja, só há uma instância desse objeto disponível no contexto de execução de códigos no navegador. Há também a preocupação em relação à segurança. Alguns navegador podem restringir o acesso a este objeto se você não estiver em um ambiente HTTPS ou localhost.


Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como converter uma imagem colorida para tons de cinza em Java usando o filtro GrayFilter - Processamento de imagens em Java

Quantidade de visualizações: 11107 vezes
O exemplo abaixo mostra como usar a classe GrayFilter para converter uma imagem JPG colorida em uma imagem com tons de cinza. Veja que o segundo argumento no construtor da classe GrayFilter que usamos permite definir o nível de cinza (em porcentagem) que será aplicado:

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  private BufferedImage imagemCinza;
  AreaImagem areaImagem;  

  public Estudos(){
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          JFileChooser fc = new JFileChooser();

          int res = fc.showOpenDialog(null);
          if(res == JFileChooser.APPROVE_OPTION){
	    File arquivo = fc.getSelectedFile();  
          
            imagem = null;
          
            try{
              imagem = ImageIO.read(arquivo);
            }
            catch(IOException exc){
              JOptionPane.showMessageDialog(null, 
                "Erro ao carregar a imagem: " + 
                exc.getMessage());
            }

            if(imagem != null){
              areaImagem.imagem = imagem;
              areaImagem.repaint();  
            }
          }
        }
      }
    );

    JButton btn2 = 
      new JButton("Converter Escala Cinza");
    btn2.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
......



C# ::: Dicas & Truques ::: Tipos de Dados

Curso de C# - Como usar os tipos de dados short e ushort da linguagem C#

Quantidade de visualizações: 8730 vezes
O tipo de dados short é um tipo primitivo integral com sinal (signed) que pode armazenar valores inteiros na faixa de -32.768 até 32.767. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.Int16 da plataforma .NET.

Podemos obter os valores mínimo e máximo que podem ser armazenados em um short por meio de suas propriedades MinValue e MaxValue. Veja:

static void Main(string[] args){
  // vamos obter o valor mínimo de um short
  short minimo = short.MinValue;

  // vamos obter o valor máximo de um short
  short maximo = short.MaxValue;
  
......


Ao executarmos este código teremos o seguinte resultado:

A faixa de valores de um short é: -32768 até 32767.

Ao atribuir valores para um short em tempo de design, ou seja, como um literal, devemos ter o cuidado de não atribuir valores que estejam fora da faixa permitida. Veja:

static void Main(string[] args){
  // a linha abaixo não vai compilar
  short valor = 35767;
......


Este código não compila. A mensagem de erro:

Constant value '35767' cannot be converted to a 'short'

nos informa que o valor 35767 (que está acima da faixa permitida) não pode ser convertido para um short. Assim, se você desejar mesmo efetuar tal procedimento, uma conversão forçada (cast) deve ser feita:

static void Main(string[] args){
  int valor = 35767;

  // vamos forçar a conversão para short
  short valor2 = (short)valor;
 
  // vamos mostrar o resultado
......


Aqui nós "esprememos" o valor 35767 para um short e o resultado, -29769, definitivamente não é o que estávamos esperando.

O tipo ushort é um tipo primitivo integral sem sinal (unsigned) que pode armazenar valores inteiros na faixa de 0 até 65.535. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.UInt16 da plataforma .NET.

Podemos obter os valores mínimo e máximo que podem ser armazenados em um ushort por meio de suas propriedades MinValue e MaxValue. Veja:

static void Main(string[] args){
  // vamos obter o valor mínimo de um ushort
  ushort minimo = ushort.MinValue;

  // vamos obter o valor máximo de um ushort
  ushort maximo = ushort.MaxValue;
  
......


Ao executarmos este código teremos o seguinte resultado:

A faixa de valores de um ushort é: 0 até 65535.


Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular vetor unitário em Java - Java para Física e Engenharia

Quantidade de visualizações: 328 vezes
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$.

O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$.

O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor.

Então, vejamos a fórmula para a obtenção do vetor unitário:

\[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\]

Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível.

Veja agora o código Java que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
     
    // vamos ler os valores x e y
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
......


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

Informe o valor de x: -4
Informe o valor de y: 6
O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437

Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
     
    // vamos ler os valores x, y e z
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de z: ");
    double z = Double.parseDouble(entrada.nextLine());
......


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

Informe o valor de x: 3
Informe o valor de y: 7
Informe o valor de z: 5
O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517


Desafios, 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á 15 usuários muito felizes estudando em nosso site.