Ir para o conteúdo

Pesquisar na Comunidade

A mostrar resultados para tags ''java''.



Mais opções de pesquisa

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
    • Apresentações
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • SharePoint
    • Apresentação de Software
  • Informática Extra-Programação
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Matemática
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros



Filtrar por número de...

3432 resultados

  1. Jogo de Damas - melhor algoritmo

    Boas. Num trabalho académico estou a programar em java um jogo de damas. Tenho por base uma outra implementação (Ashish Prasad/Apurv) que usa um algoritmo Minimax (ou MinMax ou MM) melhorado com Alpha–beta pruning. No entanto quando coloco o computador a jogar contra ele mesmo (que usam ambos os mesmos algoritmos) o jogo entra em "loop" sem encontrar um vencedor. Experimentei fazer com que a nível de Alpha-beta a melhor jogada fosse aleatória, mas não dá. Será possível implementar um algoritmo/estratégia mais eficiente, num dos jogadores (computador com Minimax vs computador com algoritmo/estratégia que procuro) de forma a obter melhores probabilidade de ganhar? O código (dos jogadores, ambos como computador) em que me estou a basear é o seguinte: package checkers; import java.util.Vector; /** * * @author apurv */ public class Robot { static Oracle oracle = new Oracle(); static int MAX_DEPTH = 6; public static void makeNextWhiteMoves(){ Vector<Move> resultantMoveSeq = new Vector<Move>(); alphaBeta(Game.board, Player.white, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); //Apply the move to the game board. for(Move m:resultantMoveSeq){ Game.board.genericMakeWhiteMove(m); } System.out.print("Robot's Move was "); UserInteractions.DisplayMoveSeq(resultantMoveSeq); System.out.println(); } public static void makeNextBlackMoves(){ Vector<Move> resultantMoveSeq = new Vector<Move>(); alphaBeta(Game.board, Player.black, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); //Apply the move to the game board. for(Move m:resultantMoveSeq){ Game.board.genericMakeBlackMove(m); } System.out.print("Robot's Move was "); UserInteractions.DisplayMoveSeq(resultantMoveSeq); System.out.println(); } /** * White represents the maximizing player, he/she wants to maximize the value of the board. * Black is the minimizing player, he/she wants to minimize the value of the board. * * alpha represents the maximum value that the max player is assured of, initially -inf. * beta represents the minimum value that the min player is assured of, initially +inf. * * if(alpha>beta) break * * */ private static int alphaBeta(Board board, Player player, int depth, int alpha, int beta, Vector<Move> resultMoveSeq){ if(!canExploreFurther(board, player, depth)){ int value = oracle.evaluateBoard(board, player); return value; } Vector<Vector<Move>> possibleMoveSeq = expandMoves(board, player); Vector<Board> possibleBoardConf = getPossibleBoardConf(board, possibleMoveSeq, player); Vector<Move> bestMoveSeq = null; if(player == Player.white){ for(int i=0; i<possibleBoardConf.size(); i++){ Board b = possibleBoardConf.get(i); Vector<Move> moveSeq = possibleMoveSeq.get(i); int value = alphaBeta(b, Player.black, depth+1, alpha, beta, resultMoveSeq); if(value > alpha){ alpha = value; bestMoveSeq = moveSeq; } if(alpha>beta){ break; } } //If the depth is 0, copy the bestMoveSeq in the result move seq. if(depth == 0 && bestMoveSeq!=null){ resultMoveSeq.addAll(bestMoveSeq); } return alpha; }else{ assert(player == Player.black); for(int i=0; i<possibleBoardConf.size(); i++){ Board b = possibleBoardConf.get(i); Vector<Move> moveSeq = possibleMoveSeq.get(i); int value = alphaBeta(b, Player.white, depth+1, alpha, beta, resultMoveSeq); if(value < beta){ bestMoveSeq = moveSeq; beta = value; } if(alpha>beta){ break; } } //If the depth is 0, copy the bestMoveSeq in the result move seq. if(depth == 0 && bestMoveSeq!=null){ resultMoveSeq.addAll(bestMoveSeq); } return beta; } } public static Vector<Vector<Move>> expandMoves(Board board, Player player){ Vector<Vector<Move>> outerVector = new Vector<Vector<Move>>(); if(player == Player.black){ Vector<Move> moves = null; moves = Black.CalculateAllForcedMovesForBlack(board); if(moves.isEmpty()){ moves = Black.CalculateAllNonForcedMovesForBlack(board); for(Move m:moves){ Vector<Move> innerVector = new Vector<Move>(); innerVector.add(m); outerVector.add(innerVector); } }else{ for(Move m:moves){ int r = m.finalRow; int c = m.finalCol; Vector<Move> innerVector = new Vector<Move>(); innerVector.add(m); Board boardCopy = board.duplicate(); boardCopy.genericMakeBlackMove(m); expandMoveRecursivelyForBlack(boardCopy, outerVector, innerVector, r, c); innerVector.remove(m); } } }else if(player == Player.white){ Vector<Move> moves = null; moves = White.CalculateAllForcedMovesForWhite(board); if(moves.isEmpty()){ moves = White.CalculateAllNonForcedMovesForWhite(board); for(Move m:moves){ Vector<Move> innerVector = new Vector<Move>(); innerVector.add(m); outerVector.add(innerVector); } }else{ for(Move m:moves){ int r = m.finalRow; int c = m.finalCol; Vector<Move> innerVector = new Vector<Move>(); innerVector.add(m); Board boardCopy = board.duplicate(); boardCopy.genericMakeWhiteMove(m); expandMoveRecursivelyForWhite(boardCopy, outerVector, innerVector, r, c); innerVector.remove(m); } } } return outerVector; } private static void expandMoveRecursivelyForWhite(Board board, Vector<Vector<Move>> outerVector, Vector<Move> innerVector, int r, int c){ Vector<Move> forcedMoves = White.ObtainForcedMovesForWhite(r, c, board); if(forcedMoves.isEmpty()){ Vector<Move> innerCopy = (Vector<Move>)innerVector.clone(); outerVector.add(innerCopy); return; }else{ for(Move m:forcedMoves){ Board boardCopy = board.duplicate(); boardCopy.genericMakeWhiteMove(m); innerVector.add(m); expandMoveRecursivelyForWhite(boardCopy, outerVector, innerVector, m.finalRow, m.finalCol); innerVector.remove(m); } } } private static void expandMoveRecursivelyForBlack(Board board, Vector<Vector<Move>> outerVector, Vector<Move> innerVector, int r, int c){ Vector<Move> forcedMoves = Black.ObtainForcedMovesForBlack(r, c, board); if(forcedMoves.isEmpty()){ Vector<Move> innerCopy = (Vector<Move>)innerVector.clone(); outerVector.add(innerCopy); return; }else{ for(Move m:forcedMoves){ Board boardCopy = board.duplicate(); boardCopy.genericMakeBlackMove(m); innerVector.add(m); expandMoveRecursivelyForBlack(boardCopy, outerVector, innerVector, m.finalRow, m.finalCol); innerVector.remove(m); } } } private static boolean canExploreFurther(Board board, Player player, int depth){ boolean res = true; if(board.CheckGameComplete() || board.CheckGameDraw(player)){ res = false; } if(depth == MAX_DEPTH){ res = false; } return res; } public static Vector<Board> getPossibleBoardConf(Board board, Vector<Vector<Move>> possibleMoveSeq, Player player){ Vector<Board> possibleBoardConf= new Vector<Board>(); for(Vector<Move> moveSeq:possibleMoveSeq){ Board boardCopy = board.duplicate(); for(Move move:moveSeq){ if(player == Player.black){ boardCopy.genericMakeBlackMove(move); }else{ boardCopy.genericMakeWhiteMove(move); } } possibleBoardConf.add(boardCopy); //System.out.println(); } return possibleBoardConf; } ///////////////////////DEBUGGING PURPOSES///////////////////////////////////////////////////////// public static void main(String[] args){ // // CellEntry[][] cell = new CellEntry[][]{ //{CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white}, //{CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty}, //{CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black}, //{CellEntry.black,CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black} // // }; // // Board board = new Board(cell); // // Vector<Vector<Move>> outerVector = expandMoves(board, Player.black); // // board.Display(); // // for(Vector<Move> innerVector:outerVector){ // for(Move move:innerVector){ // move.display(); // System.out.print(", "); // } // System.out.println(); // } //===================================================Checking Game Draw=============================== // CellEntry[][] cell = new CellEntry[][]{ //{CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black}, //{CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty}, //{CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white}, //{CellEntry.white,CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid}, //{CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white} // }; // // Board board = new Board(cell); // System.out.println(board.CheckGameDraw(Player.white)); //==================================================================================================== // //Board board = new Board(); // Vector<Move> resultantMoveSeq = new Vector<Move>(); // // alphaBeta(board, Player.black, 0, Float.MIN_VALUE, Float.MAX_VALUE, resultantMoveSeq); // board.Display(); // displayMovesInVector(resultantMoveSeq); // System.out.println(resultantMoveSeq.size()); //testCase1(); //testCase2(); testCase3(); } // For debugging private static void displayMovesInVector(Vector<Move> v){ for(Move m:v){ m.display(); System.out.print(", "); } System.out.println(); } private static void testCase1(){ CellEntry[][] cell = new CellEntry[][]{ {CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid}, {CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white}, {CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty,CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, {CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black} }; System.out.println(Float.MIN_VALUE); if(-600>Integer.MIN_VALUE){ System.out.println("Lele maje");/////// } Board board = new Board(cell); board.whitePieces = 7; board.blackPieces = 7; Vector<Move> resultantMoveSeq = new Vector<Move>(); // alphaBeta(board, Player.black, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); board.Display(); displayMovesInVector(resultantMoveSeq); } private static void testCase2(){ CellEntry[][] cell = new CellEntry[][]{ {CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid}, {CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white}, {CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.black}, {CellEntry.empty,CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, {CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black} }; Board board = new Board(cell); board.whitePieces = 5; board.blackPieces = 6; Board newBoard = board.duplicate(); System.out.println(newBoard.CheckGameComplete()); Vector<Move> resultantMoveSeq = new Vector<Move>(); // alphaBeta(board, Player.black, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); board.Display(); displayMovesInVector(resultantMoveSeq); //Apply the move to the game board. for(Move m:resultantMoveSeq){ board.genericMakeWhiteMove(m); } resultantMoveSeq.clear(); alphaBeta(board, Player.white, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); board.Display(); displayMovesInVector(resultantMoveSeq); } private static void testCase3(){ CellEntry[][] cell = new CellEntry[][]{ {CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid}, {CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.white, CellEntry.inValid, CellEntry.empty, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.empty}, {CellEntry.empty,CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid}, {CellEntry.inValid, CellEntry.empty, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black, CellEntry.inValid, CellEntry.black} }; Board board = new Board(cell); board.whitePieces = 5; board.blackPieces = 6; Vector<Move> resultantMoveSeq = new Vector<Move>(); // alphaBeta(board, Player.black, 0, Integer.MIN_VALUE, Integer.MAX_VALUE, resultantMoveSeq); board.Display(); displayMovesInVector(resultantMoveSeq); } } Desde já um muito obrigado pela ajuda.
  2. boa noite estou tentando montar um tela de venda. preciso que quando eu digitar a quantidade e depois o “X” e depois passar o cod de barras di produto ele multiplique o produto pela quantidade antes do “X”. exemplo. em um campoTxt. - < ??Xbbbbbbbbbbbbbbb > onde: ?? - quantidade maior que 1 X - letra para identificar que é para ser multiplicado( caso contenha o “X” ele deve multiplicar) bbbbbbbb - cod de barras do produto. obrigado
  3. Programa para ler uma web API

    Olá pessoal, tudo bem? Bem eu ando a pesquisar muito e não encontro o que eu queria. Eu queria criar um programa em c# ou c++ em que lê-se um link que dá acesso a uma web api (de um jogo) e nesse programa queria que me indica-se que cada vez o site atualiza-se me disse-se o que sairia de novo. Nesse link da web api tem outros vários link que dão acessos ficheiros/códigos json, e cada atualização tem um código diferente chamado "unique: números (exemplo http://prntscr.com/ii0hwf) E eu queria que o que sai-se de novo me desse os códigos novos. (acho que deu para entender) E quero por exemplo, sai algo de novo, me desse os códigos novos que estão em pastas já criadas Bem vou mostrar aqui alguns links do web api (agradeço quem me ajudar): http://prntscr.com/ii0i9l http://prntscr.com/ii0if8 http://prntscr.com/ii0kh8 (nos links que tapei está sempre os mesmos arquivos que as versões antigas mas códigos novos e eu queria saber isso)
  4. Lançar valor monetário no banco

    bom dia estou tentando lançar no banco o valor de um produto, mas ele não mostra o valor depois da virgula. tentei usar o double e o float mas nenhum inseri o valor depois da virgula. ele lança assim ( 17.0) e não (17.50) o que seria 17,50… estou usando essa linha de comando. Double.parseDouble(lblValor.getText())
  5. Mudar Switch/Case para ArrayList

    Boas, pretendo comparar a presença de vogais numa palavra e queria mudar um switch/case statement para um arraylist de forma a que a comparação fosse feita caso existisse alguma vogal da lista na palavra que estou a avaliar. Só que não sei como dar a volta. É no seguinte código que pretendo mudar (no final): import java.util.ArrayList; import java.util.List; public class SSP implements IState { private int cost; // cost from the receiver to its father private String s; public SSP(String str) { this(str, 0); } public SSP(String str, int cost) { s = str; this.cost = cost; } public boolean equals(Object that) { if (that instanceof SSP) { SSP b = ((SSP) that); return s.equals(b.s); } else return false; } public boolean isGoal(IState that) { return this.equals(that); } public String toString() { return s; } /** * @return a list with all configuration states which are reachable from the * receiver, when the rules of our problem are applied. */ public List<IState> children() { int n; List<IState> l = new ArrayList<IState>(); SSP child; for (int i = 0; i < s.length() - 1; i++) for (int j = i + 1; j < s.length(); j++) { StringBuffer schild = new StringBuffer(s); n = swap(schild, i, j); child = new SSP(schild.toString(), n); l.add(child); } return l; } public int getCost() { return cost; } private static int swap(StringBuffer s, int i, int j) { char c = s.charAt(i); char d = s.charAt(j); s.setCharAt(i, d); s.setCharAt(j, c); if (isVowel(c) && isVowel(d)) return 200; if (isVowel(c) || isVowel(d)) return 11; return 2; } private static boolean isVowel(char c) { switch (c) { case 'a': case 'e': case 'i': case 'o': case 'u': return true; } return false; } } Agradeço qualquer ajuda.
  6. JDBC - Apache Phoenix Erro de Runtime Winutils.exe

    Boas, Em primeiro lugar, peço desculpa se o sítio do tópico não é o mais correcto mas não consegui encontrar nenhum sítio melhor. É o seguinte: Tenho de fazer uma aplicação springBoot para disponibilizar via json que vai consumir dados de uma base dados Hbase. Para me conectar à tabela estou a usar um driver apachePhoenix que me vai conectar à BD via jdbc e possibilitar fazer as queries usando SQL. Estou a fazer isto em Windows embora uma vez instalado a aplicação irá correr em linux. Já consigo conectar-me à base de dados e fazer as queries via SQL no entanto estou com um erro, que embora não sendo bloqueante, pois consigo executar as queries sem problma, me tem estado a tirar o sono nos ultimos dias: Eu consigo tirar o erro, definindo a variável de ambiente HADOOP_HOME e se meter o winutils.exe numa pasta c:/[path]/bin. O meu problema é que não muda em nada a minha execução, exceptuando o erro desaparecer. As minhas dúvidas são as seguintes: O que faz o winutils.exe? É mesmo necessário em windows? Alguma forma de tirar o erro ter de definir a variável HADOOP_HOME Existe alguma forma de excluir o .jar onde é "executado" este Winutils.home no maven. O erro encontra-se ficheiro Shell.class. O artefacto maven que estou a usar é o seguinte <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>4.11.0-HBase-1.3</version> Peço desculpa pelo post longo e obrigado pelas respostas!!! Disponível para qualquer esclarecimento adicional
  7. bom dia estou tentando subtrair a hora atual da hora que foi gerado o ultimo arquivo. para saber quanto tempo demorou para gerar outro arquivo. alguma dica?
  8. meu primeiro projeto (jogo domino) help me

    Ainda estou aprendendo o java e estou tentando melhorar tentando obter ajuda com este projeto. tentando fazer um jogo de domino 4x4 cada um por si termina com valor x combinado todos os auxílios e dicas são bem-vindos A maior parte do meu código está em inglês no github aqui esta link https://github.com/wit01/my-first-project obrigado
  9. Ultimo dado inserido no banco mysql

    bom dia pessoal alguém tem algum exemplo de como faço para retornar o ultimo dado inserido em um banco.. obriagdo
  10. Grafico JfreeChart

    bom dia estou com dificuldade para mudar a cor da barra do grafico JfreeChart. exemplo: se o valor de "X" for maior que 900 ( a barra fica em vermelho), e se o valor de "X" for menor que 900 (a barra fica em verde) . alguém consegue me ajudar com algum exemplo? obrigado
  11. Estrutura de Dados

    Boa noite, tenho aqui umas dúvidas em duas questões de um exame, já pesquisei na internet mas não consigo chegar a nenhum consenso. Será que me podiam ajudar ? As perguntas são as seguintes : Posso implementar uma Stack com qualquer estrutura de dados ? Justifique e exemplifique a sua resposta. Um array ordenado de forma ascendente é sempre uma miniheap ? Obrigado
  12. Verificar a existencia de um ficheiro

    Boas comunidade, Necessitava de uma ajuda, se possível, que não estou a conseguir. Quando faço um upload para a minha pasta de que se encontra no ftp server, antes de o fazer gostava de verificar se o nome de um documento já existe. Para evitar o overwrite. Desde já obrigado a todos
  13. Simular Tempo

    Boas malta, qual a melhor maneira de simular tempo em java, isto é, imaginem 2 segundos de funcionamento real do programa equivale digamos a 2 horas? Obrigado
  14. Criar programa

    Olá pessoal, eu gostava que me pudessem ajudar. Eu quero desenvolver um programa que recolha informações de links que acabam em .json (são links de uma Web Api de um jogo). Tem um amigo meu que criou um programa (ou bot) que em 1 min lhe dá as informações e ele apenas me disse isto "só fazer um programa pra dar um get nos jsons e serializar as informações dele em objetos" Alguém me pode ajudar? Links: (REMOVIDOS)
  15. Classificação de Textos

    Bom dia, Estou a realizar um trabalho que de uma forma simplificada consiste em extrair posts do twitter, armazena-los e classificar/encontrar sentimentos no texto. As duas primeiras fases estão feitas e na fase de classificação, já fiz o pré-processamento do texto, ou seja, de uma frase removi tudo que não interessa e apenas deixei palavras que possam demonstrar algo capaz de classificar a mesma como positiva, negativa ou neutra. A minha pergunta é: Alguém já fez algo parecido usando algoritmos como o Naive Bayes por exemplo, em java que me possa recomendar algumas bibliotecas que ajudem na classificação?
  16. Caminho para a pasta drawable

    Boa noite, estou a fazer um projeto para a escola e detive-me com este problema. O meu projeto é uma aplicação movel em que eu vou buscar dados à base de dados através da API. Na BD a variável imagem está a String, o meu problema é que a função "setImageResource" pede um Int. Este é o enxerto do código que estou com dificuldade, se alguém poder ajudar agradeço imenso! String ParteFinalNome = artigo.getImagem(); viewHolder.imagem.setImageResource(contexto.getApplicationInfo().dataDir + "/drawable/" + ParteFinalNome.toString());
  17. Ler e escrever num novo arquivo txt

    Pessoal quero ler um arquivo txt que contem dois números e escrever esses dois números num arquivo novo. Alguém pode me ajudar? Obrigado.
  18. comecei a trabalhar a pouco tempo num empresa que programa os cartões MiFire e estou na fase experimental. Entretanto o engenheiro mandou.me fazer um trabalho. Primeira etapa: Tenho que introduzir dois valores numéricos e obter o resultado da soma; Guardar num ficheiro sequencial as parcelas e o resultado da soma; Cada linha de ficheiro guardado "f1" contem 3 informações: linha1<- p1, p2, soma linha2<- p1, p2, soma Segunda etapa: Ler o ficheiro guardado e mostrar as parcelas com elemento de uma multiplicação e obter o resultado. Gravar num ficheiro txt "f2" os elementos e o produto em cada uma das linha. Estou a tentar fazer mas nao estou a conseguir, alguém podia me ajudar?? int n1 = Integer.parseInt(txtN1.getText()); int n2 = Integer.parseInt(txtN2.getText()); int soma = n1 + n2; //int mult = n1 * n2; txtR.setText(Integer.toString(soma)); //txtRM.setText(Integer.toString(mult)); String linhat = ""; //Ler e gravar no primeiro arquivo File arq = new File("arquivo.txt"); try{ arq.createNewFile(); FileReader ler = new FileReader(arq); FileWriter fileWriter = new FileWriter(arq); BufferedWriter escrever = new BufferedWriter(fileWriter); linhat = Integer.toString(n1)+ ";"; escrever.write(linhat); linhat = Integer.toString(n2)+";"; escrever.write(linhat); linhat = Integer.toString(soma) ; escrever.write(linhat); PrintWriter gravarArq = new PrintWriter(arq); gravarArq.print(linhat); escrever.close(); fileWriter.close(); BufferedReader lerb = new BufferedReader(ler); String linha = lerb.readLine(); while(linha !=null){ System.out.println(linha); linha = lerb.readLine(); //ler o ficheiro File file = new File("arquivo.txt"); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); // gravar o ficheiro "f2" File file = new File("arquivo2.txt"); FileWriter fw = new FileWrite(file); BufferedReader bw = new BufferedReader(fw); String s ="", bw.newLine; bw.write(s); bw.flush(); /* Scanner in = new Scanner(new FileReader("arquivo.txt")); while(in.hasNextLine()){ String line = scanner.nexteLine(); System.out.println(line); */ } }catch (IOException ex){ }
  19. Dúvida em array

    Boas sou iniciante em java e estou com alguns problemas. estou a fazer um programa que gerencia tarefas pessoais e tenho um problema ao adicionar tarefas a um array com algumas tarefas predefinidas, a primeira tarefa que adiciono funciona mas quando tento adicionar a segunda ele coloca os mesmos dados da primeira tarefa, se alguem conseguir perceber o erro. case 'a': System.out.println("Insira a tarefa que deseja adicionar"); textoInserido=teclado.nextLine(); do { System.out.println("Insira o dia"); diaInserido=teclado.nextInt(); teclado.nextLine(); }while (diaInserido>31 || diaInserido<=0); do { System.out.println("Insira o mes"); mesInserido=teclado.nextInt(); teclado.nextLine(); }while (mesInserido<=0 || mesInserido>12); do { System.out.println("Insira o ano"); anoInserido=teclado.nextInt(); teclado.nextLine(); }while (anoInserido<anoHoje); nTarefas=nTarefas+1; for (i=0; i<texto.length;i++) { if (texto[i]==null) { texto[i]=textoInserido; } } for (i=0; i<dia.length;i++) { if (dia[i]==0) { dia[i]=diaInserido; } } for (i=0; i<mes.length;i++) { if (mes[i]==0) { mes[i]=mesInserido; } } for (i=0; i<ano.length;i++) { if (ano[i]==0) { ano[i]=anoInserido; } } break;
  20. Mostrar itens até dia tal

    Boa tarde, Estou com uma dificuldade, o utilizador introduz o dia, mês e o ano e lista os itens do array, mas só pode mostrar os itens a realizar ATÉ esse dia... Tenho de comparar o dia, mês e ano todo à mão sem nenhuma instrução do java... Não estou a conseguir seguir essa sequência. Fico à espera pela ajuda, obrigado
  21. Eliminar item especifico do Array

    Boa tarde, Sou iniciante no java, e tenho uma dúvida... O objetivo é perguntar ao utilizador qual o item que deseja eliminar do array, e eliminar esse item do array. Mas não estou a conseguir fazer... System.out.println(); System.out.print("> Introduza o número da tarefa que quer eliminar: "); tarefaApagada = teclado.nextInt(); for (int i = 0; i < nTarefas; i++) { if (tarefaApagada == i+1) { texto[i] = null; prazo[i] = false; feita[i] = false; dia[i] = 0; mes[i] = 0; ano[i] = 0; i--; break; } } Fiz assim, mas não resulta... Fico à espera de uma ajuda, obrigado
  22. Grelha de palavras

    faca um programa que apresente uma grelha retangular de celulas preenchidas com os carateres das palavras indicadas como argumentos na linha de comandos. o numero de linhas da grelha e igual ao numero de palavras e o numero de colunas e igual ao numero de carateres da maior palavra. o carater _ ou a ausencia de carateres no fim da palavra e representado com celula vazia n percebi nada, ajudem me pls
  23. Coneccao java e mysql

    Ola pessoal. tenho dificuldades na conecao do java com o mysql server. ja criei a classe de coneccao, criei uma classe que recebe o nome de uma das tabelas do banco de dados, ja na classe DAO, tenho problemas na linha que devia executar o statament, mas nao sei como resolver, nao consigo perceber o erro. ajudem por favor. a classe da coneccao: import com.mysql.jdbc.PreparedStatement; import java.sql.Connection; import java.sql.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class Coneccao { private static final String DRIVER="com.mysql.jdbc.Driver"; private static final String URL="jdbc:mysql://localhost:3306/mydb"; private static final String USER="root"; private static final String PASS=""; boolean ok; public static Connection getConnection() { try { Class.forName(DRIVER); } catch (ClassNotFoundException ex) { Logger.getLogger(Coneccao.class.getName()).log(Level.SEVERE, null, ex); } try { DriverManager.getConnection(URL,USER,PASS); } catch (SQLException ex) { Logger.getLogger(Coneccao.class.getName()).log(Level.SEVERE, null, ex); } //just testing.. return null; } public static void closeConnection(Connection con) { if (con!= null){ try { con.close(); } catch (SQLException ex) { Logger.getLogger(Coneccao.class.getName()).log(Level.SEVERE, null, ex); } } } public static void closeConnection(Connection con, PreparedStatement stmt ) { closeConnection(con); if(stmt!=null){ try { stmt.close(); } catch (SQLException ex) { Logger.getLogger(Coneccao.class.getName()).log(Level.SEVERE, null, ex); } } } public static void closeConnection(Connection con, PreparedStatement stmt, ResultSet rs) { closeConnection(con,stmt); if(rs!=null){ try { rs.close(); } catch (SQLException ex) { Logger.getLogger(Coneccao.class.getName()).log(Level.SEVERE, null, ex); } } } public static void main(String args[]) { Coneccao c= new Coneccao(); c.getConnection(); } } a classe java para a tabela: public class Funcionario { private String idFuncionario; private String nome; private String apelido; private int idade; private String departamento; public String getIdFuncionario() { return idFuncionario; } public void setIdFuncionario(String idFuncionario) { this.idFuncionario = idFuncionario; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getApelido() { return apelido; } public void setApelido(String apelido) { this.apelido = apelido; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public String getDepartamento() { return departamento; } public void setDepartamento(String departamento) { this.departamento = departamento; } } a classe DAO: import BEAN.Funcionario; import Model.Coneccao; import com.mysql.jdbc.PreparedStatement; import java.sql.Connection; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * * @author Palmira */ public class ManipulandoBD { public static void create(Funcionario f) { Connection con = Coneccao.getConnection(); PreparedStatement stmt = null; try { stmt=(PreparedStatement)con.prepareStatement("INSERT INTO funcionario (idFuncionario,Nome,Apelido,Idade,Departamento)VALUES(?,?,?,?,?)"); stmt.setString(1, f.getIdFuncionario());//a posicao das colunas como colocamos na linha acima e string. stmt.setString(2, f.getNome()); stmt.setString(3, f.getApelido()); stmt.setInt(4, f.getIdade()); stmt.setString(5, f.getDepartamento()); stmt.executeUpdate();//executa o statement System.out.println("salvo com sucesso"); } catch (SQLException ex) { System.out.println("nao salvou"); Logger.getLogger(ManipulandoBD.class.getName()).log(Level.SEVERE, null, ex); }finally{ Coneccao.closeConnection(con, stmt); } } public static void main(String[] args) { Funcionario f= new Funcionario(); f.setIdFuncionario("1"); f.setDepartamento("contabilidade"); f.setApelido("Sa"); f.setNome("Palmira"); f.setIdade(20); create(f); } } no output, aparece o erro: run: Exception in thread "main" java.lang.NullPointerException at DAO.ManipulandoBD.create(ManipulandoBD.java:30) at DAO.ManipulandoBD.main(ManipulandoBD.java:53) Picked up _JAVA_OPTIONS: -Xms256M Java Result: 1 como resolvo?
  24. Contar ocorrencias de uma substring numa string

    Olá boa noite, para completar uma parte de um projeto escolar preciso de uma função auxiliar que me permita contar o nr de ocorrencias que uma substring aparece numa string principal para isso fiz: public int ocorrencias1(String palavra) { String findStr = palavra; int lastIndex = 0; int count = 0; while(lastIndex != -1){ lastIndex = retornaTexto().indexOf(findStr,lastIndex); if(lastIndex != -1){ count ++; lastIndex += ((findStr).length()); } } System.out.println(count); return count; } no entanto nao estou a obter o resultado que queria, pois queria apanhar as substrings que completam uma palavra ou uma frase por exemplo, se eu quisesse procurar a palavra "por" na string "por duas portugal foi à final", o meu objetivo era que o retorno fosse 1, no entanto o retorno é 2 pq este programa lê tb na palavra "portugal" Agradecia uma ajuda, obrigado!
  25. como posso formatar data

    Alguém sabe como consigo mudar o DataFormatter() aparece mm/dd/yyyy e eu queria dd/mm/yyyy O meu código está assim. <%-- Document : index Created on : Oct 9, 2017, 11:11:52 AM Author : Marcio Salgado --%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="org.apache.poi.ss.usermodel.DataFormatter"%> <%@page import="org.apache.poi.openxml4j.opc.OPCPackage"%> <%@ page language="java" import="java.sql.*" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page import ="java.util.Date" %> <%@ page import ="java.io.*" %> <%@ page import ="java.io.FileNotFoundException" %> <%@ page import ="java.io.IOException" %> <%@ page import ="java.util.Iterator" %> <%@ page import ="java.util.ArrayList" %> <%@ page import ="java.sql.Statement" %> <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %> <%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page import="java.util.*, java.io.*" %> <%@ page import="java.util.Iterator"%> <%@ page import="java.util.List"%> <%@ page import="java.io.File"%> <%@ page import ="org.apache.poi.hssf.usermodel.HSSFCell" %> <%@ page import ="org.apache.poi.hssf.usermodel.HSSFRow" %> <%@ page import ="org.apache.poi.hssf.usermodel.HSSFSheet" %> <%@ page import ="org.apache.poi.hssf.usermodel.HSSFWorkbook" %> <%@ page import ="org.apache.poi.poifs.filesystem.POIFSFileSystem" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <jsp:useBean id="connection" class="DB.DB_Connection" scope="page"> <jsp:setProperty name="connection" property="*"/> </jsp:useBean> <%! Connection con; PreparedStatement ps=null; ResultSet rs=null; public static ArrayList readExcelFile(String fileName) { /** --Define a ArrayList --Holds ArrayList Of Cells */ ArrayList cellArrayLisstHolder = new ArrayList(); try{ /** Creating Input Stream**/ FileInputStream myInput = new FileInputStream(fileName); /** Create a POIFSFileSystem object**/ POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput); /** Create a workbook using the File System**/ HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); /** Get the first sheet from workbook**/ HSSFSheet mySheet = myWorkBook.getSheetAt(0); /** We now need something to iterate through the cells.**/ Iterator rowIter = mySheet.rowIterator(); while(rowIter.hasNext()){ HSSFRow myRow = (HSSFRow) rowIter.next(); Iterator cellIter = myRow.cellIterator(); ArrayList cellStoreArrayList=new ArrayList(); while(cellIter.hasNext()){ HSSFCell myCell = (HSSFCell) cellIter.next(); cellStoreArrayList.add(myCell); } cellArrayLisstHolder.add(cellStoreArrayList); } }catch (Exception e){e.printStackTrace(); } return cellArrayLisstHolder; }%> <% String ImageFile=""; String itemName = ""; boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { } else { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null; try { items = upload.parseRequest(request); } catch (FileUploadException e) { e.getMessage(); } Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); if(name.equals("ImageFile")) { ImageFile=value; } } else { try { itemName = item.getName(); File savedFile = new File(config.getServletContext().getRealPath("/")+"Example\\image-folder\\"+itemName); item.write(savedFile); } catch (Exception e) { out.println("Error"+e.getMessage()); } } } try { //con=connection.getConn(); String query1="insert into test(image) values ('"+itemName+"')"; //ps=con.prepareStatement(query1); //ps.executeUpdate("insert into test(image) values ('"+itemName+"')"); } catch(Exception el) { out.println("Inserting error"+el.getMessage()); } } //request.setAttribute("file", request.getParameter("file")); //String fileName = itemName; String fileName = config.getServletContext().getRealPath("/")+"Example\\image-folder\\"+itemName; //String fileName="C:/teste2.xls"; //"C:/teste2.xls"; // Excel File name.xls //Read an Excel File and Store in a ArrayList ArrayList dataHolder=readExcelFile(fileName); //Print the data read //printCellDataToConsole(dataHolder); con=connection.getConn(); String query="insert into teste1 values(?,?,?,?,?,?,?,?,?)"; ps=con.prepareStatement(query); int count=0; ArrayList cellStoreArrayList=null; //For inserting into database String cmdSelect=""; for (int i=1;i < dataHolder.size(); i++) { cellStoreArrayList=(ArrayList)dataHolder.get(i); String bank = cellStoreArrayList.get(7).toString(); cmdSelect = "SELECT codigo FROM bancos WHERE n_abrev like '%"+bank+"%' "; Statement stmt = connection.getConn().createStatement(); System.out.println(cmdSelect); ResultSet rs = stmt.executeQuery(cmdSelect); String idBank = ""; while (rs.next()) { idBank = rs.getString("codigo"); } SimpleDateFormat DtFormat = new SimpleDateFormat("dd/MM/yyyy"); ps.setString(1,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(0))).toString()); ps.setString(2,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(1))).toString()); ps.setString(3,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(2))).toString()); ps.setString(4,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(3))).toString()); ps.setString(5,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(4))).toString()); ps.setString(6,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(5))).toString()); ps.setString(7,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(6))).toString()); ps.setString(8,idBank); ps.setString(9,(new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(8))).toString()); count= ps.executeUpdate(); System.out.print(((HSSFCell)cellStoreArrayList.get(8)).toString() + "t"); } //For checking data is inserted or not? if(count>0) { %> Foram inseridos na base de dados os seguintes dados. <table> <tr> <th>paciente</th> <th>nome</th> <th>motivo</th> <th>pag</th> <th>cheque</th> <th>conta</th> <th>data</th> <th>banco</th> <th>data Entrega</th> </tr> <% for (int i=1;i < dataHolder.size(); i++) { cellStoreArrayList=(ArrayList)dataHolder.get(i);%> <tr> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(0))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(1))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(2))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(3))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(4))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(5))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(6))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(7))).toString()) %></td> <td><%=((new DataFormatter().formatCellValue((HSSFCell)cellStoreArrayList.get(8))).toString()) %></td> </tr> <%} } else {%> <center> Details have not been inserted!!!!!!!!!</center> <% } %> </table> </body> </html> Alguém me pode ajudar? Obrigado
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.