AdrianoSiqueira
Membro Pleno-
Posts
1.287 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que AdrianoSiqueira postou
-
Java Matriz para > , < e md altura , sexo,
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
Problemas: Você não inicializou o vetor sexo, por isso está lançando NullPointerException. Declarou a variável media como atributo da classe, depois declarou novamente dentro do método insereInfo. Você declarou duas variáveis do tipo JTextArea, a menos que você esteja desenvolvendo uma interface gráfica, essas variáveis não vão servir de nada. Declare a variável de controle dos loops, dentro do próprio loop, assim evita eventuais problemas. Todos os laços for estão errados, eles não percorrem todos os elementos por causa do '-1'. No primeiro laço for você errou o índice do vetor sexo, colou '0' onde deveria ser 'i'. No segundo for você não informou o índice do vetor sexo que quer pegar os dados. Nos laços for para achar a maior e menor altura, não precisa da classe Math porque você já tem o if. A classe Math vai adulterar o resultado. As variáveis de maior e menor altura não podem ser inicializadas antes do vetor possuir dados, senão existe a chance da condição não ser satisfeita. Convenção Por convenção, nome de classe deve começar com letra maiúscula. Dica Quando sua variável se referir a um conjunto de dados, procure dar nomes no plural. Procure declarar uma variável por linha, mais do que isso não agrega nada no código e pode dificultar o entendimento do mesmo. Tente separar as funcionalidades do seu código em métodos, assim fica mais fácil de desenvolver, testar e corrigir eventuais problemas. Crie uma variável para conter a quantidade de itens dos vetores, isso melhora a legibilidade do código. Seu código com algumas correções: public class App { int quantidade = 3; double[] altura = new double[quantidade]; int[] sexo = new int[quantidade]; double menorAlt = 0.0; double maiorAlt = 0.0; double media = 0.0; double somaAltura = 0.0; public void insereInfo() { for (int i = 0; i < altura.length; i++) { String alt = "Digite a alt"; String sex = "Digite: \n 1 - para sexo Masc \n 2 - para sexo Fem"; altura[i] = Double.parseDouble(JOptionPane.showInputDialog(null, alt)); somaAltura += altura[i]; sexo[i] = Integer.parseInt(JOptionPane.showInputDialog(null, sex)); } JTextArea outputTextArea = new JTextArea(); JTextArea outputTextArea1 = new JTextArea(); outputTextArea.setText("Indice\tAltura\tSexo\n"); for (int i = 0; i < altura.length; i++) { outputTextArea.append(i + "\t" + altura[i] + "\t" + sexo[i] + "\n"); } JOptionPane.showMessageDialog(null, outputTextArea, "Demonstrativo 1", JOptionPane.INFORMATION_MESSAGE); maiorAlt = altura[0]; for (int i = 1; i < altura.length; i++) { if (altura[i] > maiorAlt) { maiorAlt = altura[i]; } } menorAlt = altura[0]; for (int i = 1; i < altura.length; i++) { if (altura[i] < menorAlt) { menorAlt = altura[i]; } } media = somaAltura / quantidade; JOptionPane.showMessageDialog(null, "Maior altura: " + maiorAlt + "\n" + "Menor altura: " + menorAlt + "\n" + "Altura média: " + media + "\n"); System.exit(0); } } -
Java Fazer o exercício abaixo com vetor!
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
Para declarar um vetor, faça assim: tipo[] nome = new tipo[quantidade]; Por exemplo, para criar um vetor com 5 nomes: String[] nomes = new String[5]; O acesso dos dados (tanto leitura, quanto escrita) é feito por meio do índice do vetor começando em 0. String[] nomes = new String[5]; nomes[0] = "Nome 1"; nomes[1] = "Nome 2"; nomes[2] = "Nome 3"; nomes[3] = "Nome 4"; nomes[4] = "Nome 5"; // Pegar o primeiro nome String primeiroNome = nomes[0]; // Pegar a quantidade de nomes int quantidadeNomes = nomes.length(); Uma outra maneira de declarar um vetor, é inicializando com os devidos valores: // Cria um vetor com 3 nomes já inicializados String[] nomes = new String[]{"Nome 1", "Nome 2", "Nome 3"}; // Ou pode usar a forma mais reduzida String[] nomes = {"Nome 1", "Nome 2", "Nome 3"}; Obs.: Vetores possuem tamanho fixo. Dessa forma só podem conter a quantidade informada no momento da criação. String[] nomes = new String[2]; nomes[0] = "Nome 1"; nomes[1] = "Nome 2"; // Isso vai lançar exceção pois o vetor não possui a terceira posição. nomes[2] = "Nome 3"; // Isso vale tanto para leitura, quanto para escrita. String terceiroNome = nomes[2]; -
Não carrega o boot depois de instalar o Windows, o que testar?
AdrianoSiqueira respondeu ao tópico de lsnkesp em Versões até Windows 8
Dê uma olhada aqui: https://support.microsoft.com/pt-br/topic/mensagem-de-erro-stop-0x0000006b-process1-initialization-failed-código-de-erro-durante-a-inicialização-em-um-computador-que-esteja-executando-o-windows-7-ou-windows-server-2008-r2-3c948539-15ed-ee48-cb16-5fcb6012e79b Você está instalando o Windows 7 com SP1? -
Java Conversão Portugol para Java
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
Foi bem, deu quase tudo certo. Porém você mudou a estrutura do programa, por exemplo cadeia res deveria ter sido convertido para char res; Mas você declarou como sendo do tipo Scanner. O laço faca { [...] } enquanto(res == "s" ou res == "S") desapareceu do seu programa, e ele é importante para o fluxo correto. Ele deveria ter sido convertido para do { [...] } while(res == "s" ou res == "S") Os demais são erros de sintaxe, algumas chaves foram abertas onde não deveriam e fechadas nos lugares errados. -
Java Conversão Portugol para Java
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
Basicamente é só ir trocando os comando em português pelos equivalentes da linguagem. escreva = System.out.println inteiro = int real = double faca-enquanto = do-while leia = *use a classe Scanner cadeia = char funcao = *use a sintaxe de métodos do java programa = *use o nome da classe -
Java JOptionPane responde apenas primeira parte
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
Recomendo esse curso, é de graça e de ótima qualidade: https://www.youtube.com/playlist?list=PL62G310vn6nFIsOCC0H-C2infYgwm8SWW. -
Java JOptionPane responde apenas primeira parte
AdrianoSiqueira respondeu ao tópico de Teh Leonardo em Java/Android SDK
. O problema está no for, a condição i == numeroTotalMercadoria sempre é falsa, por isso o loop nunca é executado. Veja se isso ajuda: import javax.swing.JOptionPane; public class loja { public static void main(String[] args) { String entrada = ""; int quantidadeMercadorias = 0; double valorMercadoria = 0.0; double valorTotalEstoque = 0.0; double mediaValorMercadoria = 0.0; entrada = JOptionPane.showInputDialog("Informe a quantidade de mercadorias"); try { quantidadeMercadorias = Integer.parseInt(entrada); } catch(Exception ignored) { System.err.println("Entrada inválida."); return; } for (int i = 0; i < quantidadeMercadorias; i++) { entrada = JOptionPane.showInputDialog("Digite o valor da mercadoria [ " + (i + 1) + " de " + quantidadeMercadorias + "]"); try { valorMercadoria = Double.parseDouble(entrada); } catch(Exception ignored) { System.err.println("Entrada inválida."); --i; continue; } valorTotalEstoque += valorMercadoria; } mediaValorMercadoria = valorTotalEstoque / quantidadeMercadorias; JOptionPane.showMessageDialog( null, "Valor total: R$ " + valorTotalEstoque + "\n" + "Media: R$ " + mediaValorMercadoria ); } } -
Java Interface Pokemon (Ataque e Defesa)
AdrianoSiqueira respondeu ao tópico de Berus-kun em Java/Android SDK
Por que vocês não seguem essa abordagem? public class ProgramaPokemon { public static void main(String[] args) { Pokemon p1 = new Pokemon("Pikachu", Tipo.ELETRICO, 100, 20, 15); Pokemon p2 = new Pokemon("Bubassauro", Tipo.GRAMA, 100, 25, 17); System.out.println("Estado atual:"); System.out.println(p1); System.out.println(p2); System.out.println(p1.getNome() + " ataca " + p2.getNome()); p1.atacar(p2); System.out.println("Estado atual:"); System.out.println(p1); System.out.println(p2); System.out.println(p2.getNome() + " ataca " + p1.getNome()); p2.atacar(p1); System.out.println("Estado atual:"); System.out.println(p1); System.out.println(p2); } private enum Tipo { AGUA, ELETRICO, FANTASMA, FOGO, GRAMA, INSETO, NORMAL } private interface IAtaque { void atacar(Pokemon pokemon); } private static class Pokemon implements IAtaque { private String nome; private Tipo tipo; private int vida; private int ataque; private int defesa; public Pokemon(String nome, Tipo tipo, int vida, int ataque, int defesa) { this.nome = nome; this.tipo = tipo; this.vida = vida; this.ataque = ataque; this.defesa = defesa; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Tipo getTipo() { return tipo; } public void setTipo(Tipo tipo) { this.tipo = tipo; } public int getVida() { return vida; } public void setVida(int vida) { this.vida = vida; } public int getAtaque() { return ataque; } public void setAtaque(int ataque) { this.ataque = ataque; } public int getDefesa() { return defesa; } public void setDefesa(int defesa) { this.defesa = defesa; } @Override public void atacar(Pokemon alvo) { int dano = Math.max(0, ataque - alvo.defesa); alvo.vida -= dano; } @Override public String toString() { return "Pokemon{" + "nome='" + nome + '\'' + ", tipo=" + tipo + ", vida=" + vida + ", ataque=" + ataque + ", defesa=" + defesa + '}'; } } } Se quiserem aprender sobre Java, recomendo esse curso: https://www.youtube.com/playlist?list=PL62G310vn6nFIsOCC0H-C2infYgwm8SWW. É de graça e de alta qualidade. -
Java Qual o diretório do Java JDK instalado pelo Eclipse IDE 2021-12?
AdrianoSiqueira respondeu ao tópico de PortalBranco em Java/Android SDK
Nunca usei o Eclipse, mas parece que você tem que informar a pasta onde você instalou o JDK. -
Java Ler arquivo CSV para gerar um novo CSV com uma nova coluna
AdrianoSiqueira respondeu ao tópico de dcm50 em Java/Android SDK
Veja se isso te ajuda: package teste.leitorcsv; import java.io.IOException; import java.lang.reflect.Field; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Scanner; import java.util.StringJoiner; import java.util.random.RandomGenerator; import java.util.stream.Stream; public class LeitorCSVApp implements Runnable { private String converterObjetosParaString(List<ObjetoModelagem> objetos) { NumberFormat formatadorDecimal = NumberFormat.getInstance(); StringBuilder conteudo = new StringBuilder(); /* * Cria a linha de cabecalho automaticamente usando reflection para * obter o nome dos atributos declarados na classe ObjetoModelagem. */ StringJoiner cabecalho = new StringJoiner(";", "", ""); Stream.of(ObjetoModelagem.class.getDeclaredFields()) .map(Field::getName) .forEach(cabecalho::add); conteudo.append(cabecalho) .append(System.lineSeparator()); objetos.forEach(objeto -> conteudo.append(objeto.agencia) .append(";") .append(objeto.conta) .append(";") .append(formatadorDecimal.format(objeto.saldo)) .append(";") .append(objeto.status) .append(";") .append(objeto.algumaCoisa) .append(System.lineSeparator())); return conteudo.toString(); } private ObjetoModelagem criarObjetoAPartirDaLinhaCSV(String linha) { String[] valores = linha.split(";"); // Esta faltando informacao na linha, entao pulamos ela. if (valores.length != 4) return null; ObjetoModelagem objeto = new ObjetoModelagem(); objeto.agencia = valores[0]; objeto.conta = valores[1]; objeto.status = valores[3].charAt(0); /* * O scanner considera o locale na hora de converter string * para double. Ele automaticamente reconhecera se o valor * e separado por ponto ou por virgula. */ Scanner scanner = new Scanner(valores[2]); objeto.saldo = scanner.nextDouble(); return objeto; } private void escreverCSV(String conteudo, Path arquivo) { try { // Apaga os dados antigos Files.deleteIfExists(arquivo); // Escreve os novos dados criando o arquivo se necessario Files.writeString(arquivo, conteudo, StandardOpenOption.CREATE, StandardOpenOption.APPEND); } catch (IOException e) { e.printStackTrace(); } } private List<ObjetoModelagem> lerCSV(Path arquivo) { List<ObjetoModelagem> objetos = new ArrayList<>(); try { Files.readAllLines(arquivo) .stream() .skip(1) .map(this::criarObjetoAPartirDaLinhaCSV) .filter(Objects::nonNull) .forEach(objetos::add); } catch (IOException e) { e.printStackTrace(); } return objetos; } private void simularProcessamento(ObjetoModelagem objeto) { int valor = RandomGenerator.getDefault().nextInt(0, 100); objeto.algumaCoisa = valor % 2 == 0; } @Override public void run() { String caminho = "src/teste/leitorcsv/"; Path arquivoOrigem = Path.of(caminho + "origem.csv"); Path arquivoDestino = Path.of(caminho + "destino.csv"); List<ObjetoModelagem> objetos = lerCSV(arquivoOrigem); objetos.forEach(this::simularProcessamento); String conteudo = converterObjetosParaString(objetos); escreverCSV(conteudo, arquivoDestino); } private static class ObjetoModelagem { public String agencia; public String conta; public double saldo; public char status; public boolean algumaCoisa; public ObjetoModelagem() { } public ObjetoModelagem(String agencia, String conta, double saldo, char status) { this.agencia = agencia; this.conta = conta; this.saldo = saldo; this.status = status; } } } Está simplificado para facilitar o entendimento. -
upgrade do acer aspire m5-481pt. não reconhece a memoria ram
AdrianoSiqueira respondeu ao tópico de Acacia C. de Lima em Notebooks
Tenta passar uma borracha na memória e um limpa contato no slot da placa-mãe. Só toma cuidado porque tem que limpar bem o pente de memória, e tem que deixar o produto secar antes de montar. Se possível teste o pente de memória em outro notebook, só para ver se funciona. -
upgrade do acer aspire m5-481pt. não reconhece a memoria ram
AdrianoSiqueira respondeu ao tópico de Acacia C. de Lima em Notebooks
Isso aí é coisa da placa-mãe. Meu notebook é chato também quando eu mexo nas memórias. Vai tentando várias vezes, alternando entre os slots. Uma hora vai. -
Java Interface Pokemon (Ataque e Defesa)
AdrianoSiqueira respondeu ao tópico de Berus-kun em Java/Android SDK
Não respondeu a pergunta... -
Java Interface Pokemon (Ataque e Defesa)
AdrianoSiqueira respondeu ao tópico de Berus-kun em Java/Android SDK
O que Pikachu está estendendo? -
SSD Não Formata e Não Deleta Partição
AdrianoSiqueira respondeu ao tópico de Fernando Cardoso de Melo em HD, SSD e NAS
Já ouvi dizer que memórias flash (cartões de memória, pendrive e SSDs), quando estão perto de morrer entram em um estado de "somente leitura". O suficiente para você fazer backup para outro dispositivo e jogá-lo fora. Provavelmente seu SSD está com o pé na cova, melhor salvar suas coisas e aposentá-lo. -
Java Ao importar o pacote Scanner, ele não funciona ao inserir dados
AdrianoSiqueira respondeu ao tópico de AndreSantosLeite em Java/Android SDK
Não precisa criar tantos tópicos para o mesmo problema, isso dificulta para quem quer te ajudar. Esse problema está relacionado com o problema de persistência de dados que eu respondi no seu outro tópico. -
Java Não Consigo Criar a Lista e Depois não aparece as informações nessa lista
AdrianoSiqueira respondeu ao tópico de AndreSantosLeite em Java/Android SDK
Os dados ficam armazenados na memória, quando o você fecha o programa, a memória é apagada. Se você quer salvar os dados de forma permanente, precisa persistir os dados de alguma forma. Você pode salvar os dados em um arquivo, ou em um banco de dados. -
Pode apagar esses arquivos do HD?
AdrianoSiqueira respondeu ao tópico de Camilla Karine em HD, SSD e NAS
Compensa mais formatar esse HD, assim garante que o dispositivo será totalmente limpo. -
Java estou com dificuldade em java para criar programa de mediateca
AdrianoSiqueira respondeu ao tópico de Braúlio António Pedro em Java/Android SDK
Qual a sua dúvida? Comece criando as classes de modelagem. Essas classes são responsáveis por representar elementos do mundo real dentro do seu programa. Depois, comece desenvolver as regras de negócio. E por fim, crie uma camada para interagir com o usuário. -
Vish, não sei nada de javascript, achei que fosse Java. Acho que você vai ter mais sorte no setor de programação web aqui do fórum.
-
Qual a versão do java você está usando?
-
Algo assim não serve? String color = switch(innerHTML) { case "small" -> "verde"; case "medium" -> "castanho"; case "large" -> "vermelho"; default -> throw new RuntimeException("Valor inesperado: '" + innerHTML + "'"); }
-
Você quer que a variável color receba o nome de uma cor baseando no conteúdo do innerHTML? Se for isso, um switch não serve?
-
Lowlevel é confiável pra formatar?
AdrianoSiqueira respondeu ao tópico de PortalBranco em HD, SSD e NAS
Vai no "Meu computador", botão direito no pendrive, clique em formatar e desmarque a "formatação rápida". Isso fará a formatação low-level. -
Lowlevel é confiável pra formatar?
AdrianoSiqueira respondeu ao tópico de PortalBranco em HD, SSD e NAS
Confiável deve ser, só não sei se vale a pena usar. O Windows já tem essas funções nativamente para realizar formatação, tanto rápida, quanto completa.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais