Ir ao conteúdo

AdrianoSiqueira

Membro Pleno
  • Posts

    1.273
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Conecta ambos o HD e o SSD e põe para formatar. Na hora do particionamento, você zera os dois e manda instalar no SSD.
  2. O que é cli? O que é ator? Não temos como saber do que se trata, sem ter acesso ao código fonte.
  3. Se estruturar seu projeto assim, fica mais fácil: package model; public class Produto { public long codigo; public String descricao; public double valor; public Produto() { } public Produto(long codigo, String descricao, double valor) { this.codigo = codigo; this.descricao = descricao; this.valor = valor; } public long getCodigo() { return codigo; } public void setCodigo(long codigo) { this.codigo = codigo; } public String getDescricao() { return descricao; } public void setDescricao(String descricao) { this.descricao = descricao; } public double getValor() { return valor; } public void setValor(double valor) { this.valor = valor; } @Override public String toString() { return "Produto{" + "codigo=" + codigo + ", descricao='" + descricao + '\'' + ", valor=" + valor + '}'; } } package model; import java.util.HashMap; import java.util.Map; public class Estoque { public Map<Produto, Integer> estoque; public Estoque() { this.estoque = new HashMap<>(); } public void adicionar(Produto produto, int quantidade) { quantidade = Math.abs(quantidade); if (estoque.containsKey(produto)) { estoque.replace(produto, estoque.get(produto) + quantidade); } else { estoque.put(produto, quantidade); } } public boolean vender(Produto produto, int quantidade) { quantidade = Math.abs(quantidade); if (!estoque.containsKey(produto) || estoque.get(produto) < quantidade) { return false; } else { estoque.replace(produto, estoque.get(produto) - quantidade); return true; } } } package controller; import model.Estoque; import model.Produto; public class Principal { public static void main(String[] args) { final Estoque estoque = new Estoque(); Produto produto1 = new Produto(1, "Produto 1", 11); Produto produto2 = new Produto(2, "Produto 2", 22); Produto produto3 = new Produto(3, "Produto 3", 33); Produto produto4 = new Produto(4, "Produto 4", 44); Produto produto5 = new Produto(5, "Produto 5", 55); // Dá erro porque o produto não está no estoque ainda if (estoque.vender(produto1, 1)) { System.out.println("Vendido " + 1 + " unidade de '" + produto1.descricao + "'."); } else { System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente."); } // Abastece o estoque estoque.adicionar(produto1, 10); estoque.adicionar(produto2, 10); estoque.adicionar(produto3, 10); estoque.adicionar(produto4, 10); estoque.adicionar(produto5, 10); // Tem quantidade suficiente if (estoque.vender(produto1, 2)) { System.out.println("Vendido " + 2 + " unidade de '" + produto1.descricao + "'."); } else { System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente."); } // Dá erro porque o estoque é insuficiente if (estoque.vender(produto1, 10)) { System.out.println("Vendido " + 10 + " unidade de '" + produto1.descricao + "'."); } else { System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente."); } } } Eu testei seu código, mas não vi o erro descrito. Apenas um fluxo estranho, provavelmente por não estar completo ainda.
  4. Pode ser feito assim: package opcaoinvalida; import java.util.Scanner; public class ForcarOpcao { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int nivel; do { System.out.print("Digite o nível [ 1 | 2 | 3 ]: "); nivel = scanner.nextInt(); } while (nivel < 1 || nivel > 3); System.out.println("nivel = " + nivel); } } Ou assim: package opcaoinvalida; import java.util.Scanner; public class ForcarOpcao { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int nivel = 0; while (nivel < 1 || nivel > 3) { System.out.print("Digite o nível [ 1 | 2 | 3 ]: "); nivel = scanner.nextInt(); } System.out.println("nivel = " + nivel); } }
  5. Segue um exemplo de como fazer: package acharespaco; public class AcharEspaco { private static class Coordenada { public final int linha; public final int coluna; public Coordenada(int linha, int coluna) { this.linha = linha; this.coluna = coluna; } } public static void main(String[] args) { final char pt = '.'; char[][] matriz = new char[][]{ {pt, pt, pt}, {pt, pt, pt}, {pt, pt, pt} }; Coordenada coordenada; while ((coordenada = procurar(matriz, pt)) != null) { System.out.println("Encontrou [" + coordenada.linha + ", " + coordenada.coluna + "]"); } System.out.println("Acabaram os espaços livres."); } /** * Procura uma ocorrência de flag. * * @param matriz Onde deve ser procurado. * @param flag O que deve ser procurado. * * @return Instância de Coordenada contendo a posição de linha e coluna. Se não houver nenhuma ocorrência, é retornado null. */ private static Coordenada procurar(char[][] matriz, char flag) { Coordenada coordenada = null; boolean encontrou = false; for (int i = 0; i < matriz.length && !encontrou; i++) { for (int j = 0; j < matriz.length && !encontrou; j++) { if (matriz[i][j] == flag) { coordenada = new Coordenada(i, j); encontrou = true; matriz[i][j] = '-'; } } } return coordenada; } }
  6. Pode ser feito assim: package main; import java.util.Arrays; public class IncluirItem { public static void main(String[] args) { String[][] matriz = new String[2][2]; iniciar(matriz); System.out.println(inserir(matriz, "A") ? "Inseriu" : "Não coube"); System.out.println(inserir(matriz, "B") ? "Inseriu" : "Não coube"); System.out.println(inserir(matriz, "C") ? "Inseriu" : "Não coube"); System.out.println(inserir(matriz, "D") ? "Inseriu" : "Não coube"); System.out.println(inserir(matriz, "E") ? "Inseriu" : "Não coube"); System.out.println(remover(matriz, 0, 0) ? "Removeu" : "Não encontrou"); System.out.println(remover(matriz, 10, 10) ? "Removeu" : "Não encontrou"); System.out.println(inserir(matriz, "E") ? "Inseriu" : "Não coube"); } static private void iniciar(String[][] matriz) { for (String[] strings : matriz) { Arrays.fill(strings, ""); } } static private boolean inserir(String[][] matriz, String item) { boolean resultado = false; for (int i = 0; i < matriz.length && !resultado; i++) { for (int j = 0; j < matriz[i].length && !resultado; j++) { if (matriz[i][j] == null || matriz[i][j].equals("")) { matriz[i][j] = item; resultado = true; } } } return resultado; } static private boolean remover(String[][] matriz, int linha, int coluna) { if (linha > matriz.length || coluna > matriz[0].length) { return false; } matriz[linha][coluna] = ""; return true; } }
  7. Poderia colocar os dígitos dentro de um vetor e ordenar ele, assim você saberia onde encontrar o menor e o maior número. Algo assim: #include <stdio.h> #include <stdlib.h> int main() { const int quantidade = 3; // Quantidade de digitos int digitos[quantidade]; // Digitos separados int entrada = 0; // Entrada do usuario int maior = 0; // Maior digito (exercicio A) double divisao = 0.0; // Resultado da divisao (exercicio B) // Pega os dados do usuario printf("Digite um numero com tres algarismos (100 - 999): "); scanf(" %i%*c", &entrada); // Valida o valor inserido (exercicio C) if (entrada < 100 || entrada > 999) { fprintf(stderr, "[ E ]: Numero fora do intervalo. \n"); return EXIT_FAILURE; } // Separa os numeros em digitos digitos[0] = entrada / 100; digitos[1] = (entrada / 10) % 10; digitos[2] = entrada % 10; // Coloca os digitos em ordem DECRESCENTE for (int i = 0; i < quantidade - 1; ++i) { for (int j = quantidade - 1; j > i; --j) { if (digitos[i] < digitos[j]) { int temp = digitos[i]; digitos[i] = digitos[j]; digitos[j] = temp; } } } // Resolver exercicio A) maior = digitos[0]; // Resolver exercicio B) divisao = (digitos[2] != 0) ? (double) (digitos[0] + digitos[1]) / digitos[2] : 0.0; // Exibe tudo printf("-------------------------------- \n"); printf(" Maior: %i \n", maior); printf("Divisao: %.2f \n", divisao); printf("Digitos: ["); for (int i = 0; i < quantidade; ++i) { printf("%i", digitos[i]); if (i + 1 < quantidade) printf(", "); } printf("] \n"); printf("-------------------------------- \n"); return EXIT_SUCCESS; }
  8. Pode ser feito assim: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); char sexo = ' '; char repetir = ' '; int idade = 0; int idadem = 0; int idadef = 0; int midadef = 0; int midadem = 0; int dm = 0; int df = 0; double salario = 0.0; double salariom = 0.0; double salariof = 0.0; double msalariom = 0.0; double msalariof = 0.0; do { system("cls"); printf("Sexo (M/F): "); scanf(" %c%*c", &sexo); printf("Idade: "); scanf(" %d%*c", &idade); printf("Salário: "); scanf(" %f%*c", &salario); if (sexo == 'M' || sexo == 'm') { idadem = idadem + idade; salariom = salariom + salario; dm++; } else { idadef = idadef + idade; salariof = salariof + salario; df++; } printf("Informar dados de outra pessoa? (S / N): "); scanf(" %c%*c", &repetir); } while (repetir == 'S' || repetir == 's'); if (df != 0) { midadef = idadef / df; } else { midadef = 0; } printf("Média de idade das mulheres: %i \n", midadef); if (dm != 0) { midadem = idadem / dm; } else { midadem = 0; } printf("Média de idade dos homens: %i \n", midadem); if (df != 0) { msalariof = salariof / df; } else { msalariof = 0.0F; } printf("Média do salário das mulheres: %.2f \n", msalariof); if (dm != 0) { msalariom = salariom / dm; } else { msalariom = 0.0F; } printf("Média do salário dos homens: %.2f \n", msalariom); return 0; } adicionado 16 minutos depois Poderia ser feito assim também: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <math.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); char sexo = ' '; char repetir = ' '; int idade = 0; int mediaIdadeFeminino = 0; int mediaIdadeMasculino = 0; int totalFeminino = 0; int totalMasculino = 0; double salario = 0.0; double mediaSalarioFeminino = 0.0; double mediaSalarioMasculino = 0.0; do { // Fica pedindo sexo enquanto a letra for invalida do { system("cls"); printf("Sexo (F / M): "); scanf(" %c%*c", &sexo); sexo = _toupper(sexo); // Deixa a letra em maiuscula } while (sexo != 'F' && sexo != 'M'); printf("Idade: "); scanf(" %d%*c", &idade); idade = abs(idade); // Impede valor negativo printf("Salário: "); scanf(" %f%*c", &salario); salario = fabs(salario); // Impede valor negativo // Atribui os dados de acordo com o sexo if (sexo == 'F') { mediaIdadeFeminino += idade; mediaSalarioFeminino += salario; totalFeminino += 1; } else if (sexo == 'M') { mediaIdadeMasculino += idade; mediaSalarioMasculino += salario; totalMasculino += 1; } else { // Isso nunca deveria ser exibido printf("[ E ]: Erro inesperado. Verifique o do-while do sexo. \n"); exit(EXIT_FAILURE); // Encerra o programa com codigo de erro } // Fica pedindo confirmacao enquanto a letra for invalida do { printf("Informar dados de outra pessoa? (S / N): "); scanf(" %c%*c", &repetir); repetir = _toupper(repetir); // Deixa a letra em maiuscula } while (repetir != 'S' && repetir != 'N'); } while (repetir == 'S' || repetir == 's'); // So calcula as medias se houverem pessoas do sexo em questao if (totalFeminino != 0) { mediaIdadeFeminino /= totalFeminino; mediaSalarioFeminino /= totalFeminino; } // So calcula as medias se houverem pessoas do sexo em questao if (totalMasculino != 0) { mediaIdadeMasculino /= totalMasculino; mediaSalarioMasculino /= totalMasculino; } // Exibe tudo printf("Média de idade das mulheres: %i \n", mediaIdadeFeminino); printf(" Média de idade dos homens: %i \n", mediaIdadeMasculino); printf("Média do salário das mulheres: R$ %.2f \n", mediaSalarioFeminino); printf(" Média do salário dos homens: R$ %.2f \n", mediaSalarioMasculino); return EXIT_SUCCESS; }
  9. Consegui resolver assim: #include <iostream> #include <vector> using namespace std; void imprimirVetor(vector<string> lista); bool temIngrediente(const vector<string> &ingredientes, const string &ingrediente); int main() { vector<string> lista1 = {"A", "B", "C", "D", "E"}; vector<string> lista2 = {"E", "F", "G", "H", "I"}; vector<string> unicos; for (auto &item : lista1) { if (!temIngrediente(lista2, item)) { unicos.push_back(item); } } cout << "Lista 1: "; imprimirVetor(lista1); cout << "Lista 2: "; imprimirVetor(lista2); cout << " Unicos: "; imprimirVetor(unicos); return EXIT_SUCCESS; } void imprimirVetor(vector<string> lista) { cout << "["; for (int i = 0; i < lista.size(); ++i) { cout << lista[i]; if (i + 1 < lista.size()) { cout << ", "; } } cout << "] \n"; } bool temIngrediente(const vector<string> &ingredientes, const string &ingrediente) { for (auto &item : ingredientes) { if (item == ingrediente) { return true; } } return false; }
  10. Desse jeito funciona, mas só se os três valores forem diferentes entre si: #include <stdio.h> #include <stdlib.h> #include <limits.h> void troca(int *x, int *y, int *z); int main() { int x = 9; int y = 0; int z = 8; printf("X = %i \t\t Y = %i \t\t Z = %i \n", x, y, z); troca(&x, &y, &z); printf("X = %i \t\t Y = %i \t\t Z = %i \n", x, y, z); return EXIT_SUCCESS; } void troca(int *x, int *y, int *z) { int maior = INT_MIN; int menor = INT_MAX; int meio = INT_MAX; if (*x > maior) maior = *x; if (*y > maior) maior = *y; if (*z > maior) maior = *z; if (*x < menor) menor = *x; if (*y < menor) menor = *y; if (*z < menor) menor = *z; if (*x != maior && *x != menor) meio = *x; else if (*y != maior && *y != menor) meio = *y; else meio = *z; *x = menor; *y = meio; *z = maior; }
  11. O enunciado diz para criar o vetorB e colocar os dados do vetorA em ordem inversa. Você disse que o código estava praticamente pronto, mas falta essa parte (importante, diga-se de passagem).
  12. Dê uma olhada: Stack Overflow.
  13. public void checar() { CheckBox checkBox = new CheckBox("Aceito vender a alma para o diabo."); if (checkBox.isSelected()) { System.out.println("Diabo: HAHAHAHAHAHAHAHAHA Você é meu!!!"); } else { System.out.println("Diabo: Não queria mesmo..."); } }
  14. Isso envolve trabalhar com mais de um arquivo de código fonte. Você vai precisar criar dois arquivos extras com o mesmo nome, porém um tem que ter a extensão .h e outro .c. O arquivo .h deve conter os protótipos das funções necessárias e no .c fica a implementação dessas funções. O arquivo .c deve incluir o arquivo .h para poder fazer a implementação. Aí lá no arquivo .c principal do seu projeto, você inclui o arquivo .h que contém os protótipos. adicionado 0 minutos depois Se não conseguir, posto um exemplo prático.
  15. @jobsfotogrid Isso é estranho, como eu disse AnchorPane descende de Pane, então deveria ter funcionado. Teria como você fazer esse teste de novo? Caso ocorra um erro de compilação, poste aqui.
  16. Esses dias estou com a cabeça ruim... Ainda não entendi o que tem que ser feito. Se for algum tipo de tarefa, teria como postar o enunciado?
  17. @Larissa Firmino Acho que isso deve resolver: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct livro { int edicao; char titulo[255]; char autor[255]; char editora[255]; } Livro; typedef struct no { Livro *livro; struct no *proximo; } No; typedef struct lista { int tamanho; No *primeiro; } Lista; int adicionar(Lista *lista, Livro *livro); Livro *cadastrar(); Livro *consultarPorAutor(Lista *lista, char *autor); Livro *consultarPorEditora(Lista *lista, char *editora); Livro *consultarPorTitulo(Lista *lista, char *titulo); Lista *criarLista(); char *getString(char *mensagem); void imprimirLivro(Livro *livro); void listar(Lista *lista); int menu(); int main() { Lista *lista = criarLista(); Livro *livro = NULL; int opcao = 0; char *entrada = (char *) malloc(255 * sizeof(char)); do { opcao = menu(); livro = NULL; strcpy(entrada, ""); switch (opcao) { case 1: // Cadastrar livro = cadastrar(); adicionar(lista, livro); break; case 2: // Listar listar(lista); getchar(); break; case 3: // Consultar titulo entrada = getString("Digite o titulo: "); livro = consultarPorTitulo(lista, entrada); imprimirLivro(livro); getchar(); break; case 4: // Consultar autor entrada = getString("Digite o autor: "); livro = consultarPorAutor(lista, entrada); imprimirLivro(livro); getchar(); break; case 5: // Consultar editora entrada = getString("Digite a editora: "); livro = consultarPorEditora(lista, entrada); imprimirLivro(livro); getchar(); break; case 0: // Sair default: // Opcao invalida continue; } } while (opcao != 0); return EXIT_SUCCESS; } int adicionar(Lista *lista, Livro *livro) { if (lista == NULL || livro == NULL) { return -1; } No *novo = (No *) malloc(sizeof(No)); novo->livro = livro; novo->proximo = NULL; if (lista->tamanho == 0) { lista->primeiro = novo; } else { No *no = lista->primeiro; while (no->proximo != NULL) { no = no->proximo; } no->proximo = novo; } lista->tamanho += 1; return lista->tamanho; } Livro *cadastrar() { Livro *livro = (Livro *) malloc(sizeof(Livro)); strcpy(livro->titulo, getString("Digite o titulo: ")); strcpy(livro->autor, getString("Digite o autor: ")); strcpy(livro->editora, getString("Digite a editora: ")); livro->edicao = (int) strtol(getString("Digite a edicao: "), NULL, 10); return livro; } Livro *consultarPorAutor(Lista *lista, char *autor) { if (lista == NULL || autor == NULL || lista->tamanho == 0) { return NULL; } No *no = lista->primeiro; while (no != NULL) { if (strcasecmp(no->livro->autor, autor) == 0) { return no->livro; } no = no->proximo; } return NULL; } Livro *consultarPorEditora(Lista *lista, char *editora) { if (lista == NULL || editora == NULL || lista->tamanho == 0) { return NULL; } No *no = lista->primeiro; while (no != NULL) { if (strcasecmp(no->livro->editora, editora) == 0) { return no->livro; } no = no->proximo; } return NULL; } Livro *consultarPorTitulo(Lista *lista, char *titulo) { if (lista == NULL || titulo == NULL || lista->tamanho == 0) { return NULL; } No *no = lista->primeiro; while (no != NULL) { if (strcasecmp(no->livro->titulo, titulo) == 0) { return no->livro; } no = no->proximo; } return NULL; } Lista *criarLista() { Lista *lista = (Lista *) malloc(sizeof(Lista)); lista->tamanho = 0; lista->primeiro = NULL; return lista; } char *getString(char *mensagem) { char *string = (char *) malloc(255 * sizeof(char)); printf("%s", mensagem); fgets(string, 255, stdin); string[strcspn(string, "\n")] = '\0'; return string; } void imprimirLivro(Livro *livro) { if (livro == NULL) { return; } printf("----------------------------------- \n"); printf(" Titulo: %s \n", livro->titulo); printf(" Autor: %s \n", livro->autor); printf("Editora: %s \n", livro->editora); printf(" Edicao: %i \n", livro->edicao); printf("----------------------------------- \n"); } void listar(Lista *lista) { if (lista == NULL || lista->tamanho == 0) { return; } No *no = lista->primeiro; while (no != NULL) { imprimirLivro(no->livro); no = no->proximo; } } int menu() { int opcao = 0; printf(">> Menu \n" "[ 1 ] - Cadastrar \n" "[ 2 ] - Listar \n" "[ 3 ] - Consultar por titulo \n" "[ 4 ] - Consultar por autor \n" "[ 5 ] - Consultar por editora \n" "[ 0 ] - Sair \n"); opcao = (int) strtol(getString("> "), NULL, 10); return opcao; }
  18. Deveria funcionar, pois AnchorPane extende Pane, logo AnchorPane é um Pane. Como assim o código não rodou? O que aconteceu? Algum erro de compilação? adicionado 7 minutos depois Dê uma olhada: AnchorPane anchorPane = new AnchorPane(); anchorPane.getChildren().forEach(node -> { if (node instanceof TextField){ ((TextField)node).clear(); } }); Isso compila sem problema nenhum.
  19. Não entendi o que você quer. Seria isso: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char string[100]; int lookUpTable[255]; // Inicia a tabela for (int i = 0; i < 255; ++i) { lookUpTable[i] = 0; } // Pega a string do usuario printf("Digite uma palavra: "); scanf(" %[^\n]", string); // Realiza a contagem de letras for (int i = 0; i < strlen(string); ++i) { lookUpTable[string[i]] += 1; } // Exibe tudo for (int i = 'a'; i <= 'z'; ++i) { printf("%c - %2i \t %c - %2i \n", i, lookUpTable[i], _toupper(i), lookUpTable[_toupper(i)]); } return EXIT_SUCCESS; }
  20. É um projeto um tanto complexo. Antes de pensar no programa, pense nos dados. Quais as entidades que você precisa, como será o relacionamento entre essas entidades, etc. Procure também sobre persistência (banco de dados), pois não adianta nada ter um sistema perfeito e na hora que fecha perde tudo...
  21. Crie uma mídia bootável com sistema Linux, dê boot nessa mídia e veja se seus arquivos ainda estão no HD.
  22. Na questão do triângulo, pegue um número do usuário e rode um for dentro de outro for, imprimindo os caracteres. Use uma variável qualquer para servir de switch, e escolha o carácter baseado no valor dessa variável. Lembre-se, são apenas duas letras possíveis, logo a variável só pode alternar entre dois valores (0 e 1, por exemplo). Na questão do Fibonacci, você implementa o algoritmo do Fibonacci, mas antes de iniciar os cálculos, pede dois números para o usuário, aí inicia os cálculos com esses valores.
  23. Poste seu código para nós podermos analisar. adicionado 0 minutos depois Em resumo, use variáveis do tipo double.
  24. Para criar uma lista dinâmica, você precisa de uma struct para ser a lista e outra para ser o nó. typedef struct no { // Aqui vem o item struct no *proximo; // Isso aponta para o proximo elemento da lista } No; typedef struct lista { No *primeiro; // Isso aponta para o primeiro elemento da lista } Lista;
  25. Pelo que eu sei, Swing não é compatível com JavaFX, pois elas trabalham de forma diferente. Se você está "se baseando" em um código Swing, você vai precisar "traduzir" ele para trabalhar em JavaFX. Tente executar esse código e veja se atende às necessidades: package apagar; import javafx.scene.control.TextField; import javafx.scene.layout.Pane; public class Utilitarios { public void limparTela(Pane pane) { pane.getChildren().forEach(node -> { if (node instanceof TextField) { ((TextField) node).clear(); } }); } }

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!