Ir ao conteúdo

AdrianoSiqueira

Membro Pleno
  • Posts

    1.273
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Cara, tá muito estranho, posta o código da classe toda, tem coisa errada em algum lugar.
  2. Crie uma classe específica para isso, com o vetor estático, dessa forma os dados do vetor irão se manter entre as instâncias. Inclusive acho que esse é jeito mais fácil.
  3. O que tem nas linhas 5, 133 e 236?
  4. QuantMot existe apenas dentro do construtor, o seu vetor se chama motoristas, logo deve usar esse nome. Caso não queira, altere o nome do vetor. Pode remover essa linha de dentro do construtor, pois é inútil.
  5. Na verdade eu não criei nenhum tipo de controle para inserção, nesse caso, seria apenas criar uma variável do tipo int e iniciar com 0 e ir incrementando conforma adiciona mais motoristas. Você também poderia varrer o vetor até encontrar um objeto null, isso significaria que aquela posição está vazia, aí é só adicionar nessa posição, dessa forma não precisaria de uma variável de controle, mas essa maneira consome mais processamento da máquina. Na real, a melhor maneira seria ao invés de usar vetores, usar listas. Procure a respeito da interface List e da classe ArrayList. Quando aprender usar isso, vai te poupar muita dor de cabeça.
  6. Espera um pouco, vou postar um exemplo. package exemplo; import java.util.Objects; public class Motorista { private String nome; private String cpf; private String chn; private String usuario; private String senha; private int pontos; public Motorista() { } public Motorista(String nome, String cpf, String chn, String usuario, String senha, int pontos) { this.nome = nome; this.cpf = cpf; this.chn = chn; this.usuario = usuario; this.senha = senha; this.pontos = pontos; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getCpf() { return cpf; } public void setCpf(String cpf) { this.cpf = cpf; } public String getChn() { return chn; } public void setChn(String chn) { this.chn = chn; } public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } public int getPontos() { return pontos; } public void setPontos(int pontos) { this.pontos = pontos; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Motorista motorista = (Motorista) o; return Objects.equals(nome, motorista.nome) && Objects.equals(cpf, motorista.cpf) && Objects.equals(chn, motorista.chn) && Objects.equals(usuario, motorista.usuario) && Objects.equals(senha, motorista.senha) && pontos == motorista.pontos; } @Override public int hashCode() { int result = nome != null ? nome.hashCode() : 0; result = 31 * result + (cpf != null ? cpf.hashCode() : 0); result = 31 * result + (chn != null ? chn.hashCode() : 0); result = 31 * result + (usuario != null ? usuario.hashCode() : 0); result = 31 * result + (senha != null ? senha.hashCode() : 0); result = 31 * result + pontos; return result; } @Override public String toString() { return "Motorista{" + "nome='" + nome + '\'' + ", cpf='" + cpf + '\'' + ", chn='" + chn + '\'' + ", usuario='" + usuario + '\'' + ", senha='" + senha + '\'' + ", pontos=" + pontos + '}'; } } package exemplo; import javax.swing.*; public class Interface extends JFrame { private Motorista[] motoristas; public Interface(Motorista[] motoristas) { this.motoristas = motoristas; } // Restante do código da interface gráfica } package exemplo; public class Principal { public static void main(String[] args) { Motorista[] motoristas = new Motorista[100]; Interface cadastro = new Interface(motoristas); cadastro.setVisible(true); } }
  7. Tem várias formas de fazer isso. Se você quiser passar o vetor para o JFrame, faça isso através do construtor. Mas eu acho melhor deixar esse vetor em uma classe separada, assim fica mais fácil acessar de outros lugares conforme a necessidade.
  8. Parece que o vetor QuantMot não existe. E parece que tem um problema com o método LerDados da classe LerDadosMotorista. Enfim, você não disse o que aparece na mensagem de erro e sem o código completo não tem como adivinhar.
  9. Comece criado uma estrutura para representar um resistor: typedef struct { int codigo; int valor; } Resistor; Depois crie um vetor com todos os resistores que você possa usar: Resistor resistores[20]; Inicialize cada um com seus respectivos códigos e valores. Depois interaja com o usuário para pegar as informações. Conforme o usuário vai escolhendo o resistor, você vai acumulando o valor dele, depois é só mostrar. Tenta fazer e poste o código, para nós ajudarmos onde for possível, pois não podemos dar a resposta pronta.
  10. Comece criando a função de ordenação, pode ser feito assim: char *ordenar(char *palavra); Implemente o algoritmo do BubbleSort dentro dessa função. Partindo do princípio que em C, as strings são na verdade um array de char, então no método main você precisa de um array de char. Atribua à esse array o valor de retorno da função ordenar e depois é só imprimir. Tenta fazer e vai postando aqui para a gente ir acompanhando e ajudando onde for possível.
  11. Usa um laço de repetição, os melhores para essa finalidade são o while e o do-while, ou pode fazer do jeito hardcore e implementar uma chamada recursiva.
  12. Você não pode converter uma String vazia para double. Precisa colocar um teste condicional para saber se a String possui valor antes de tentar converter. double é um tipo primitivo de dado que trabalha com valores numéricos com precisão decimal. Double é um tipo wrapper usado para encapsular o tipo double quando você precisa trabalhar com tipos primitivos, porém a API exige um objeto. Todos os tipos primitivos possuem uma correspondente wrapper, geralmente é o próprio nome, mas escrito com letra maiúscula (pois se trata de uma classe). Serve para converter double em Double. Se você quer converter String em double, use: Double.parseDouble(); E passe a String dentro do parênteses. Lembrando que se a String não for um valor numérico válido, esse método lançará a exceção NumberFormatException. Para saber mais sobre as classes wrapper: Curso Java Completo - Aula 78: Classes Wrapper pt 01 Curso Java Completo - Aula 79: Classes Wrapper pt 02
  13. Crie uma função para cada operação que deseja fazer. Crie uma função menu para retornar a opção do usuário, depois passe essa opção por um switch para definir qual função executará a tarefa.
  14. Uma solução alternativa poderia ser assim: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> #define QUANTIDADE 3 int contem(int *vetor, int valor); void imprimir(char *mensagem, int *vetor); int sortear(); int main() { setlocale(LC_ALL, "Portuguese"); srandom(time(NULL)); int jogos[QUANTIDADE] = {0, 0, 0}; int sorteios[QUANTIDADE] = {0, 0, 0}; int entrada = 0; int acertos = 0; for (int i = 0; i < QUANTIDADE; ++i) { // Garante que a entrada seja válida e não repetida do { printf("Digite um número entre 1 e 30 [ %i de %i ]: ", (i + 1), QUANTIDADE); scanf(" %i%*c", &entrada); } while (entrada < 1 || entrada > 30 || contem(jogos, entrada) == 1); jogos[i] = entrada; // Garante que não seja sorteado valores repetidos do { entrada = sortear(); } while (contem(sorteios, entrada) == 1); sorteios[i] = entrada; } // Compara todos os valores for (int i = 0; i < QUANTIDADE; ++i) { for (int j = 0; j < QUANTIDADE; ++j) { if (jogos[i] == sorteios[j]) { acertos += 1; } } } imprimir(" Jogos", jogos); imprimir("Sorteios", sorteios); switch (acertos) { case 0: printf("[ I ]: Você não acertou nenhum número. \n"); break; case 1: case 2: printf("[ I ]: Parabéns, você acertou %i números e ganhou um prêmio de consolação! \n", acertos); break; case 3: printf("[ I ]: Parabéns, você acertou 3 números e ganhou o super prêmio!!!"); break; default: fprintf(stderr, "[ E ]: Revise a lógica de contagem de acertos. \n"); exit(EXIT_FAILURE); } return EXIT_SUCCESS; } /** * Verifica se o valor existe no vetor. * * @param vetor Onde deve procurar. * @param valor O que deve procurar. * * @return 0 se não contém. 1 se contém. */ int contem(int *vetor, int valor) { for (int i = 0; i < QUANTIDADE; ++i) { if (vetor[i] == valor) { return 1; } } return 0; } /** * Imprime o vetor com a mensagem. * * @param mensagem Mensagem para identificar o vetor. * @param vetor Vetor que será impresso. */ void imprimir(char *mensagem, int *vetor) { printf("%s: [", mensagem); for (int i = 0; i < QUANTIDADE; ++i) { printf("%2i", vetor[i]); if (i + 1 < QUANTIDADE) { printf(", "); } } printf("] \n"); } /** * Gera um número aleatório entre 1 (inclusivo) e 30 (inclusivo). * * @return Valor inteiro entre 1 e 30. */ int sortear() { return (int) random() % 30 + 1; } loteria.txt
  15. Acredito que esse trecho seja problemático também, pois você está pedindo o resto da divisão de alguma coisa por 0, porém não existe divisão por zero. No meu entendimento, esse trecho nem era para compilar. Para sortear valores binário (0 ou 1), faça assim: num = rand() % 2; Ou seja, dois valores possíveis sequenciais começando de 0 (0 e 1). Além disso, você não precisa trabalhar com as letras D e E, pois elas são apenas simbólicas, como só existe duas possibilidades para virar o carro (direita e esquerda), você poderia trabalhar com valores binários (0 e 1) diretamente, por exemplo, 0 representa DIREITA e 1 representa ESQUERDA.
  16. Uma variante poderia ser feita assim: tentativas = 3 aprovado = False while not aprovado and tentativas > 0: senha = input("Digite a senha: ") confirmacao = input("Confirme a senha: ") if senha == confirmacao: aprovado = True else: tentativas -= 1 if tentativas > 0: print("Bem vindo") else: print("Acesso negado")
  17. Basicamente comodidade, se você usar apenas struct para criar uma estrutura, toda vez que quiser usar essa estrutura, terá que usar a palavra struct. Já declarando a estrutura com o typedef, você pode usar a estrutura diretamente. Exemplo com código: #include <stdio.h> #include <stdlib.h> struct Estrutura1 { int elemento; }; typedef struct { int elemento; } Estrutura2; int main() { // Sem typedef precisa de struct struct Estrutura1 e1; // Com typedef nao precisa Estrutura2 e2; return EXIT_SUCCESS; }
  18. Adicione o incremento dentro da função de ação de cada botão, onde cada botão incrementa uma quantidade de unidade.
  19. Faz muito tempo que não uso NetBeans, mas o que eu me lembro, é que ele não instala se você não tiver o JDK já instalado, ou seja, primeiro tinha que instalar o JDK e depois o NetBeans.
  20. Eu já tenho uma dúvida diferente: como saber qual conector da placa-mãe é positivo ou negativo? No conector do fio vem escrito, mas e na placa-mãe? Ou simplesmente não faz diferença?
  21. Coloque as condições em um if aninhado.
  22. Está atribuindo numero2 para maior e menor.
  23. É simples, é porque não é 10.
  24. Poste o código como está agora para ver onde está o erro. O trecho que eu postei funciona corretamente, deve ter sido algum erro de implementação.
  25. Não tem código suficiente para compilar, logo não tenho como depurar para saber exatamente onde está o problema. Meu palpite é que a função getFormData() está retornando null. Você passa esse objeto null para a função saveOrUpdate(), que passa para a função update(), que tenta acessar algum atributo e é aí que a bomba estoura. Coloque um if antes de chamar a função saveOrUpdate() testando se entity é null.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!