Você está aqui: Cards de Cards de Hidrologia |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus em PHP usando a função rad2deg()Quantidade de visualizações: 10075 vezes |
|
As unidades graus e radianos são muito usadas em cálculos de trigonometria, especialmente em aplicações que lidam com geometria, topografia e engenharia. O grau é de uso mais no cotidiano, pela sua praticidade, pois envolve na maioria dos casos números inteiros. O radiano, por sua vez, é de uso em cálculos envolvendo geralmente números racionais. Este trecho de código PHP mostra como converter radianos em graus usando a função rad2deg().
<?php
// vamos definir um valor em radianos
$radianos = 1.45;
// agora vamos converter para graus
$graus = rad2deg($radianos);
echo $radianos . " radianos convertido para graus é " .
$graus . "<br>";
// outra forma:
echo $radianos . " radianos convertido para graus é " .
($radianos * 180) / pi();
?>
Ao executar este código PHP nós teremos o seguinte resultado: 1.45 radianos convertido para graus é 83.078880293969 |
LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar uma condição em Lisp usando a macro ifQuantidade de visualizações: 1429 vezes |
|
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional. Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10:
; Vamos definir as variáveis que vamos
; usar no programa
(defvar numero)
; Este é o programa principal
(defun Estudos()
; Vamos ler o número
(princ "Informe um número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável numero
(setq numero (read))
; vamos testar se este número é maior que 10
(if (> numero 10)
(format t "~D é maior que 10~%" numero))
; E mostramos o número informado
(format t "O número informado foi: ~D" numero)
)
; Auto-executa a função Estudos()
(Estudos)
Ao executar este código Common Lisp nós teremos o seguinte resultado: Informe um número: 12 12 é maior que 10 O número informado foi: 12 |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como salvar o conteúdo de um JTextArea em um arquivo (usando um JFileChooser para localizar o diretório e arquivo)Quantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como é possível como salvar o conteúdo de um JTextArea em um arquivo texto. Essa operação é muito frequente em aplicações Java Swing. Note que faremos uso de um JFileChooser para localizar o arquivo no qual o conteúdo será gravado, ou poderemos informar o nome do arquivo. Observe também o uso do método write() da classe FileWriter para escrever o conteúdo no arquivo. Para finalizar, perceba que não fiz os devidos tratamentos de erros e as mensagens de sucesso das operações e coisas. Fica como exercício para você finalizar. Veja o código completo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Estudos extends JFrame{
JTextArea textArea;
JButton btn;
public Estudos() {
super("Salvando o conteúdo de um JTextArea em um arquivo");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(10, 20);
textArea.setLineWrap(true);
btn = new JButton("Salvar Arquivo");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
if(fc.showSaveDialog(Estudos.this) != JFileChooser.APPROVE_OPTION){
return;
}
File arquivo = fc.getSelectedFile();
if(arquivo == null){
return;
}
FileWriter writer = null;
try {
writer = new FileWriter(arquivo);
writer.write(textArea.getText());
}
catch(IOException ex){
// Possiveis erros aqui
}
finally {
if(writer != null){
try{
writer.close();
}
catch (IOException x){
// trate os erros aqui
}
}
}
}
}
);
c.add(textArea);
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string termina com uma determinada substring em JavaScript usando a função endsWith()Quantidade de visualizações: 2137 vezes |
|
O método endsWith() da linguagem JavaScript foi adicionado ao objeto String na revisão ECMAScript 2015, ou ES6, também chamado de ECMAScript 6. Este método é chamado diretamente em uma variável do tipo string e retorna true se a palavra, frase ou texto terminar com uma substring específica e false em caso contrário. Veja um exemplo no qual verificamos se uma frase termina com a palavra "JavaScript":
<!doctype html>
<html>
<head>
<title>JavaScript 6</title>
</head>
<body>
<script type="text/javascript">
var frase = "Eu prefiro programar em JavaScript";
if(frase.endsWith("JavaScript")){
document.writeln("A frase termina com a palavra JavaScript");
}
else{
document.writeln("A frase não termina com a palavra JavaScript");
}
</script>
</body>
</html>
Ao executarmos este código JavaScript nós teremos o seguinte resultado: A frase termina com a palavra JavaScript É importante ter em mente que a função endsWith() diferencia letras maiúsculas de letras minúsculas. |
Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java |
Sistema para Biblioteca usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão consoleQuantidade de visualizações: 16578 vezes |
|
Sistema para Gestão de Biblioteca usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão console Controle de Biblioteca - Sobre este projeto Java ![]() Nesta dica apresento a idéia de um Controle de Gestão de Biblioteca em Java usando Programação Orientada a Objetos. Trata-se de um programa com código fonte em duas versões console. Na primeira versão temos os dados sendo gerenciados por objetos ArrayList. Na segunda versão nós tiramos proveito dos métodos dos métodos readObject() e writeObject() e da interface Serializable para implementar a serialização de objetos em Java. Dessa forma, os dados do sistema podem ser salvos e carregados todas as vezes que o sistema for iniciado. Um Controle de Gestão de Biblioteca é um projeto ideal para dominar a programação orientada a objetos em Java, além de permitir colocar em prática várias coisas que estudamos na linguagem e não temos a oportunidade de implementar. Assim, este código, se bem estudado e bem entendido, pode render um controle de biblioteca pronto para ser vendido no mercado ou implementado em sua própria escola ou faculdade. Basta conectar as funcionalidades das classes a um banco de dados tal como o MySQL e adicionar mais alguns pequenos detalhes. O Diagrama de Classes Java Antes de falarmos mais sobre o projeto do Sistema de Biblioteca, dê uma boa olhada no seu diagrama de classes: ![]() Como a aplicação está estruturada? Como podemos ver no diagrama de classes, todo o controle do sistema é feito a partir da classe Biblioteca, que contém objetos da classe ArrayList para guardar objetos das classes Usuario, Autor, Editora, Livro, Emprestimo e Multa. O relacionamento entre os objetos das classes envolvidas está bem definido no código fonte, com comentários e menus individuais para o gerenciamento de cada parte que compõe o controle de biblioteca apresentado. Um empréstimo envolve um livro e um usuário, e pode gerar uma multa caso a devolução seja feita fora do prazo. A multa é gerada somente na devolução. Em sistemas reais, o usuário não pode fazer uma nova locação caso a multa não seja paga. Deixamos como sugestão e desafio, essa implementação no código. No entanto, já fizemos todo o restante do cálculo para você, ou seja, fizemos a diferença entre a data do empréstimo e sua devolução e geramos a multa, se houver, já com o devido valor a ser pago. Um livro está relacionado a um autor e a uma editora. Inicialmente o livro é cadastrado como disponível. Porém, esse status é alterado para indisponível quando ele está envolvido em um empréstimo, e novamente disponível quando é feita a devolução. Tudo isso é feito por meio de vários menus de opções, como mostro a seguir. As opções de menu para o gerencimento do sistema da biblioteca O menu principal foi escrito usando-se o seguinte código:
// método que exibe o menu principal do sistema
public void menuPrincipal(){
Scanner entrada = new Scanner(System.in);
while(true){
limparTela();
System.out.println("\n:: B I B L I O T E C A ::\n");
System.out.println("Bem-vindo(a) ao sistem.
Escolha a opção desejada");
System.out.println("1 - Livros");
System.out.println("2 - Autores");
System.out.println("3 - Editoras");
System.out.println("4 - Usuários");
System.out.println("5 - Empréstimos");
System.out.println("6 - Multas");
System.out.println("7 - Sair");
System.out.print("Sua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1:
// chama o menu de gerenciamento de livros
menuGerenciarLivros();
break;
case 2:
// chama o menu de gerenciamento de autores
menuGerenciarAutores();
break;
case 3:
// chama o menu de gerenciamento de editoras
menuGerenciarEditoras();
break;
case 4:
// chama o menu de gerenciamento de usuários
menuGerenciarUsuarios();
break;
case 5:
// chama o menu de gerenciamento de emprestimos
menuGerenciarEmprestimos();
break;
case 6:
// chama o menu de gerenciamento de multas
menuGerenciarMultas();
break;
case 7:
System.out.println("\nObrigado por usar o
Sistema de Biblioteca\n");
System.exit(0);
}
}
}
Note que cada case do switch do menu principal chama um método que será responsável por exibir um menu individual para o gerencimento da classe correspondente. Veja, por exemplo, o menu para cadastrar um novo usuário na biblioteca:
// menu para cadatrar, listar, pesquisar, excluir
// e atualizar os usuários da biblioteca
public int menuGerenciarUsuarios(){
Usuario temp; // serve para várias operações neste menu
// serve para as pesquisas dos usuários
String pesquisaUsuario;
Scanner entrada = new Scanner(System.in);
// mostra o menu de forma repetitiva até o usuário
// usar a opção de sair
while(true){
// tire caso não funcionar no seu sistema operacional
limparTela();
System.out.println("\n:: G E R E N C I A R U S U Á R I O S ::\n");
System.out.println("Escolha a opção desejada");
System.out.println("1 - Novo Usuário");
System.out.println("2 - Listar Usuários");
System.out.println("3 - Pesquisar Usuário");
System.out.println("4 - Excluir Usuário");
System.out.println("5 - Atualizar Usuário");
System.out.println("6 - Voltar Menu Anterior");
System.out.print("Sua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1: // vamos cadastrar um novo usuário
System.out.print("\nNome: ");
String nomeUsuario = entrada.nextLine();
System.out.print("Idade: ");
int idadeUsuario = Integer.parseInt(entrada.nextLine());
System.out.print("Sexo: ");
char sexoUsuario = entrada.nextLine().charAt(0);
// vamos incrementar o contador de usuários
Usuario.contadorUsuarios++;
// agora vamos criar um novo objeto da classe Usuario
Usuario u = new Usuario(Usuario.contadorUsuarios,
nomeUsuario, idadeUsuario, sexoUsuario);
// e o adicionamos no ArrayList de usuários
usuarios.add(u);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO usuário foi cadastrado com sucesso");
salvarDadosArquivo(); // salva os dados no arquivo
break;
...
Devo usar ArrayList do Java para desenvolver o sistema? Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos usuários, livros, editoras, autores e empréstimos nós quisermos. Dessa forma, veja, por exemplo, o trecho de código que registra um novo empréstimo:
case 1: // vamos cadastrar um novo empréstimmo
// para registrar um novo empréstimo nós precisamos
// de um usuário
// o usuário que será relacionado a este empréstimo
Usuario usuario = null;
while(usuario == null){
System.out.print("\nInforme o id ou nome do usuário: ");
String pesquisaUsuario = entrada.nextLine();
// chamamos o método que pesquisa o usuario
usuario = pesquisarUsuario(pesquisaUsuario);
if(usuario == null){ // usuario não encotrado
System.out.print("\nUsuário não
encontrado.\n\nDigite 1 para pesquisar
novamente ou 2 para voltar ao menu anterior: ");
int opcaoTemp = Integer.parseInt(entrada.nextLine());
if(opcaoTemp == 2){
return 1; // saímos daqui e voltamos para o menu anterior
}
}
}
System.out.println("Usuário selecionado: " + usuario.getNome());
// fim para registrar um novo empréstimo nós
// precisamos de um usuário
// para registrar um novo empréstimo nós precisamos
// de um livro
Livro livro = null; // o livro que será relacionado
// a este empréstimo
while(livro == null){
System.out.print("Informe o id, título ou ISBN do livro: ");
String pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
livro = pesquisarLivro(pesquisaLivro);
// livro não encontrado ou indisponível
if((livro == null) || (!livro.isDisponivel())){
System.out.print("\nLivro não encontrado
ou indisponível.\n\nDigite 1 para
pesquisar novamente ou 2 para voltar ao
menu anterior: ");
int opcaoTemp = Integer.parseInt(entrada.nextLine());
if(opcaoTemp == 2){
return 1; // saímos daqui e voltamos para o menu anterior
}
}
}
System.out.println("Livro selecionado: " + livro.getTitulo());
// fim para cadastrar um novo empréstimo nós
// precisamos de um livro
try{
System.out.print("Data do Empréstimo: ");
String dataEmprestimo = entrada.nextLine();
Date dataEmprestimoDate =
new SimpleDateFormat("dd/MM/yyyy").parse(dataEmprestimo);
System.out.print("Data de Devolução: ");
String dataDevolucao = entrada.nextLine();
Date dataDevolucaoDate =
new SimpleDateFormat("dd/MM/yyyy").parse(dataDevolucao);
// a data de devolução é menor que a data de empréstimo?
if(dataDevolucaoDate.getTime() <= dataEmprestimoDate.getTime()){
System.out.println("\nA data de devolução
deve ser maior que a data de empréstimo.\n");
}
else{
// vamos incrementar o contador de empréstimos
Emprestimo.contadorEmprestimos++;
// vamos marcar o livro escolhido como indisponível
livro.setDisponivel(false);
// agora vamos criar um novo objeto da classe Emprestimo
Emprestimo emprestimo = new Emprestimo(usuario,
livro, Emprestimo.contadorEmprestimos,
dataEmprestimoDate, dataDevolucaoDate,
null, false);
// e o adicionamos no ArrayList de empréstimos
emprestimos.add(emprestimo);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO empréstimo foi registrado com sucesso");
salvarDadosArquivo(); // salva os dados no arquivo
}
}
catch(ParseException e){
System.out.println("\nAs datas informadas são inválidas.\n");
}
break;
Note que este trecho de código é parte do case da opção Novo Empréstimo do menu Gerenciar Empréstimos. Veja como usamos uma variável estática contadorEmprestimos da classe Emprestimo para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada empréstimo da biblioteca. Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real. Como posso obter este código fonte? O código fonte desta aplicação é fornecido em duas versões: 1) SBIBLIOJCNB-A - Sistema de Gestão de Biblioteca em Java com Código Fonte Versão Console - NetBeans IDE ou Eclipse. 2) SBIBLIOJCNB-B - Sistema de Gestão de Biblioteca em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE ou Eclpse. Para adquirir, entre em contato conosco usando o WhatsApp ou e-mail indicados na lateral do site. Podemos combinar alterações e a adição de novas funcionalidades. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







