Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: JSP (Java Server Pages) ::: Dicas de Estudo e Anotações ::: Passos Iniciais

Aprenda a importar suas próprias classes para uma página JSP

Quantidade de visualizações: 12083 vezes
Vimos em dicas anteriores que pacotes de classes ou classes individuais podem ser importados para uma página JSP usando-se o atributo import na diretiva de página:

<%@ page import="java.util.*" %>

Neste tópico veremos como é possível criar nossas próprias classes e usá-las em uma página JSP. Será um bom exercício antes de estudarmos JavaBeans. Comece escrevendo a seguinte classe:

Código para Estados.java:
package estudos;

public class Estados{
  String selecionado;
  String estados[] = {"GO", "MT", "SP", "RJ", "TO",
                      "MA", "RS", "MG", "CE", "SC"};

  public Estados(String sel){
    selecionado = sel;
  }

  public Estados(){
    selecionado = estados[0];
  }

  public String toString(){
    String html = "<select name="estado">
";

    for(int i = 0; i < estados.length; i++){
      if(estados[i].equals(selecionado))
        html += " <option value="" + 
             estados[i] + "" selected>" + 
             estados[i] + "</option>
";
      else
        html += " <option value="" + estados[i] + "">" + 
             estados[i] + "</option>
"; 
    }

    html += "</select>";

    return html;
  }
}
Experimente compilar esta classe e vamos analisá-la cuidadosamente. O primeiro passo é observar que esta classe fará parte de um pacote chamado estudos:

package estudos;

Assim, nossa primeira preocupação é como disponibilizar a classe de modo que a aplicação web a encontre. Nada muito complicado. Tudo que você tem a fazer é criar um diretório chamado estudos dentro do diretório classes que está contido no diretório WEB-INF de sua aplicação web. Agora copie o arquivo Estados.class para o diretório recém-criado.

Nota: Se você fizer alterações na classe depois de esta ser disponibilizada para o container, pode haver a necessidade de reiniciar a aplicação web para que as alterações sejam refletidas. Visite www.recomende.com para aprender como fazer isso no Tomcat.

O nome de nossa classe personalizada é Estudos e servirá para montar um elemento HTML select contendo os nomes de todos os estados. Esta classe contém duas variáveis globais. A primeira é apenas uma String que armazenará o valor do estado que deverá aparecer selecionado no elemento select:

String selecionado;

A segunda variável é um array do tipo String contendo os estados a serem mostrados no elemento:
String estados[] = {"GO", "MT", "SP", "RJ", "TO",
                    "MA", "RS", "MG", "CE", "SC"};
Por questões de espaço não coloquei todos os estados, faça isso se quiser usar este código em uma aplicação real.

O primeiro construtor da classe receberá como argumento o estado que deverá estar selecionado e o fornecerá à variável global selecionado:
public Estados(String sel){
  selecionado = sel;
}
O segundo construtor (que pode ser chamado sem argumentos) simplesmente fornece o primeiro elemento do array estados à variável selecionado:
public Estados(){
  selecionado = estados[0];
}
E agora a parte mais complexa da classe: o método toString. É com o auxilio deste método que conseguimos montar o elemento select na página. A primeira linha do método:

String html = "<select name="estado"> ";

cria uma variável chamada html e define como seu valor a tag de abertura do elemento select. Fique atento ao uso da barra de escape "" para preservar as aspas que circundam os valores fornecidos aos atributos do elemento. A quebra de linha não é obrigatória. Ela apenas ajudará na formatação do código fonte da página.

Em seguida temos um laço for que é executado uma vez para cada elemento do array estados:
for(int i = 0; i < estados.length; i++){
  // o código do laço vai aqui
}
Na primeira linha dentro deste laço nós testamos se o valor do array sendo lido é igual ao conteúdo da variável selecionado. Se o teste resultar verdadeiro, nós acrescentamos o atributo selected ao elemento option. Isso faz com que o valor seja selecionado quando o elemento select for exibido na página:
if(estados[i].equals(selecionado))
  html += " <option value="" + estados[i] + "" 
     selected>" + estados[i] + "</option>
";
else
  html += " <option value="" + estados[i] + "">" +
     estados[i] + "</option>
"; 
se o teste resultar falso nós simplesmente criamos elementos option com os valores do array.

A linha:

return html;

Devolverá à página JSP o conteúdo HTML a ser exibido.

Pronto. A classe já está criada. Agora é hora de testá-la em uma página JSP. Veja o código:

Código para testar_classe.jsp:
<%@ page language="java" import="estudos.*" %>
<html>
<head>
<title>Importando classes personalizadas</title>
</head>
<body>

<form>
Selecione o Estado: <%= new Estados("MT") %>
</form>

</body>
</html>
Execute esta página e observe o resultado obtido.

Veja como a classe é importada:

<%@ page language="java" import="estudos.*" %>

Aqui estamos importando todo o pacote estudos. Se quiser importar apenas a classe Estados, basta alterar a diretiva para:

<%@ page language="java" import="estudos.Estados" %>

Observe agora a expressão JSP usada para exibir os estados na página:

<%= new Estados("MT") %>

Tudo que fizemos aqui foi construir uma instancia da classe Estados e fornecer o valor que deverá aparecer selecionado no elemento select. Experimente construir uma instancia usando o construtor padrão (sem argumentos):

<%= new Estados() %>

Estude bastante este tópico. Será o ponto de partida para o uso de JavaBeans e construções de bibliotecas de tags personalizadas.

Link para compartilhar na Internet ou com seus amigos:

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: 642 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: ")
  fmt.Scanln(&x2)
  fmt.Print("Coordenada y do segundo ponto: ")
  fmt.Scanln(&y2)
  
  sinal = "+"
  // vamos calcular o coeficiente angular da reta
  m = (y2 - y1) / (x2 - x1)
  // vamos calcular o coeficiente linear
  n = y1 - (m * x1)
 
  // coeficiente linear menor que zero? O sinal será negativo
  if n < 0 {
    sinal = "-"
    n = n * -1
  }
  
  // mostra a equação reduzida da reta
  fmt.Printf("Equação reduzida: y = %.2fx %s %.2f",
    m, sinal, n);
}

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
y = 6.5000

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.


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

Como passar vetores e matrizes (arrays) para seus métodos Java

Quantidade de visualizações: 15942 vezes
Nesta dica mostrarei como você pode passar um array (vetor ou matriz) para seus métodos Java. Observe que um array é um objeto Java, e objetos são sempre passados por referência. Assim, as alterações feitas no vetor ou matriz dentro do método afetarão o array original.

Veja o código completo para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    int[] valores = {43, 6, 17, 23, 8};
     
    // Exibe os valores antes de passar o
    // array para o método multiplicar
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + ", ");
    }
   
    System.out.println();
 
    // fornece o array para o método multiplicar
    multiplicar(valores, 2); 
 
    // Exibe os valores depois de passar o
    // array para o método multiplicar
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + ",  ");
    }
 
    System.exit(0);
  }
 
  public static void multiplicar(int a[], int num){
    for(int i = 0; i < a.length; i++){
      a[i] = a[i] * num;
    }
  } 
}

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

43, 6, 17, 23, 8,
86, 12, 34, 46, 16,


C++ ::: Win32 API (Windows API) ::: Passos Iniciais

Como usar a função WinMain das aplicações C++ GUI usando a Windows API

Quantidade de visualizações: 9404 vezes
Cada programa de interface gráfica escrito em C++ e usando a Windows API possui como ponto de entrada de execução, a função WinMain(). Esta função é a equivalente do main() em aplicações console. Veja sua assinatura:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


É possível usar esta função sem a macro WINAPI, ou seja:

int WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


O primeiro passo a observar é que esta função deve retornar um valor inteiro quando finalizar. Isso serve para informar ao sistema operacional se algum erro ocorreu durante a tentativa de sua execução.

Vejamos agora uma explicação detalhada de seus parâmetros:

HINSTANCE hInstance - É um handle para o módulo executável do programa (o arquivo .exe na memória).

HINSTANCE hPrevInstance - Sempre NULL para programas Win32.

LPSTR lpCmdLine - Os argumentos da linha de comando como uma única string. Não inclui o nome do programa.

int nCmdShow - Um valor inteiro que pode ser passado para a função ShowWindow().

hInstance é usado para tarefas tais como carregar recursos ou outras que são realizadas em um módulo. Um módulo é um EXE ou DLL carregada em seu programa.

hPrevInstance era usado como um handle para uma instância executada anteriormente no Win16. Este cenário não mais ocorre. Em Win32 podemos ignorar por completo este parâmetro.


Java ::: Dicas & Truques ::: Gráficos

Como desenhar em um JComponent do Java Swing (JLabel, JButton, JPanel, etc) usando o método paintComponent()

Quantidade de visualizações: 9857 vezes
A classe JComponent possui um método chamado paintComponent(Graphics g) que recebe um objeto da classe Graphics que pode ser usado para desenhar na superfície do componente. Desta forma, qualquer componente que herda de JComponent pode ser usado para esta finalidade.

Para demonstrar como isso é feito, veja um trecho de código no qual desenhamos uma linha em um JLabel e o anexamos à janela do aplicativo. Observe a criação de uma classe personalizada que herda de JLabel:

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();

    // Cria o JLabel
    MinhaLabel label = new MinhaLabel();
    c.add(label);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(
      JFrame.EXIT_ON_CLOSE);
  }
}

// classe personalizada que permite desenhar
class MinhaLabel extends JLabel{
  protected void paintComponent(Graphics g){
    super.paintComponent(g);
    g.drawLine(0, 0, 200, 200); 
  }
}



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

Algoritmos Resolvidos de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz

Quantidade de visualizações: 13125 vezes
Exercício Resolvido de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz

Pergunta/Tarefa:

Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

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

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
  int matriz[3][3]; // uma matriz de três linhas e três colunas
  int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal

  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < 3; i++){ // linhas
    for(int j = 0; j < 3; j++){ // colunas
      cout << "Valor para a linha " << i << " e coluna " << j << ": ";
      cin >> matriz[i][j];       
    }       
  }
  
  // vamos mostrar a matriz da forma que ela foi informada
  cout << "\n\nValores na matriz\n" << endl;
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      cout << setw(5) << matriz[i][j];   
    }
    
    cout << "\n" << endl;       
  }
  
  // vamos calcular a soma dos elementos da diagonal principal
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
  
  cout << "A soma dos elementos da diagonal principal e: " << 
    soma_diagonal << endl;
  cout << "\n" << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



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

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

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

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


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