![]() |
|
||||
Código-Fonte Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesTenha 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 |
|||||
Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como usar o método createTempFile() da classe File da linguagem Java para criar um arquivo temporário, escrever nele e excluí-lo ao fechar o programa - RevisadoQuantidade de visualizações: 2 vezes |
|
Nesta dica mostrarei como é possível usar o método createTempFile() da classe File, do pacote java.io, para criar um arquivo temporário em Java. No exemplo vamos criar o arquivo, vamos escrever nele e depois excluí-lo ao fecharmos o programa. Veja o código completo:
package arquivodecodigos;
import java.io.*;
public class Estudos{
public static void main(String[] args){
// local de criação do arquivo
String local = "C:\\estudos_java";
// vamos tentar criar o arquivo então
try{
File arquivo = File.createTempFile("teste", ".txt", new File(local));
// vamos excluir o arquivo ao fechar a aplicação
arquivo.deleteOnExit();
// escreve no arquivo temporário
BufferedWriter out = new BufferedWriter(new FileWriter(arquivo));
out.write("Arquivo de Códigos");
out.close();
// trecho de código para fazer com o programa espere
// uma tecla antes de fechar
// Este procedimento é para que vc veja que o arquivo
// temporario realmente foi criado no diretório indicado
InputStreamReader ent = new InputStreamReader(System.in);
BufferedReader cons = new BufferedReader(ent);
System.out.println("Verifique se o arquivo foi criado com sucesso.");
System.out.print("Digite alguma coisa e pressione Enter para sair: ");
String tecla = cons.readLine();
}
catch(IOException e){
System.out.println("Houve um erro: " + e.getMessage());
}
}
}
Ao executarmos este código nós teremos o seguinte resultado: Verifique se o arquivo foi criado com sucesso. Digite alguma coisa e pressione Enter para sair: b Antes de digitar alguma coisa e pressionar Enter, olhe no diretório "C:\\estudos_java" (o seu vai ser diferente, é claro) e você verá um arquivo com um nome parecido com: teste2606085315507863387.txt Quando você pressionar Enter, o programa terminará e o arquivo será excluído automaticamente. Esta dica foi revisada e testada no Java 8. |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como fazer a travessia de uma árvore binária de busca em Java usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)Quantidade de visualizações: 5372 vezes |
Antes de discutirmos o percurso in-order, veja a árvore binária de busca na figura abaixo:![]() Esta árvore possui 9 nós e obedece à regra de que os nós com valores menores que o nó pai ficam à sua esquerda, e aqueles com nós maiores que o nó pai, ficam à sua direita. O percurso em ordem é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente. Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de um método recursivo. Veja o código completo para o exemplo: Código para No.java:
package arvore_binaria;
public class No {
private int valor; // valor armazenado no nó
private No esquerdo; // filho esquerdo
private No direito; // filho direito
// construtor do nó
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
}
Código para ArvoreBinariaBusca.java:
package arvore_binaria;
public class ArvoreBinariaBusca {
private No raiz; // referência para a raiz da árvore
// método usado para inserir um novo nó na árvore
// retorna true se o nó for inserido com sucesso e false
// se o elemento
// não puder ser inserido (no caso de já existir um
// elemento igual)
public boolean inserir(int valor){
// a árvore ainda está vazia?
if(raiz == null){
// vamos criar o primeiro nó e definí-lo como a raiz da árvore
raiz = new No(valor); // cria um novo nó
}
else{
// localiza o nó pai do novo nó
No pai = null;
No noAtual = raiz; // começa a busca pela raiz
// enquanto o nó atual for diferente de null
while(noAtual != null){
// o valor sendo inserido é menor que o nó atual?
if(valor < noAtual.getValor()) {
pai = noAtual;
// vamos inserir do lado esquerdo
noAtual = noAtual.getEsquerdo();
}
// o valor sendo inserido é maior que o nó atual
else if(valor > noAtual.getValor()){
pai = noAtual;
// vamos inserir do lado direito
noAtual = noAtual.getDireito();
}
else{
return false; // um nó com este valor foi encontrado
}
}
// cria o novo nó e o adiciona como filho do nó pai
if(valor < pai.getValor()){
pai.setEsquerdo(new No(valor));
}
else{
pai.setDireito(new No(valor));
}
}
return true; // retorna true para indicar que o novo nó foi inserido
}
// método que permite disparar a travessia em-ordem
public void emOrdem(){
emOrdem(raiz);
}
// sobrecarga do método emOrdem com uma parâmetro (esta é a versão
// recursiva do método)
private void emOrdem(No raiz){
if(raiz == null){ // condição de parada
return;
}
// visita a sub-árvore da esquerda
emOrdem(raiz.getEsquerdo());
// visita o nó atual
System.out.print(raiz.getValor() + " ");
// visita a sub-árvore da direita
emOrdem(raiz.getDireito());
}
}
E agora o código para a classe principal:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 9 valores na árvore
for(int i = 0; i < 9; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos exibir os nós da árvore usando o percurso in-order
System.out.println("\nPercurso in-order:");
arvore.emOrdem();
System.out.println("\n");
}
}
Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 8 Informe um valor inteiro: 3 Informe um valor inteiro: 10 Informe um valor inteiro: 1 Informe um valor inteiro: 6 Informe um valor inteiro: 14 Informe um valor inteiro: 4 Informe um valor inteiro: 7 Informe um valor inteiro: 13 Percurso in-order: 1 3 4 6 7 8 10 13 14 |
Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como retornar uma lista dos dispositivos de entrada MIDI no sistema usando DelphiQuantidade de visualizações: 11499 vezes |
|
Em algumas ocasiões nós precisamos obter uma lista dos dispositivos de entrada MIDI no sistema, talvez com o propósito de selecionar um determinado dispositivo em uma ListBox ou ComboBox. O trecho de código abaixo mostra como isso pode ser feito. O primeiro passo é declarar uma variável do tipo TMidiInCaps. Este registro está declarado na unit MMSystem.pas e é uma tradução da estrutura MIDIINCAPS da API do Windows. Entre outros tipos de dados, esta estrutura possui um membro szPname que retorna o nome do dispositivo. Na unit MMSystem.pas este membro está declarado como array[0..MAXPNAMELEN-1] of AnsiChar, ou seja, uma matriz de AnsiChar que será preenchida pela API do Windows e terá seu final marcado com o caractere null (NULL terminated string). Note a conversão deste valor para o tipo String no momento de inserí-lo no ComboBox. Em versões anteriores do Delphi (estou escrevendo este código no Delphi 2009) podíamos usar a função StrPas() para esta finalidade. O passo seguinte é obter a quantidade de dispositivos de entrada MIDI. Isso é feito com uma chamada à função midiInGetNumDevs da API do Windows. Uma vez obtida a quantidade de dispositivos nós usamos um laço for e, no corpo deste laço, usamos o valor da variável de controle i para efetuar uma chamada à função midiInGetDevCaps(), também da API do Windows: midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps)); Esta função recebe o identificador do dispositivo (um valor inteiro começando em 0 e indo até a quantidade de dispositivos - 1), um ponteiro para um registro MidiInCaps e o tamanho em bytes do registro. Se a função for executada com sucesso, o registro MidiInCaps será preenchido com várias informações úteis, tais como o nome do dispositivo, o ID do fabricante, o ID do produto, versão do driver, etc. Para finalizar, nós acessamos o campo szPname do registro MidiInCaps e o adicionamos no ComboBox. Veja o código completo a seguir:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
MidiInCaps: TMidiInCaps; // este record está definido em MMSystem.pas
erro: Word;
begin
// uses MMSystem
ComboBox1.Clear;
// midiInGetNumDevs retorna a quantidade de dispositivos de entrada
// MIDI no sistema
for i := 0 to midiInGetNumDevs - 1 do
begin
// vamos obter o dispositivo identificado pela variável i (uDeviceID)
erro := midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps));
if erro <> MMSYSERR_NOERROR then
raise Exception.Create('Não foi possível obter a lista de dispositivos ' +
'de entrada MIDI');
// vamos adicionar o nome do dispositivo no ComboBox
ComboBox1.Items.Add(String(MidiInCaps.szPname));
end;
end;
Ao executar este código o ComboBox será preenchido no mínimo com o valor: MPU-401 Este é o MPU 401-compatible MIDI input port, um dos dispositivos de entrada MIDI mais comuns nos PCs, embora já não esteja tão presente nos computadores mais atuais. Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009. |
Java ::: Fundamentos da Linguagem ::: Passos Iniciais |
Aprenda a ler entrada do usuário usando a classe Scanner do Java - Como ler a entrada do usuário em Java usando um objeto da classe ScannerQuantidade de visualizações: 50707 vezes |
|
Podemos ler entrada do usuário em aplicações Java console usando a classe Scanner do JDK 5.0 e recentes. Esta classe está no pacote java.util. Para ler strings use o método nextLine(), para ler inteiros use nextInt() e assim por diante. Não é um boa idéia misturar nextLine() com nextInt(), nextFloat(), etc. Em caso de comportamento estranho, é melhor ler tudo usando nextLine() e fazer conversões usando Integer.parseInt(), por exemplo. Veja um código completo demonstrando o uso dessa classe:
package arquivodecodigos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Qual é o seu nome? ");
String nome = in.nextLine();
System.out.print("Qual sua idade? ");
int idade = in.nextInt();
System.out.println("Olá, " + nome +
". Você tem " + idade + " anos.");
}
}
Ao executar este código nós teremos o seguinte resultado: Qual é o seu nome? Osmar J. Silva Qual sua idade? 39 Olá, Osmar J. Silva. Você tem 39 anos. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Como simplificar frações em JavaQuantidade de visualizações: 918 vezes |
|
Pergunta/Tarefa: Simplificar uma fração consiste em reduzir o numerador e o denominador por meio da divisão pelo máximo divisor comum aos dois números. Uma fração está totalmente simplificada quando verificamos que seus termos estão totalmente reduzidos a números que não possuem termos divisíveis entre si. Uma fração simplificada sofre alteração do numerador e do denominador, mas seu valor matemático não é alterado, pois a fração, quando tem seus termos reduzidos, torna-se uma fração equivalente. Escreva um programa Java que pede para o usuário informar o numerador e o denominador de uma fração e mostre a fração simplificada. Use uma classe Fracao para a operação de simplificação. Em outras seções do nosso site você encontra o cálculo do MDC para encontrar o Máximo Divisor Comum. Sua saída deverá ser parecida com: Informe o numerador: 32 Informe o denominador: 40 A fração gerada foi: 32/40 A fração simplificada é: 4/5 Veja a resolução comentada deste exercício em Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar o numerador
System.out.print("Informe o numerador: ");
int numerador = Integer.parseInt(entrada.nextLine());
// vamos pedir para o usuário informar o denominador
System.out.print("Informe o denominador: ");
int denominador = Integer.parseInt(entrada.nextLine());
// vamos criar um objeto da classe Fracao
Fracao f = new Fracao(numerador, denominador);
// vamos mostrar a fração gerada
System.out.println("A fração gerada foi: " + f.toString());
// agora vamos simplificar esta fração
System.out.println("A fração simplificada é: " +
f.simplificar().toString());
}
}
// classe usada para representar uma Fração
class Fracao{
int numerador;
int denominador;
// construtor da classe
public Fracao(int numerador, int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
// método que simplifica a fração atual e retorna o
// resultado como uma fração
public Fracao simplificar(){
// cria uma fração temporária
Fracao temp = new Fracao(this.numerador, this.denominador);
// descobrimos que é maior, o numerador ou o
// denominador
int n = temp.numerador, d = temp.denominador, maior;
// o numerador é menor que 0?
if (temp.numerador < 0) {
n = -temp.numerador;
}
// descobrimos o maior
if (n > d) {
maior = n;
}
else {
maior = d;
}
// encontramos o maior número que divide o numerador e o
// denominador
int mdc = 0;
for (int i = maior; i >= 2; i--) {
if ((temp.numerador % i == 0) && (temp.denominador % i == 0)) {
mdc = i;
break;
}
}
// agora dividimos tanto o numerador quanto o denominador
// pelo mdc encontrado
if (mdc != 0) {
temp.numerador = temp.numerador / mdc;
temp.denominador = temp.denominador / mdc;
}
// retorna a fração temporária
return temp;
}
// retorna uma representação textual dessa fração
@Override
public String toString() {
return this.numerador + "/" + this.denominador;
}
}
|
Mais Desafios de Programação e 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 |







