Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios |
Como ler e gravar arquivos texto com campos de tamanho fixo em Java - Nomes e notas de alunos aprovados e reprovados - Exercícios Resolvidos de JavaQuantidade de visualizações: 393 vezes |
Pergunta/Tarefa: O arquivo usado neste exercício pode ser baixado aqui. Dado um arquivo notas_alunos.txt com o seguinte conteúdo: ANA SANTOS 8,3 7,9 ANDRE MIRANDA 10,0 8,4 CINTIA NUNES 6,2 5,8 FABRICIO SILVA 3,6 6,2 GABRIELA KARLA 8,3 10,0 JOAO DOS SANTOS 6,8 6,3 MILENA FERNANDA 10,0 8,1 Escreva um programa Java que abra este arquivo e gere outros dois arquivos, com os nomes notas_alunos_aprovados.txt e notas_alunos_reprovados.txt. O arquivo notas_alunos_aprovados.txt deverá conter os alunos aprovados e o arquivo notas_alunos_reprovados.txt vai conter os alunos reprovados. Para ser aprovado a média aritmética das notas N1 e N2 deverá ser maior ou igual a 7,0. Os arquivos gerados deverão conter um campo com tamanho de 6 caracteres dedicado à média do aluno, alinhada à direita. Para deixar a explicação do exercício ainda mais assertiva, veja o conteúdo do arquivo notas_alunos_aprovados.txt gerado pela resolução que fizemos: ANA SANTOS 8,3 7,9 8,1 ANDRE MIRANDA 10,0 8,4 9,2 GABRIELA KARLA 8,3 10,0 9,2 MILENA FERNANDA 10,0 8,1 9,1 CINTIA NUNES 6,2 5,8 6,0 FABRICIO SILVA 3,6 6,2 4,9 JOAO DOS SANTOS 6,8 6,3 6,6 Resposta/Solução: Veja a resolução comentada deste exercício em Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Estudos { public static void main(String[] args) { // vamos construir uma instância da classe BufferedReader // para ler o arquivo de entrada BufferedReader arquivo_notas_alunos = null; // vamos construir uma instância da classe BufferedWriter // para escrever no arquivo de aprovados BufferedWriter arquivo_aprovados = null; // vamos construir uma instância da classe BufferedWriter // para escrever no arquivo de reprovados BufferedWriter arquivo_reprovados = null; // nomes e locais dos arquivos String notas_alunos = "C:\\estudos_java\\notas_alunos.txt"; String alunos_aprovados = "C:\\estudos_java\\notas_alunos_aprovados.txt"; String alunos_reprovados = "C:\\estudos_java\\notas_alunos_reprovados.txt"; // vamos ler o conteúdo do arquivo de entrada, uma linha // de cada vez String linha; try { // agora abrimos o arquivo de entrada arquivo_notas_alunos = new BufferedReader(new FileReader(notas_alunos)); // abrimos também o arquivo de saída alunos aprovados arquivo_aprovados = new BufferedWriter(new FileWriter(alunos_aprovados)); // e também o arquivo de saída alunos reprovados arquivo_reprovados = new BufferedWriter(new FileWriter(alunos_reprovados)); // enquanto houver linhas a serem lidas while((linha = arquivo_notas_alunos.readLine()) != null){ // agora precisamos tratar os campos do arquivo // o campo nome contém 20 caracteres String nome = linha.substring(0, 22); // o campo N1 contém 6 caracteres // precisamos retirar os espaços deste campo e trocar a vírgula // pelo ponto String n1_string = linha.substring(22, 26); double n1 = Double.parseDouble(n1_string.trim().replace(",", ".")); // o campo N2 contém 6 caracteres // precisamos retirar os espaços deste campo e trocar a vírgula // pelo ponto String n2_string = linha.substring(26, 32); double n2 = Double.parseDouble(n2_string.trim().replace(",", ".")); // agora vamos calcular a média do aluno double media = (n1 + n2) / 2; // precisamos configurar a string da média String media_string = String.format("%1$,6.1f", media); // o aluno foi aprovado? if(media >= 7.0){ // vamos escrever no arquivo de aprovados arquivo_aprovados.write(nome + n1_string + n2_string + media_string + "\r\n"); } else{ // vamos escrever no arquivo de reprovados arquivo_reprovados.write(nome + n1_string + n2_string + media_string + "\r\n"); } } // fecha o arquivo de saída dos reprovados arquivo_reprovados.close(); // fecha o arquivo de saída dos aprovados arquivo_aprovados.close(); // fecha o arquivo de entrada arquivo_notas_alunos.close(); // mostra uma mensagem de sucesso System.out.println("Arquivos gerados com sucesso."); } catch (FileNotFoundException e) { System.err.println("\nArquivo não encontrado\n"); } catch (IOException e) { System.err.println("\nNão foi possível abrir o arquivo\n"); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à retaQuantidade de visualizações: 1162 vezes |
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ // vamos usar a classe Scanner para ler os dados Scanner entrada = new Scanner(System.in); // vamos ler as coordenadas do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); double x1 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); double y1 = Double.parseDouble(entrada.nextLine()); // vamos ler as coordenadas do segundo ponto System.out.print("Coordenada x do segundo ponto: "); double x2 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); double y2 = Double.parseDouble(entrada.nextLine()); String sinal = "+"; // vamos calcular o coeficiente angular da reta double m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear double n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta System.out.println("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar a representação numérica de um caractere em Java fazendo um cast de char para intQuantidade de visualizações: 30 vezes |
Um cast forçado de char para int é uma das formas mais práticas para se obter a representação numérica de um caractere em Java. Tudo que precisamos fazer é usar o método charAt() da classe String para obtermos o caractere na posição desejada de um texto, frase ou palavra e, em seguida, convertê-lo (cast) para um int. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; // Este exemplo mostra como obter a representação // númerica de um caractere public class Estudos{ public static void main(String[] args){ String frase = "Programando em Java"; for(int i = 0; i < frase.length(); i++){ int valor = (int)frase.charAt(i); System.out.println(frase.charAt(i) + " = " + valor); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- P = 80 r = 114 o = 111 g = 103 r = 114 a = 97 m = 109 a = 97 n = 110 d = 100 o = 111 = 32 e = 101 m = 109 = 32 J = 74 a = 97 v = 118 a = 97 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como testar se um array possui valores repetidos em JavaQuantidade de visualizações: 1780 vezes |
Pergunta/Tarefa: Escreva um programa Java que declara, constrói um vetor de 10 posições e pede ao usuário para informar os valores de seus elementos. Em seguida, varra o vetor e informe a existência ou não de valores repetidos. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 3 Informe o valor para o índice 1: 6 Informe o valor para o índice 2: 8 Informe o valor para o índice 3: 10 Informe o valor para o índice 4: 2 Informe o valor para o índice 5: 4 Informe o valor para o índice 6: 6 Informe o valor para o índice 7: 10 Informe o valor para o índice 8: 3 Informe o valor para o índice 9: 30 Há valores repetidos no vetor Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos declarar e construir um vetor de 10 elementos int valores[] = new int[10]; // vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o índice " + i + ": "); valores[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos verificar se o vetor possui valores repetidos boolean repetidos = false; // percorremos todos os elementos do vetor for(int i = 0; i < valores.length; i++){ // para cada elemento em i nos verificamos os que estão nos indices seguintes for(int j = i + 1; j < valores.length; j++){ // encontramos algum repetido? if(valores[j] == valores[i]){ repetidos = true; break; // saímos do laço } } } if(repetidos){ System.out.println("Há valores repetidos no vetor"); } else{ System.out.println("Nao há valores repetidos no vetor"); } System.out.println("\n"); } } |
Vamos testar seus conhecimentos em JavaScript |
Qual é a forma correta de se criar um array em JavaScript? A) var cores = ["vermelho", "verde", "azul"]; B) var cores = (1: "vermelho", 2: "verde", 3: "azul"); C) var cores = "vermelho", "verde", "azul"; D) var cores = 1: ("vermelho"), 2: ("verde"), 3: ("azul"); Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de: A) Diário de obra. B) Cronograma físico-financeiro. C) Gráfico de Gantt. D) Planejamento. E) Cronograma físico. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Evolução das estruturas A alvenaria é das mais antigas técnicas de construção. É também das mais ricas e variadas. Assinale abaixo a opção que não corresponde às "unidades de alvenaria", ou seja, às peças que não constituem a formação da alvenaria: Selecione a resposta: A) Tijolos cerâmicos maciços. B) Blocos de pedra. C) Blocos de concreto. D) Tijolos cerâmicos vazados. E) Peças de madeira. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações diretas ou rasas A viga de fundação é também chamada de viga baldrame. É utilizada para conectar sapatas isoladas e distribuir melhor o peso da estrutura para as camadas do solo. A partir disso, projete uma viga de fundação para os pilares P1 e P2, indicados na figura, sendo a taxa no solo σs = 0,4. Considere: P1 = P2 = 1.800KN. Dimensões P1 e P2 = 25cmX100cm. A) a = 400cm e b = 280cm. B) a = 365cm e b = 250cm. C) a = 250cm e b = 365cm. D) a = 345cm e b = 230cm. E) a = 405cm e b = 315cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética Empresarial e Profissional: Noções Gerais O termo "moral" vem do latim mores, que quer dizer costumes. Portanto, moral é um conjunto de hábitos e costumes praticados por um grupo. Tais hábitos e costumes são aceitos e incorporados por serem considerados bons. Sobre isso, assinale a alternativa correta. A) Os hábitos, por serem bons, são considerados justos. B) Os hábitos, mesmo sendo maus, podem ser considerados justos. C) Independentemente de serem bons ou maus, os hábitos não alteram as condições de realização das pessoas. D) Considerando que os hábitos bons e justos se tornam imprescindíveis para os indivíduos, eles são convencionados em forma de acordos. E) Considerando que os hábitos bons e justos se tornam dispensáveis para os indivíduos, eles são convencionados em forma de lei. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
C++ - Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++ C++ - Como inicializar os valores dos elementos de um vetor C++ usando valores randômicos - Revisado |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |