Ir ao conteúdo
  • Cadastre-se

AdrianoSiqueira

Membro Pleno
  • Posts

    1.287
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Esse erro chamado nan, significa Not A Number. Isso acontece porque algum resultado não é numérico. Pelo seu código, dá para ver que você só se preocupou em verificar se a != 0, mas pelos valores que você informou: a = 4 b = 1 c = 2 Delta = -31. Na hora que vai calcular a raiz quadrada, o erro é lançado porque não existe raiz de número negativo. Dica: É uma boa prática de programação, inicializar todas as variáveis logo ao declará-las. Segue um exemplo de como ficaria o código: #include <iostream> #include <math.h> int main(){ double a = 0; double b = 0; double c = 0; double delta = 0; double raizDelta = 0; double x1 = 0; double x2 = 0; std::cout << "Digite os valores de a, b, c separados por espaço:" << std::endl; std::cout << "> "; std::cin >> a; std::cin >> b; std::cin >> c; if (a == 0) { std::cout << "O 'A' não pode ser 0!" << std::endl; return 1; // Encerra o programa. Valor diferente de 0 indica falha. } delta = std::pow(b, 2) - (4 * a * c); std::cout << " A: " << a << std::endl; std::cout << " B: " << b << std::endl; std::cout << " C: " << c << std::endl; std::cout << " D: " << delta << std::endl; if (delta >= 0) { raizDelta = std::sqrt(delta); x1 = (-b + raizDelta) / (2 * a); x2 = (-b - raizDelta) / (2 * a); std::cout << "RD: " << raizDelta << std::endl; std::cout << "X1: " << x1 << std::endl; std::cout << "X2: " << x2 << std::endl; } else { std::cout << "Delta é NEGATIVO. Não tem como continuar a conta." << std::endl; } return 0; } adicionado 5 minutos depois Essa combinação de valores resulta no delta = 196. Em outras palavras foi pura sorte ter dado certo.
  2. Desculpe pela demora, mas como diz o ditado: "Antes tarde do que nunca". Acho que é isso que você precisa, ou precisava: import java.util.Random; public class PadroesMatrizTest { public static void main(String[] args) { int tamanho = 10; int[][] matriz = new int[tamanho][tamanho]; int padraoOI = 0; int padraoOO = 0; int padraoIO = 0; int padraoII = 0; // Preencher matriz com valores binários aleatórios for (int c = 0; c < tamanho; ++c) for (int l = 0; l < tamanho; ++l) matriz[l][c] = new Random().nextInt(2); // analisar em busca dos padrões for (int l = 0; l < tamanho; ++l) { for (int c = 0; c < tamanho - 1; ++c) { if (matriz[c][l] == 0 && matriz[c + 1][l] == 0) ++padraoOO; else if (matriz[c][l] == 0 && matriz[c + 1][l] == 1) ++padraoOI; else if (matriz[c][l] == 1 && matriz[c + 1][l] == 0) ++padraoIO; else if (matriz[c][l] == 1 && matriz[c + 1][l] == 1) ++padraoII; } } // Exibição de relatório System.out.println(">> Matriz"); for (int l = 0; l < tamanho; ++l) { for (int c = 0; c < tamanho; ++c) System.out.print(matriz[c][l] + " "); System.out.println(); } System.out.println(); System.out.println(">> Padrões"); System.out.println("Padrão OO: " + padraoOO); System.out.println("Padrão OI: " + padraoOI); System.out.println("Padrão IO: " + padraoIO); System.out.println("Padrão II: " + padraoII); } }
  3. Cara, um exemplo que eu fiz aqui funcionou. package code; import javax.swing.*; import java.net.URL; public class IconLabelTest { public static void main(String[] args) { JLabel label = new JLabel(); label.setText("Ícone"); label.setIconTextGap(10); URL url = IconLabelTest.class.getResource("/code/Fire.jpg"); label.setIcon(new ImageIcon(url)); JFrame frame = new JFrame(); frame.setTitle("Ícone"); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setVisible(true); frame.add(label); } } Estrutura do meu projeto src | code | *-----------------------* | | Fire.jpg IconLabelTest.java Verifica se o caminho da sua imagem está correto.
  4. Acho que esse getClass() está retornando null, e quando você chama o getResource dá o erro de NullPointerException. Tenta depurar o código e ver se esse getClass está retornando alguma coisa.
  5. E se tirar a primeira barra da String? logo.setIcon(new javax.swing.ImageIcon(Menu.class.getResource("Main/LiturrgisLogoLoad.png")));
  6. Já tentou logo.setIcon(new javax.swing.ImageIcon(Menu.class.getResourceAsStream("/Main/LiturrgisLogoLoad.png"))); ?
  7. Seria algo assim? System.out.print("Quantidade de pessoas: "); int quantidade = scanner.nextInt(); // Instancia o vetor com o tamanho que o usuário escolher Pessoa11 pessoas[] = new Pessoa11[quantidade]; // Instancia cada um dos elementos do vetor for(int i = 0; i < pessoas.length; ++i) { pessoas[i] = new Pessoa11(); } Nesse caso o vetor teria o tamanho que o usuário escolher, e com todos os elementos devidamente instanciados.
  8. Aparentemente seu problema realmente é com a inicialização dos objetos. Um vetor é um objeto, logo o Java inicializa ele como null. Cada elemento desse vetor, no caso Pessoa11, também é um objeto, logo cada uma das posições do vetor é inicializada como null, mas apenas depois de inicializado o vetor. Ou seja, você tem que instanciar o vetor, depois percorrer cada uma de suas posições instanciando todas as pessoas, por exemplo com um construtor vazio. O NullPointerException está acontecendo porque você está chamando o setNome de um objeto que é null. Analise o exemplo, modifique para sua necessidade e vê se resolve. public class Pessoa { private String nome; public Pessoa() { this.nome = ""; } public Pessoa(String nome) { this.nome = nome; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Override public String toString() { return "Pessoa{" + "nome='" + nome + '\'' + '}'; } } public class Lista { private Pessoa[] pessoas; private int posicaoAtual; // Usado para adicionar pessoas public Lista() { this.pessoas = new Pessoa[10]; // Instancia o vetor for (int i = 0; i < this.pessoas.length; ++i) pessoas[i] = new Pessoa(); // Instancia cada elemento do vetor this.posicaoAtual = 0; } public void adicionar(Pessoa novo) { pessoas[posicaoAtual] = novo; ++posicaoAtual; } public Pessoa getPessoa(int posicao) { return pessoas[posicao]; } public Pessoa[] getPessoas() { return pessoas; } } public class Principal { public static void main(String[] args) { Lista lista = new Lista(); Pessoa p1 = new Pessoa("P1"); Pessoa p2 = new Pessoa("P2"); Pessoa p3 = new Pessoa("P3"); Pessoa p4 = new Pessoa("P4"); Pessoa p5 = new Pessoa("P5"); Pessoa p6 = new Pessoa("P6"); lista.adicionar(p1); lista.adicionar(p2); lista.adicionar(p3); lista.adicionar(p4); lista.adicionar(p5); lista.adicionar(p6); System.out.println("-------------------------"); for (Pessoa pessoa : lista.getPessoas()) System.out.println(pessoa); System.out.println("-------------------------"); System.out.println(); System.out.println(">> Modificando posição 2"); lista.getPessoa(2).setNome("Novo nome"); System.out.println(); System.out.println("-------------------------"); for (Pessoa pessoa : lista.getPessoas()) System.out.println(pessoa); System.out.println("-------------------------"); } }
  9. Você pode usar uma lista do tipo "Produto" para simular um estoque, a partir daí você preenche essa lista com alguns produtos e depois faz a consulta.
  10. Segue um exemplo funcional. Entenda o princípio e modifique ele para suprir as suas necessidades. import java.util.Arrays; import java.util.Scanner; public class MaiorMenorTemperatura { private static final int QUANTIDADE_TEMPERATURAS = 3; // Determina o tamanho do vetor private double[] temperaturas; // Armazena as temperaturas private double soma; // Necessário para calcular a média private double media; // Armazena a média private double menor; // Armazena o menor valor private double maior; // Armazena o maior valor public MaiorMenorTemperatura() { this.temperaturas = new double[QUANTIDADE_TEMPERATURAS]; this.soma = 0; } public static void main(String[] args) { MaiorMenorTemperatura temperatura = new MaiorMenorTemperatura(); temperatura.preencherTemperaturas(); temperatura.calcularMedia(); temperatura.determinarMaiorMenor(); temperatura.mostrarRelatorio(); } private void preencherTemperaturas() { System.out.println(">> Preencher temperaturas"); System.out.println("--------------------------------------"); for (int i = 0; i < QUANTIDADE_TEMPERATURAS; ++i) { System.out.print("Temperatura [" + (i + 1) + " de " + QUANTIDADE_TEMPERATURAS + "]: "); temperaturas[i] = new Scanner(System.in).nextDouble(); soma += temperaturas[i]; } System.out.println("--------------------------------------"); } private void calcularMedia() { media = soma / QUANTIDADE_TEMPERATURAS; } private void determinarMaiorMenor() { menor = temperaturas[0]; maior = temperaturas[0]; for (int i = 1; i < QUANTIDADE_TEMPERATURAS; ++i) { if (temperaturas[i] < menor) menor = temperaturas[i]; if (temperaturas[i] > maior) maior = temperaturas[i]; } } private void mostrarRelatorio() { System.out.println(); System.out.println(">> Relatório"); System.out.println("--------------------------------------"); System.out.println("Temperaturas: " + Arrays.toString(temperaturas)); System.out.println("Média: " + media); System.out.println("Menor: " + menor); System.out.println("Maior: " + maior); System.out.println("--------------------------------------"); } } Espero que ajude, boa sorte.
  11. Explicando o try-catch-finally: try { /* Tenta realizar alguma tarefa. */ } catch () { /* Se o bloco try falhar, esse será executado. */ } finally { /* Esse bloco executará independente de ter dado problema ou não. */ } Agora sobre sua lógica para determinar se é número ou não, poderia ser feito assim: public static boolean validaInteiro(String numeroString) { try { Integer.parseInt(numeroString); /* A linha acima tenta converter a String para int. * Se der certo, significa que a sua String é um número inteiro válido * e a execução passa para a próxima linha. * Se a conversão falhar, significa que a String não é um número válido, * nesse caso a execução para aqui e o bloco catch é executado. */ return true; // Essa linha só é alcançada se a conversão der CERTO. } catch (NumberFormatException e) { return false; // Essa linha só é alcançada se a conversão FALHAR. } } Para validar double: public static boolean validaDouble(String numeroString){ try { Double.parseDouble(numeroString); return true; } catch (NumberFormatException e) { return false; } }
  12. Os nomes devem ser do tipo string, senão irão armazenar apenas a primeira letra.
  13. Quase tudo certo com seu código, só adicionei alguns pequenos ajustes. #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int vet[100], int1 = 0, int2 = 0, int3 = 0, i; for (i = 0; i <= 99; i++) { printf("\n Informe o valor do vetor[%d]:", i); // Tem que mostrar onde o 'i' vai aparecer scanf("%d", &vet[i]); // Tem que informar a posição que vai ser inserido /* * Não precisa testar cada 'if' de forma independente, pois se * entrar na primeira condição, as demais serão falsas. * * Além disso, deve-se testar um valor específico do vetor, para * isso informamos o índice que queremos testar. */ if (vet >= 0 && vet[i] <= 50) { int1 = int1 + 1; } else if (vet >= 51 && vet[i] <= 81) { int2 = int1 + 1; } else if (vet >= 81 && vet[i] <= 100) { int3 = int1 + 1; } } printf("\n\n O valor dos elementos do vetor e:"); printf("\n"); for (i = 0; i <= 99; i++) { printf ("%d", vet[i]); // Deve-se informar qual valor deve ser impresso } printf("\n Valores acumulados no intervalo 1 e %d", int1); printf("\n Valores acumulados no intervalo 2 e %d", int2); printf("\n Valores acumulados no intervalo 3 e %d", int3); printf("\n "); }
  14. Adicione '/**' no início e '*/' no final. Isso irá gerar o javadoc. public class Programa { /** * Isso é um javadoc. * * Essa função faz alguma coisa. */ public void funcao(){ } }
  15. @AnsiC, você tem razão, foi um erro de lógica. É o que acontece quando não se debuga o código... #include <stdio.h> /** * Função para inverter vetor. * * @param vetor Vetor que será invertido. * @param posicaoInicio Primeira posição do vetor. * @param posicaoFim Última posição do vetor. */ void inverteVetor(int vetor[], int posicaoInicio, int posicaoFim) { if (posicaoInicio < posicaoFim) { int temp = vetor[posicaoInicio]; vetor[posicaoInicio] = vetor[posicaoFim]; vetor[posicaoFim] = temp; inverteVetor(vetor, ++posicaoInicio, --posicaoFim); } } int main(){ int vetor[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int elementos = (int) (sizeof(vetor) / sizeof(vetor[0])); inverteVetor(vetor, 0, (elementos - 1)); printf("Vetor invertido: \n"); for(int i = 0; i < elementos; ++i){ printf("%d ", vetor[i]); } printf("\n"); return 0; }
  16. @giu_d Pois é, tudo funciona, menos a largura mínima e máxima . Estou quase para deixar isso pra lá .
  17. @giu_d, realmente. O que eu fiz foi solucionar, de forma pontual, a exception lançada pelo programa a respeito de esperar um array. Analisando a situação como um todo, você tem toda a razão.
  18. public Dados(){ Usuarios users = new Usuarios("0001","adriano","santos","321","1"); // O problema está aqui users [contusuarios] = users; contusuarios ++; } Você não pode usar 'users' porque esse nome já foi usado para criar o vetor. O Java acha que você está tentando recriar o vetor, quando na verdade é só para adicionar. Troque o nome dessa variável e veja se resolve. package Classes; public class Dados { private Usuarios users[] = new Usuarios[50]; private int contusuarios = 0; public Dados(){ Usuarios novo = new Usuarios("0001","adriano","santos","321","1"); users[contusuarios] = novo; contusuarios++; }
  19. Eu nunca fiz esse procedimento, mas ele é usado para colocar seu roteador em modo bridge. Se algo der errado apenas resete o roteador e aguarde a ajuda de alguém mais capacitado do que eu.
  20. É só desmarcar uma opção nas configurações do seu roteador. Tutorial:
  21. Com PC desligado, gire hélice da fan do processador com os dedos e veja se não está endurecida. Ela tem que girar quase sozinha. Com o PC ligado, veja se a fan não está girando em velocidade reduzida, pode ser que esteja com algum problema.
  22. Não sou especialista em redes, mas isso deve ser problema de DHCP. Esse cabo que vem do seu vizinho deve estar saindo do roteador dele, assim o roteador dele controla o DHCP. Quando você conecta diretamente no seu PC, ele se torna cliente do roteador do seu vizinho, até aí beleza. Mas quando você conecta no seu roteador, aí os dois roteadores entram em conflito para saber quem manda no DHCP. Uma possível solução é você desativar o DHCP do seu rotador e ver se funciona.
  23. Acredito que isso resolva seu problema: #include <stdio.h> /** * Função para inverter vetor. * * @param vetor Vetor que será invertido. * @param posicaoInicio Primeira posição do vetor. * @param posicaoFim Última posição do vetor. */ void inverteVetor(int vetor[], int posicaoInicio, int posicaoFim) { int temp = vetor[posicaoInicio]; vetor[posicaoInicio] = vetor[posicaoFim]; vetor[posicaoFim] = temp; if (posicaoInicio < posicaoFim) { inverteVetor(vetor, ++posicaoInicio, --posicaoFim); } } int main(){ int vetor[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; inverteVetor(vetor, 0, 9); printf("Vetor invertido: \n"); for(int i = 0; i < 10; ++i){ printf("%d ", vetor[i]); } printf("\n"); return 0; }
  24. @giu_d, ficou show de bola a interface. Preciso estudar mais a parte de design . Desculpe mas não era bem isso a minha dúvida, a culpa é minha de não me expressar direito. Minha dúvida é como setar a largura mínima e máxima da coluna através do CSS. Eu modifiquei um pouco o projeto e adicionei alguns comentários nos pontos onde estou com essa dúvida. Projeto: ProblemaColuna.zip

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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!