
AdrianoSiqueira
Membro Pleno-
Posts
1.273 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que AdrianoSiqueira postou
-
Java Compilador JavaC não encontrado , Kali Linux.
AdrianoSiqueira respondeu ao tópico de Yuno_. em Java/Android SDK
Parece que o Kali Linux não tem nenhum JDK nos repostórios, por isso você não consegue chamar o Javac. Se você realmente quiser usar o Kali, vai ter que instalar o JDK da Oracle. -
Java Compilador JavaC não encontrado , Kali Linux.
AdrianoSiqueira respondeu ao tópico de Yuno_. em Java/Android SDK
Falei errado, desculpa. Não era ENTER, era TAB... -
Java Compilador JavaC não encontrado , Kali Linux.
AdrianoSiqueira respondeu ao tópico de Yuno_. em Java/Android SDK
Digita esse comando no terminal, e aperte ENTER algumas vezes, depois poste a saída: sudo apt install openjdk -
Java Compilador JavaC não encontrado , Kali Linux.
AdrianoSiqueira respondeu ao tópico de Yuno_. em Java/Android SDK
Tenta executar os seguintes comandos: sudo apt update sudo apt install openjdk-11-jdk sudo apt install openjdk-11-jre Quando terminar rode esses comandos: java --version javac --version -
Java Compilador JavaC não encontrado , Kali Linux.
AdrianoSiqueira respondeu ao tópico de Yuno_. em Java/Android SDK
Você está usando o Java do repositório, ou o da Oracle? -
Java Como criar um programa que abre ebooks para ler?
AdrianoSiqueira respondeu ao tópico de Eduardo de Quadros em Java/Android SDK
Dê uma olhada nessa biblioteca: http://www.siegmann.nl/epublib -
Eu renomeei as suas structs. O "_t" no final do nome é uma convenção de código que indica que se trata de um tipo de dado produzido por você mesmo.
-
Organizando seu código, poderia ficar mais ou menos assim: #include <iostream> // Adapta alguns comandos de acordo com o sistema operacional #if defined(_WIN32) #define limparTela system("cls") #define esperar system("pause") #elif defined(__linux__) #define limparTela system("clear") #define esperar system("read foo") #endif using namespace std; typedef struct { string cidade; string bairro; string escola; string sala; string professor; string materia; int cargaHoraria; bool ativo; } Registro_t; typedef struct { string nome; string periodo; string cidade; string bairro; int serie; } Aluno_t; int menu(); int inserir(Registro_t registros[], int quantidade, int posicao); void listar(Registro_t registros[], int quantidade); void buscar(Registro_t registros[], int quantidade); void excluir(Registro_t registros[], int quantidade); int main() { const int MAXIMO = 100; // Tamanho máximo do vetor int opcao = 0; // Opção do menu int posicaoInsercao = 0; // Posição onde deve ser inserido o novo registro Registro_t registros[MAXIMO]; // Vetor de dados do { opcao = menu(); switch (opcao) { case 0: break; case 1: posicaoInsercao = inserir(registros, MAXIMO, posicaoInsercao); break; case 2: buscar(registros, MAXIMO); break; case 3: listar(registros, posicaoInsercao); break; case 4: excluir(registros, MAXIMO); break; default: cerr << "[ E ]: Verificar a função de menu, ela retornou algo que não devia. \n"; esperar; break; } } while (opcao != 0); return EXIT_SUCCESS; } /** * Menu principal. * * @return Opção devidamente validada. */ int menu() { int opcao = 0; do { limparTela; cout << "MENU" << "\n" << "[ 1 ] - CADASTRAR" << "\n" << "[ 2 ] - BUSCAR" << "\n" << "[ 3 ] - LISTAR" << "\n" << "[ 4 ] - EXCLUIR" << "\n" << "[ 0 ] - SAIR" << "\n" << "> "; cin >> opcao; } while (opcao < 0 || opcao > 4); return opcao; } /** * Adiciona um novo registro no vetor. * * @param registros Vetor de dados. * @param quantidade Tamanho do vetor. * @param posicao Posição onde deve ser inserido. * * @return Posição da próxima inserção. */ int inserir(Registro_t registros[], int quantidade, int posicao) { if (posicao >= quantidade) { cerr << "[ E ]: Não tem espaço no vetor para mais inserções. \n"; return posicao; } Registro_t registro; cin.ignore(); limparTela; cout << "INSERIR \n"; cout << "Cidade: "; getline(cin, registro.cidade); cout << "Bairro: "; getline(cin, registro.bairro); cout << "Escola: "; getline(cin, registro.escola); cout << "Sala: "; getline(cin, registro.sala); cout << "Professor: "; getline(cin, registro.professor); cout << "Materia: "; getline(cin, registro.materia); cout << "Carga Horaria: "; cin >> registro.cargaHoraria; registro.ativo = true; registros[posicao] = registro; posicao += 1; cout << "[ I ]: Registro adicionado. \n"; esperar; return posicao; } /** * Lista todos os registros. * * @param registros Vetor de dados. * @param quantidade Quantidade de elementos adicionados. */ void listar(Registro_t registros[], int quantidade) { limparTela; cout << "LISTAR \n" << "=-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= \n"; if (quantidade > 0) { for (int i = 0; i < quantidade; ++i) { cout << "---------- \n"; cout << " Cidade: " << registros[i].cidade << "\n"; cout << " Bairro: " << registros[i].bairro << "\n"; cout << " Escola: " << registros[i].escola << "\n"; cout << " Sala: " << registros[i].sala << "\n"; cout << " Professor: " << registros[i].professor << "\n"; cout << " Matéria: " << registros[i].materia << "\n"; cout << "Carga Horária: " << registros[i].cargaHoraria << "\n"; cout << " Ativo: " << registros[i].ativo << "\n"; cout << "---------- \n"; } } else { cout << "[ I ]: Nenhum registro adicionado. \n"; } cout << "=-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= \n"; esperar; } /** * Realiza a busca serguindo algum critério. * * @param registros Vetor de dados. * @param quantidade Tamanho do vetor. */ void buscar(Registro_t registros[], int quantidade) {} /** * Exclui o registro do vetor. * * @param registros Vetor de dados. * @param quantidade Tamanho do vetor. */ void excluir(Registro_t registros[], int quantidade) {} Falta terminar algumas funções, mas a partir daí já é por sua conta.
-
Java Ao executar aplicativos .jar trava o computador
AdrianoSiqueira respondeu ao tópico de Gabryele em Java/Android SDK
Tente executar pelo cmd: java -jar <programa>.jar Se mesmo assim não funcionar, reinstale o Java. -
Sistema para laptop educacional - Classmate CM52C
AdrianoSiqueira respondeu ao tópico de Walisson.32 em Linux
Dê uma olhada nesses sistemas aqui: TinyCore SliTaz Puppy Linux -
C# Trabalhar no mesmo projeto em mais de um PC com MySql
AdrianoSiqueira respondeu ao tópico de DavidsonGomes1998 em C/C#/C++
Até onde eu sei, é necessário ter uma cópia do banco de dados em ambas as máquinas. Já o código fonte pode ser sincronizado com o Github. Para o problema do banco, você poderia fazer um backup dele na sua casa. Na sua empresa, só precisaria "restaurar" esse backup. Lembrando que o MySQL deve estar instalado na máquina da sua empresa também. -
C++ Erro inesperado envolvendo a declaração das variáveis
AdrianoSiqueira respondeu ao tópico de Noemia Silva em C/C#/C++
Uma dica para variáveis char nome[255] = ""; // Entrada de dados char nomeMulher[255] = ""; // Nome da mulher mais velha int idade = 0; // Entrada de dados int idadeMulher = INT_MIN; // Idade da mulher mais velha int quantidadeHomens = 0; // Quantidade de homens double mediaIdade = 0.0; // Média da idade dos homens char sexo = ' '; // Entrada de dados A lógica do seu código fica por sua conta. -
C O codigo só converte numeros e não letras (morse)
AdrianoSiqueira respondeu ao tópico de Luis Vilo em C/C#/C++
Dê uma olhada nesses arquivos: MorseDictionary.java MorseStringDictionary.java StringMorseDictionary.java Está em java, mas o que importa é o conceito: criar um dicionário com todas as letras e números com seus respectivos códigos morse. Depois é só ir procurando nesse dicionário cada uma das letras do arquivo. -
C++ Somando media atual com media anterior
AdrianoSiqueira respondeu ao tópico de Hotaru em C/C#/C++
De acordo com as informações do tópico, o código está em C++, nesse caso poderia ser feito assim: #include <iostream> #include <climits> using std::string; using std::cout; using std::cin; using std::getline; typedef struct { string nome; char sexo; double nota1; double nota2; double nota3; double media; } Aluno_t; void cadastrar(Aluno_t *alunos, int quantidade); double calcularMediaMulheres(Aluno_t *alunos, int quantidade); double calcularPorcentagemMulheres(Aluno_t *alunos, int quantidade, double notaCorte); void getMulherMenorMedia(Aluno_t *alunos, int quantidade, Aluno_t *mulherMenorMedia); int main() { const int quantidade = 5; const double notaCorte = 7.0; Aluno_t alunos[quantidade]; Aluno_t mulherMenorMedia; double mediaMulheres = 0.0; double percentualMulheres = 0.0; cadastrar(alunos, quantidade); mediaMulheres = calcularMediaMulheres(alunos, quantidade); percentualMulheres = calcularPorcentagemMulheres(alunos, quantidade, notaCorte); getMulherMenorMedia(alunos, quantidade, &mulherMenorMedia); cout << "-------------------------------------------- \n" << " Média das mulheres: " << mediaMulheres << "\n" << " Nome mulher menor média: " << mulherMenorMedia.nome << "\n" << "Percentual de mulheres aprovadas: " << percentualMulheres << "\n" << "-------------------------------------------- \n"; return 0; } void cadastrar(Aluno_t *alunos, int quantidade) { cout << ">> Cadastro \n"; for (int i = 0; i < quantidade; ++i) { cout << "---------------------------- \n"; cout << "Nome: "; getline(cin, alunos[i].nome); cout << "Sexo: "; cin >> alunos[i].sexo; cin.ignore(); cout << "Nota 1: "; cin >> alunos[i].nota1; cin.ignore(); cout << "Nota 2: "; cin >> alunos[i].nota2; cin.ignore(); cout << "Nota 3: "; cin >> alunos[i].nota3; cin.ignore(); alunos[i].media = (alunos[i].nota1 + alunos[i].nota2 + alunos[i].nota3) / 3; cout << "---------------------------- \n"; } } double calcularMediaMulheres(Aluno_t *alunos, int quantidade) { double media = 0.0; int qtd = 0; for (int i = 0; i < quantidade; ++i) { if (alunos[i].sexo != 'f' && alunos[i].sexo != 'F') { continue; } media += alunos[i].media; qtd += 1; } media /= qtd; return media; } double calcularPorcentagemMulheres(Aluno_t *alunos, int quantidade, double notaCorte) { double porcentagem = 0.0; int total = 0; int aprovadas = 0; for (int i = 0; i < quantidade; ++i) { if (alunos[i].sexo != 'f' && alunos[i].sexo != 'F') { continue; } if (alunos[i].media >= notaCorte) { aprovadas += 1; } total += 1; } porcentagem = aprovadas * 100.0 / total; return porcentagem; } void getMulherMenorMedia(Aluno_t *alunos, int quantidade, Aluno_t *mulherMenorMedia) { mulherMenorMedia->media = INT_MAX; for (int i = 0; i < quantidade; ++i) { if (alunos[i].sexo != 'f' && alunos[i].sexo != 'F') { continue; } if (alunos[i].media < mulherMenorMedia->media) { mulherMenorMedia->nome = alunos[i].nome; mulherMenorMedia->sexo = alunos[i].sexo; mulherMenorMedia->nota1 = alunos[i].nota1; mulherMenorMedia->nota2 = alunos[i].nota2; mulherMenorMedia->nota3 = alunos[i].nota3; mulherMenorMedia->media = alunos[i].media; } } } -
Java Limpar o Buffer de teclado na ling JAVA
AdrianoSiqueira respondeu ao tópico de Fábio Henrique Borecki em Java/Android SDK
@Fábio Henrique Borecki Isso acontece após ler um valor não alfanumérico (números, por exemplo), onde o valor é armazenado na variável, mas o ENTER continua no buffer. Você precisa verificar se esse ENTER está presente e removê-lo. Para isso crie uma função que receba o objeto Scanner por parâmetro e faça os devidos procedimentos. Algo assim pode resolver: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner (System.in); System.out.print("Digite o numero da conta: "); int numero = sc.nextInt(); clearBuffer(sc); System.out.print("Digite o nome do titular da conta: "); String nome = sc.nextLine(); System.out.print("Você Deseja realizar um deposito inicial? [ S / N ]: "); String op = sc.next(); if (op.equals("S")) { System.out.print("Digite o Valor do deposito inicial: "); int deposito = sc.nextInt(); clearBuffer(sc); sc.close(); } } private static void clearBuffer(Scanner scanner) { if (scanner.hasNextLine()) { scanner.nextLine(); } } } Perceba que a função clearBuffer é chamada após o nextInt, isso porque o nextInt armazena valores não alfanuméricos. No caso dos métodos next e nextLine o ENTER é armazenado dentro da variável, dessa forma, ele não precisa ser consumido. -
@arfneto Acho que entendi o que você quis dizer, eu só achei que poderia ser útil ir armazenando os dados. E que tal assim? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <float.h> #define limparTela system("clear") // No Windows mude para "cls" #define separador "------------------------------------------ \n" typedef struct { char nome[255]; char endereco[255]; char telefone[255]; char email[255]; double salario; } Funcionario_t; typedef struct { char nome[255]; double salario; } FuncionarioSimples_t; int main() { const char FLAG_S[5] = "sim"; const char FLAG_N[5] = "nao"; char resposta[5] = ""; int quantidade = 0; double soma = 0.0; double media = 0.0; Funcionario_t funcionario; FuncionarioSimples_t funcionarioMaiorSalario = {"", DBL_MIN}; FuncionarioSimples_t funcionarioMenorSalario = {"", DBL_MAX}; while (strcmp(resposta, FLAG_N) != 0) { limparTela; printf("Cadastrar? [ sim / nao ]: "); scanf(" %s", resposta); if (strcmp(resposta, FLAG_S) == 0) { printf("Nome: "); scanf(" %[^\n]s", funcionario.nome); printf("Endereço: "); scanf(" %[^\n]s", funcionario.endereco); printf("Telefone: "); scanf(" %[^\n]s", funcionario.telefone); printf("E-mail: "); scanf(" %[^\n]s", funcionario.email); printf("Salário: "); scanf(" %lf", &funcionario.salario); if (funcionario.salario > funcionarioMaiorSalario.salario) { strcpy(funcionarioMaiorSalario.nome, funcionario.nome); funcionarioMaiorSalario.salario = funcionario.salario; } if (funcionario.salario < funcionarioMenorSalario.salario) { strcpy(funcionarioMenorSalario.nome, funcionario.nome); funcionarioMenorSalario.salario = funcionario.salario; } soma += funcionario.salario; quantidade += 1; } } if (quantidade > 0) { media = soma / quantidade; limparTela; printf(separador); printf(" Soma: R$ %8.2f \n", soma); printf("Média: R$ %8.2f \n", media); printf("Maior: R$ %8.2f (%s) \n", funcionarioMaiorSalario.salario, funcionarioMaiorSalario.nome); printf("Menor: R$ %8.2f (%s) \n", funcionarioMenorSalario.salario, funcionarioMenorSalario.nome); printf(separador); } return 0; } Você disse que não precisava de nenhuma estrutura, mas acredito que elas aprimoram muito a legibilidade do código.
-
Também poderia ser feito assim: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <float.h> #define limparTela system("clear") // No Windows mude para "cls" #define separador "------------------------------------------ \n" typedef struct { char nome[255]; char endereco[255]; char telefone[255]; char email[255]; double salario; } Funcionario_t; int main() { const char FLAG_S[5] = "sim"; const char FLAG_N[5] = "nao"; char resposta[5] = ""; const int maximo = 1000; int posicao = 0; double soma = 0.0; double media = 0.0; Funcionario_t funcionarios[maximo]; Funcionario_t funcionarioMaiorSalario = {"", "", "", "", DBL_MIN}; Funcionario_t funcionarioMenorSalario = {"", "", "", "", DBL_MAX}; do { limparTela; printf("Cadastrar? [ sim / nao ]: "); scanf(" %s", resposta); if (strcmp(resposta, FLAG_S) == 0) { printf("Nome: "); scanf(" %[^\n]s", funcionarios[posicao].nome); printf("Endereço: "); scanf(" %[^\n]s", funcionarios[posicao].endereco); printf("Telefone: "); scanf(" %[^\n]s", funcionarios[posicao].telefone); printf("E-mail: "); scanf(" %[^\n]s", funcionarios[posicao].email); printf("Salário: "); scanf(" %lf", &funcionarios[posicao].salario); if (funcionarios[posicao].salario > funcionarioMaiorSalario.salario) { funcionarioMaiorSalario = funcionarios[posicao]; } if (funcionarios[posicao].salario < funcionarioMenorSalario.salario) { funcionarioMenorSalario = funcionarios[posicao]; } soma += funcionarios[posicao].salario; posicao += 1; } } while (strcmp(resposta, FLAG_N) != 0 && posicao < maximo); if (posicao > 0) { // Precisa ter ao menos um funcionário cadastrado. media = soma / posicao; limparTela; printf(separador); printf(" Soma: R$ %8.2f \n", soma); printf("Média: R$ %8.2f \n", media); printf("Maior: R$ %8.2f (%s) \n", funcionarioMaiorSalario.salario, funcionarioMaiorSalario.nome); printf("Menor: R$ %8.2f (%s) \n", funcionarioMenorSalario.salario, funcionarioMenorSalario.nome); printf(separador); } return 0; }
-
Dê uma olhada aqui.
-
O if segue a mesma lógica do while. A comparação deve ser feita com strcmp.
-
Problema com dependências desencontradas
AdrianoSiqueira respondeu ao tópico de Francine Guimarães em Notebooks
sudo apt-get install -f sudo dpkg --configure -a -
C Exercício de linguagem de programação em C com vetor
AdrianoSiqueira respondeu ao tópico de Leo14nerd em C/C#/C++
Ordene o vetor e depois imprima. -
C++ name lokupk change foriso for scope-permissive
AdrianoSiqueira respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
Não tenho como testar esse código no Linux. Tente seguir os comentário que eu coloquei no código: #include<windows.h> #include<tlhelp32.h> #include<iostream> #include<bits/stdc++.h> using namespace std; bool compareFunction(string a, string b); int main() { HANDLE hProcessSnap; PROCESSENTRY32 pe32; DWORD dwPriorityClass; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pe32.dwSize = sizeof(PROCESSENTRY32); vector<string> process_name; while (Process32Next(hProcessSnap, &pe32)) { process_name.push_back(pe32.szExeFile); }; vector<string> process_name_unique; process_name_unique.push_back(process_name[3]); // Deixe essa linha assim: // for (int k = 3; k < process_name.size() - 1; k++) { for (int k = 3; k <= process_name.size() - 1; k++) { int add_unique = 1; // Deixe essa linha assim: // for (int j = 0; j < process_name_unique.size() - 1; j++) { for (int j = 0; j <= process_name_unique.size() - 1; j++) { string st1 = process_name[k]; string st2 = process_name_unique[j]; if (strcmp(st1.c_str(), st2.c_str()) == 0 && add_unique == 1) { add_unique = 0; }; }; if (add_unique == 1) { process_name_unique.push_back(process_name[k]); }; }; vector<string> process_name_unique_unsorted; for (int k = 0; k != process_name_unique.size(); k++) { process_name_unique_unsorted.push_back(process_name_unique[k]); } sort(process_name_unique.begin(), process_name_unique.end(), compareFunction); for (int k = 0; k != process_name_unique.size(); k++) { for (int j = 0; j != process_name_unique.size(); j++) { } } // Deixe essa linha assim: // for (int k = 0; k < (process_name_unique.size() - 1); k++) { for (int k = 0; k <= (process_name_unique.size() - 1); k++) { cout << process_name_unique[k] << "\n"; // ARMAZENE ESSE VETOR // REINICIAR E COMPARAR COM A NOVA // ALGUM DIFERENTE? PRINTF DIFERENTE } } bool compareFunction(string a, string b) { for (int k = 0; k <= a.size() - 1; k++) { a[k] = tolower(a[k]); } for (int k = 0; k <= b.size() - 1; k++) { b[k] = tolower(b[k]); } return a < b; } -
C++ name lokupk change foriso for scope-permissive
AdrianoSiqueira respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
O que é name_unico? Se for possível coloque o código todo, do jeito que está não tem como testar. -
@SantosRodrigues00 Acho que você tentou testar duas ideias diferentes (só para ver se funciona), mas acabou colocando cada uma dentro de um método main. Como o @Benjamin Breeg disse, só pode ter um método main. Se você quiser testar ideias, coloque cada uma dentro de uma função e chame elas de dentro do método main. Algo assim: #include <stdio.h> #include <stdlib.h> #include <time.h> #define limparTela system("clear") // No Windows mude para "cls" void escreverArquivo(); void jogarAdivinhacao(); void dicas(int numero, int senha, int tentativas); int main() { // Descomente o que quer fazer // escreverArquivo(); // jogarAdivinhacao(); return 0; } void escreverArquivo() { char nomeArquivo[] = "char.txt"; char letra = ' '; FILE *arquivo = NULL; printf("Letra: "); scanf(" %c", &letra); arquivo = fopen(nomeArquivo, "w"); if (arquivo == NULL) { printf("[]: Erro ao abrir o arquivo. \n"); return; } fputc(letra, arquivo); fclose(arquivo); } void jogarAdivinhacao() { int continuar = 0; int secreto = 0; int chute = 0; int tentativas = 0; srand((unsigned) time(NULL)); do { limparTela; printf("Sorteando número [ 1..1000 ] ... \n"); secreto = rand() % 1000 + 1; printf("Começou! Tente adivinhar o número. \n"); tentativas = 0; do { tentativas += 1; printf("Tentativa [%i]: ", tentativas); scanf(" %i", &chute); dicas(chute, secreto, tentativas); } while (chute != secreto); printf("1 - Jogar de novo \n"); printf("0 - Sair \n"); printf("> "); scanf(" %i", &continuar); } while (continuar == 1); } void dicas(int numero, int senha, int tentativas) { if (numero > senha) { printf("O número sorteado é menor que %d. \n", numero); } else if (numero < senha) { printf("O número sorteado é maior que %d. \n", numero); } else { printf("Parabéns! voce acertou o número em %d tentativas! \n", tentativas); } }
-
Java Erro ao validar Cpf? Eu criei o método e não estou conseguindo achar o erro ?
AdrianoSiqueira respondeu ao tópico de Nino2019 em Java/Android SDK
Esqueceu de fechar a função validacaoCadastro
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