Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: JSF - Java Server Faces ::: JSF Validation Controls (Controles de Validação) :::

Como validar seus formulários JSF usando expressões regulares e o controle <f:validateRegex>

Quantidade de visualizações: 13288 vezes
O controle <f:validateRegex>, um objeto da classe RegexValidator (do pacote javax.faces.validator), é usado quando queremos usar expressões regulares na validação dos campos de nossos formulários JSF. O funcionamento é muito simples. Tudo que precisamos fazer é fornecer uma string representando o padrão de expressão regular a ser igualado.

Veja uma página JSP ou Facelets que contém uma caixa de texto e um controle <f:validateRegex>. Para a propriedade pattern do validador eu defini um padrão de expressão regular para a validação do formato de CEP brasileiro, ou seja, os valores 34228-987 e 23.654-987 deverão ser considerados válidos. Outros formatos não passarão na validação:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Estudos JSF</title>
    </h:head>
    <h:body>
       <h4>Cadastro de Contatos</h4>

       <h:form>

......


Execute a aplicação e experimente informar diferentes valores para o CEP. Se o formato não for reconhecido pela expressão regular a mensagem:

O valor informado não obedece ao padrão definido

será exibida. Note novamente a expressão regular definida para a propriedade pattern do controle <f:validateRegex>:

pattern="(^[0-9]{2}\.?[0-9]{3}-{1}[0-9]{3})"

Esta expressão regular é de fácil entendimento. O valor do CEP deverá começar com dois dígitos (^[0-9]{2}), um ponto opcional (\.?), mais três dígitos ([0-9]{3}), um hífen obrigatório (-{1}) e finalmente mais três dígitos ([0-9]{3}).

Veja agora uma página JSP ou Facelets contendo um controle <f:validateRegex> que valida um endereço de e-mail:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Estudos JSF</title>
    </h:head>
    <h:body>
       <h4>Cadastro de Contatos</h4>

       <h:form>

          E-Mail:<br />
......


Note que o padrão de expressão regular para a validação do endereço de e-mail deve ser informado em apenas uma linha. Para finalizar, observe que o controle <f:validateRegex> foi adicionado na versão 2.0 do JSF.

Link para compartilhar na Internet ou com seus amigos:

Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Matemática e Estatística

Tutorial Machine Learning com Python - Como usar o método mean() da biblioteca NumPy para calcular média (ou média aritmética simples)

Quantidade de visualizações: 3350 vezes
Média aritmética (ou simplesmente média simples) é a soma de vários valores e dividido pelo total deles. Ou seja, o resultado dessa divisão equivale a um valor médio entre todos os valores.

Veja a seguinte figura:



Veja que temos 4 valores: 4, 9, 12 e 25. Assim, para obter a média aritmética desses valores, só precisamos somá-los e depois dividir pela quantidade, ou seja, por 4. A média resultante será 12,5.

A biblioteca NumPy do Python nos oferece o método mean(), muito usado em Data Science e Machine Learning, que recebe um vetor de valores númericos (inteiro ou decimais) e retorna a média deles. Veja um exemplo:

# importamos a biblioteca NumPy
import numpy

def main():
  # valores a serem observados
  valores = [4, 9, 12, 25]

  # vamos obter a média aritmética simples
......


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

A média dos valores é: 12.5


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercícios Resolvidos de Java - Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livros

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

Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada.

A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título.

Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java.

Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores.

Sua saída deverá ser parecida com:

-------------------------------------------------
:: Biblioteca Programação e Artes ::
-------------------------------------------------
Bem-vindo(a) ao sistema. Escolha a opção desejada

1 - Novo Livro
2 - Listar Livros
3 - Pesquisar Livro
4 - Excluir Livro
5 - Sair

Sua opção: 1

Título: JAVA PARA INICIANTES
Autor: OSMAR J SILVA
Quant Páginas: 480

O livro foi cadastrado com sucesso
Resposta/Solução:

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

Código para a classe Livro, que deve estar no arquivo Livro.java:

package estudos;

// definição da classe Livro
public class Livro {
  private int id; // id do livro. Não pode repetir
  private String titulo;
  private String autor;
  private int paginas;
  
  // construtor vazio da classe Livro
  public Livro() {}
  
  // construtor cheio da classe Livro
  public Livro(int id, String titulo, String autor, int paginas) {
    this.id = id;
    this.titulo = titulo;
    this.autor = autor;
    this.paginas = paginas;
  }

  public int getId() {
    return id;
......


Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java:

package estudos;

// imports necessários
import java.util.ArrayList;
import java.util.Scanner;

// definição da classe Biblioteca
public class Biblioteca {
  String nome;
  ArrayList<Livro> livros; // ArrayList para guardar os livros
  // variável do tipo int para gerar IDs auto-incremento para os livros
  int idUltimoLivroCadastrado = 0;
  
  // construtor da classe
  public Biblioteca(String nome) {
    this.nome = nome;
    this.livros = new ArrayList();
  }
  
  // exibe o menu de opções da biblioteca
  public void exibirMenu(){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // variáveis temporárias
    Livro temp;
    String pesquisaLivro;
    
    // um laço infinito com as opções do menu
    while(true){
      System.out.println("\n-------------------------------------------------");
      System.out.println(":: " + this.nome + " ::");
      System.out.println("-------------------------------------------------");
      System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n");
      System.out.println("1 - Novo Livro");
      System.out.println("2 - Listar Livros");
      System.out.println("3 - Pesquisar Livro");
      System.out.println("4 - Excluir Livro");
      System.out.println("5 - Sair");
      System.out.print("\nSua opção: ");
      // lê a opção do usuário
      int opcao = Integer.parseInt(entrada.nextLine());
    
      // um menu switch para ler as opções do menu 
      switch(opcao){
        case 1: // vamos cadastrar um novo livro
          System.out.print("\nTítulo: ");
          String titulo = entrada.nextLine();
          System.out.print("Autor: ");
          String autor = entrada.nextLine();
          System.out.print("Quant Páginas: ");
          int quantPaginas = Integer.parseInt(entrada.nextLine());
          
          // vamos gerar o id deste livro
          int id = ++this.idUltimoLivroCadastrado;
        
          // agora vamos criar um novo objeto da classe Livro
          Livro livro = new Livro(id, titulo, autor, quantPaginas);
          // e o adicionamos no ArrayList de livros
          livros.add(livro);
        
          // e finalmente mostramos uma mensagem de sucesso.
          System.out.println("\nO livro foi cadastrado com sucesso");
        
          break;
        
        case 2: // vamos listar os livros cadastrados
          if(livros.isEmpty()){
            System.out.println("\nNão há nenhum livro cadastrado.");  
          }
          else{
            for(int i = 0; i < livros.size(); i++){
......


E aqui está o código para a classe principal Estudos, no arquivo Estudos.java:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um novo objeto da classe Biblioteca
    Biblioteca b = new Biblioteca("Biblioteca Programação e Artes");
......



Delphi ::: Dicas & Truques ::: Aplicativos e Outros

Como calcular a distância entre dois pontos na terra em Delphi

Quantidade de visualizações: 897 vezes
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado.

O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes.

Veja o código Delphi completo:

// função que recebe dois pontos na terra e retorna a distância
// entre eles em quilômetros
function CalcularDistancia(lat1: double; lat2: double; lon1: double;
  lon2: double): double;
var
  raio_terra, dlon, dlat, a, c: double;
begin
  raio_terra := 6378.137; // raio da terra em quilômetros

  // o primeiro passo é converter as latitudes e longitudes
  // para radianos
  // não esqueça de adicionar a unit Math
  lon1 := DegToRad(lon1);
  lon2 := DegToRad(lon2);
  lat1 := DegToRad(lat1);
  lat2 := DegToRad(lat2);

  // agora aplicamos a Fórmula de Haversine
  dlon := lon2 - lon1;
  dlat := lat2 - lat1;
  a := Power(Sin(dlat / 2), 2) + Cos(lat1) * Cos(lat2)
    * Power(Sin(dlon / 2),2);
......


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

Informe a primeira latitude: -16,674551
Informe a primeira longitude: -49,303598
Informe a segunda latitude: -15,579321
Informe a segunda longitude: -56,10009
A distância entre os dois pontos é: 736,9 kms

Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton.

Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT.

A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador.


JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from()

Quantidade de visualizações: 1076 vezes
Sabemos de outras dica de JavaScript que o objeto Set nos permite criar conjuntos únicos, ou seja, sem repetições. Sabemos também que a função Array.from() possibilita a conversão de um Set em um Array JavaScript.

Dessa forma, é possível usar essa combinação para escrever uma função personalizada que recebe um vetor (array) e retorna um outro vetor, sem elementos repetidos.

Veja o código JavaScript completo para o exemplo:

<!doctype html>
<html>
<head>
  <title>O objeto Set do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função que permite remover os elementos
  // duplicados de um array
  function semRepeticoes(vetor){
    // primeiro criamos um novo Set a partir do
    // vetor fornecido
    // Em seguida usamos o método Array.from() para
    // converter o Set em um Array
    return Array.from(new Set(vetor));
......


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

Com repetição: Osmar, Maria, Carlos, Maria, Fernanda, Fernanda, Osmar
Sem repetições: Osmar, Maria, Carlos, Fernanda


PHP ::: Dicas & Truques ::: Variáveis e Constantes

PHP para iniciantes - Como testar se uma variável é do tipo string usando a função is_string() do PHP

Quantidade de visualizações: 10711 vezes
Em algumas situações podemos querer saber se o tipo de uma variável é string, ou seja, contém uma palavra, frase ou trecho de texto.

Este teste pode ser feito com o auxílio da função is_string(). Esta função retorna um valor true ou false dependendendo do tipo de variável sendo testada.

Veja o código PHP para este exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $nome = 'Osmar J. Silva';  
   
  if(is_string($nome)){
......


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

A variável $nome é do tipo string


Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

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.