Ir para conteúdo
Fórum Script Brasil

phk1

Membros
  • Total de itens

    14
  • Registro em

  • Última visita

Tudo que phk1 postou

  1. Os códigos estão no arquivo em anexo. Obrigado. Os métodos estão corretos e os construtoes também, não encontro o motivo do erro. package pck; import java.util.Scanner; import pck.Disciplina; public class main { public static void main(String[] args) { Disciplina disciplina = new Disciplina(); //Aluno a1 = new Aluno("Ricardo", 31, 1); //Aluno a1 = null; //Aluno a2 = new Aluno("Ana Elisa", 17, 1); //Aluno a3 = new Aluno("Geovana", 18, 2); //Aluno a4 = new Aluno("Livia", 20, 2); Scanner sc = new Scanner(System.in); System.out.println("Enter com a quantidade de alunos: "); int a = sc.nextInt(); Aluno[] aluno = new Aluno[a]; for (a = 0;a < aluno.length;a++) { System.out.println("Entre com o nome, a idade e a disciplina: "); String nome = sc.nextLine(); int idade = sc.nextInt(); int turma = sc.nextInt(); String nomeDisciplina = sc.nextLine(); disciplina.adicionarAluno(nome,idade,turma, nomeDisciplina); } //disciplina.adicionarAluno(a2); //disciplina.adicionarAluno(a3); //disciplina.adicionarAluno(a4); System.out.println("Quantidade de alunos: " + disciplina.getNumAlunos()); disciplina.exibirInformacoes(); System.out.println("Antes de remover alunos. "); //removendo aluno //disciplina.removerAluno(a2); System.out.println("Despois de remover alunos. "); disciplina.exibirInformacoes(); System.out.println("Quantidade de alunos: " + disciplina.getNumAlunos() + "\n"); System.exit(0); } } package pck; public class Disciplina { private Aluno[] alunos = new Aluno[40]; private Disciplina[] disciplina = new Disciplina[10]; private int posicao; public Disciplina() { this.alunos = new Aluno[40];//construtor, quando cria a disciplina, cria automaticamente um vetor Aluno de 40 posições. //Disciplina disciplina = new Disciplina(); } public int getNumAlunos() { int cont = 0; for (int i = 0; i < alunos.length; i++) { if(alunos[i] != null) {//se a posição é diferente de null não conta. cont++; } } return cont;//retorna o número de alunos. } public boolean adicionarAluno(Aluno alunos) { if(alunos != null) { this.alunos[posicao] = alunos; posicao = posicao + 1; return true; } else { return false;//aluno não foi adicionado. } } public boolean removerAluno(Aluno aluno) {//verifica sem existe nome, idade, e turma, as três tem de ser verificadas, pois podem haver repetições. for(int i = 0; i < alunos.length; i++) {//para remover o aluno do vetor. Excluindo pelo nome, idade e turma. if((alunos[i].getNome() == aluno.getNome()) && (alunos[i].getIdade() == aluno.getIdade()) && (alunos[i].getTurma() == aluno.getTurma()) && (alunos[i].getnomeDisciplina() == aluno.getnomeDisciplina())) { alunos[i] = null;//remove um aluno return true; } //aqui não podemos, após esta chave, por causa da posição do vetor, por exemplo, aluno na posição 3. //por causa da iteração, o for não estará na posição 0. Pode estar em outra posição. Ele pode não estar na posição 0 e retorna false, //queremos que percorra todo o vetor e não encontrar a condição do if acima. } return false;//caso não encontre na primeira posição, pode estar em outra posição de 0 a 4. Tem de percorrer todo o vetor e não cair dentro do if. //por isso não tem o else e o return está fora da condição. False é porque não está no vetor. } //exibir as informações de todos os alunos. public void exibirInformacoes() { for (int i = 0; i < alunos.length;i++) { if (alunos[i] != null)//if para evitar exceção se a posição for null pela informação removida, pois a posição não tem mais dados, está vazia. System.out.println(alunos[i].mostrarInformacoes());//chama o método já pronto mostrarInformações que está na classe Aluno. Mostra somente posições com valores. } } } package pck; import pck.Disciplina; public class Aluno { private String nome, nomeDisciplina; private int idade, turma; int i = 0; public Aluno(String nome, int idade, int turma, String nomeDisciplina) { this.nome = nome; this.idade = idade; this.turma = turma; this.nomeDisciplina = nomeDisciplina; } public void setnomeDisciplina(String nomeDisciplina) { this.nomeDisciplina = nomeDisciplina; } public String getnomeDisciplina() { return this.nomeDisciplina; } public void setNome(String nome) {// atribui um valor para o atributo nome. this.nome = nome; } public String getNome() { return this.nome; } public void setIdade(int idade) { this.idade = idade; } public int getIdade() { return this.idade; } public void setTurma(int turma) { this.turma = turma; } public int getTurma() { return this.turma; } public String mostrarInformacoes() { return "Nome: " + getNome() + "\nIdade: " + getIdade() + "\nTurma: " + getTurma() + "\n" + "##############"; } }
  2. Ainda não resolvido, a saída não está boa. O algoritmo não vai para o while externo após sair do while mais interno. package vetores; import java.util.Scanner; public class mediavetores2 { public static void main(String[] args) { String[] nome_aluno = new String[50]; double[] notas_aluno = new double[5]; int j; boolean opcao = true; String resp = " "; double media = 0,soma = 0; Scanner sc = new Scanner(System.in); do { for(int i = 0;i < nome_aluno.length;i++) { System.out.println("Insira o nome do aluno: "); nome_aluno[i] = sc.next(); soma = 0; while(opcao) { for(j = 0; j<4 ;j++) { System.out.println("Entre com a " + (j + 1) + " ª nota do aluno: " + (i + 1)); notas_aluno[j] = sc.nextDouble(); soma = soma + notas_aluno[j]; } media = soma / 5; String aproveitamento = ""; if (media >= 9 && media <= 10){ aproveitamento = "A"; } else if (media >= 7.5 && media < 9){ aproveitamento = "B"; } else if (media >= 6 && media < 7.5){ aproveitamento = "C"; } else if (media >= 4 && media < 6){ aproveitamento = "D"; } else if (media >= 0 && media < 4){ aproveitamento = "E"; } System.out.println("Média: " + media); System.out.println("Conceito: " + aproveitamento); switch(aproveitamento) { case "A": case "B": case "C": System.out.println("APROVADO"); break; case "D": case "E": System.out.println("REPROVADO"); break; } System.out.print("Deseja Continuar? <s/n>: "); resp = sc.next(); if(resp.equalsIgnoreCase("s")) opcao = false; break; } } }while(opcao); System.out.print("Deseja Continuar? <s/n>: "); resp = sc.next(); if(resp.equalsIgnoreCase("s")) opcao = false; sc.next(); sc.close(); } }
  3. Quase resolvido, mas o while não é lido de jeito nenhum.
  4. Ainda não consegui resolver. Na segunda vez que faço para colocar as notas, as notas não são somadas corretamente. Parece que fica lixo na memória, não sei se está somando com o resultado da primeira iteração. Por exemplo: 7 + 8 + 9 +8 dá 32, e fiz o debug e a soma está dando 142. Nada a ver. Resolvendo isso e resolvo depois a saída do algoritmo. Obrigado.
  5. package vetores; import java.util.Scanner; public class Media_2_vetores { public static void main(String[] args) { String[] nome_aluno = new String[50]; double[] notas_aluno = new double[5]; int j; String opcao; //boolean opcao = true; String resp = "n"; double media = 0,soma = 0, cont =0; Scanner sc = new Scanner(System.in); do { for(int i = 0;i < nome_aluno.length;i++) { System.out.println("Insira o nome do aluno: "); //nome_aluno[i] = sc.nextLine(); for(j = 0; j<4 ;j++) { System.out.println("Entre com a " + (j + 1) + " ª nota do aluno: " + (i + 1)); nome_aluno[i] = sc.nextLine(); notas_aluno[j] = sc.nextDouble(); soma = soma + notas_aluno[j]; cont++; } media = (soma / 5); String aproveitamento = ""; if (media >= 9 && media <= 10){ aproveitamento = "A"; } else if (media >= 7.5 && media < 9){ aproveitamento = "B"; } else if (media >= 6 && media < 7.5){ aproveitamento = "C"; } else if (media >= 4 && media < 6){ aproveitamento = "D"; } else if (media >= 0 && media < 4){ aproveitamento = "E"; } System.out.println("Média: " + media); System.out.println("Conceito: " + aproveitamento); switch(aproveitamento) { case "A": case "B": case "C": System.out.println("APROVADO"); break; case "D": case "E": System.out.println("REPROVADO"); break; } //System.out.print("Deseja Continuar? <s/n>: "); //opcao = sc.nextLine(); sc.nextLine(); } System.out.print("Deseja Continuar? <s/n>: "); //if (resp == false) opcao = sc.nextLine(); } while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n' } } Prazer a todos. Por que na segunda iteração o resultado é apresentado como uma soma, a média não está sendo calculada. Não sei onde está o erro. Obrigado.
  6. Problema quase resolvido. Problema somente do while que não é lido, não vejo erro nenhum. public static void main(String[] args) { String[] nome_aluno = new String[50]; double[][] nota_aluno = new double[50][4]; Scanner sc = new Scanner(System.in); int i,j; String opcao, resp = "n"; double soma = 0; do { for(i = 0;i < nome_aluno.length;i++) { System.out.println("Insira o nome do aluno: "); nome_aluno[i] = sc.next(); for(j = 0; j<4 ;j++) { System.out.println("Entre com o aluno de número: " + i + 1 + " com a " + j + " ª nota."); nota_aluno[i][j] = sc.nextDouble(); soma = soma + nota_aluno[i][j]; } double media = soma / 4; String aproveitamento = " "; if (media >= 9 && media <= 10){ aproveitamento = "A"; } else if (media >= 7.5 && media < 9){ aproveitamento = "B"; } else if (media >= 6 && media < 7.5){ aproveitamento = "C"; } else if (media >= 4 && media < 6){ aproveitamento = "D"; } else if (media >= 0 && media < 4){ aproveitamento = "E"; } System.out.println("Média: " + media); System.out.println("Conceito: " + aproveitamento); switch(aproveitamento){ case "A": case "B": case "C": System.out.println("APROVADO"); break; case "D": case "E": System.out.println("REPROVADO"); break; } } System.out.print("Deseja Continuar? <s/n>: "); opcao = sc.next(); } while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n' } O while não é lido para encerrar o programa. Porque?
  7. public class Media_2_vetores { public static void main(String[] args) { double[] notas = new double [5]; int[] alunos = new int [50]; int i,j; String opcao; Scanner sc = new Scanner(System.in); double media = 0, soma = 0,cont = 0; String resp = "n"; do { for(i = 0;i < alunos.length;i++) { System.out.println("Entre com o aluno de nº: "); alunos[i] = sc.nextInt(); for(j = 0;notas.length<4;j++) { System.out.println("Entre com a " + j + 1 + " ª do aluno: "); notas[j] = sc.nextDouble(); soma = soma + notas[j]; cont++; media = soma / cont; String aproveitamento = " "; if (media >= 9 && media <= 10){ aproveitamento = "A"; } else if (media >= 7.5 && media < 9){ aproveitamento = "B"; } else if (media >= 6 && media < 7.5){ aproveitamento = "C"; } else if (media >= 4 && media < 6){ aproveitamento = "D"; } else if (media >= 0 && media < 4){ aproveitamento = "E"; } System.out.println("Média: " + media); System.out.println("Conceito: " + aproveitamento); switch(aproveitamento){ case "A": case "B": case "C": System.out.println("APROVADO"); break; case "D": case "E": System.out.println("REPROVADO"); break; } } } System.out.print("Deseja Continuar? <s/n>: "); opcao = sc.next(); } while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n' sc.close(); } } Prazer. Estou tendo problemas no for para ler alunos e notas. O primeiro for continua, não consigo fazer ele parar e logo a seguir ler o segundo for para entrar com a nota do aluno, o compilador continua a ler o primeiro for. Entra com o número do aluno e logo a seguir entra com as notas. São 50 alunos e para cada um desses 50 há 4 notas. Obrigado.
  8. phk1

    Curriculum Vitae

    Telefone: (21) 2437-9019 Celular: 98393-9911 e-mail: pkutwak@gmail.com PAULO HENRIQUE KUTWAK Av. Gláucio Gil 551 apto 102 Recreio dos Bandeirantes Rio de Janeiro- RJ 22795-295 ÁREA DE ATUAÇÃO Informática EXPERIÊNCIA PROFISSIONAL Adquiri experiência complementar em cursos de extensão para Análise de Sistemas e Gerência de Manutenção em Softwares na Universidade Estácio de Sá; Hardware básico e avançado no Curso LVC; Ambientação à microinformática, Introdução ao Sistema Operacional Xenix, Introdução ao editor de texto Infoword, Editor de texto básico, DOS 3.3, 5.0, 6.0 e 6.22 no SENAC; Lotus 2.0, DBase III Plus básico no IBPI. BNDES 2002/2002 Estagiário de informática SERPRO 2001/2001 Estagiário de informática Folha Dirigida 1994/1994 Estagiário de diagramação Dani Representações Ltda 1993/1993 Digitador Arja Engenharia Ltda 1985/1987 Auxiliar de escritório FORMAÇÃO / CURSOS Unicarioca – Formado em Tecnólogo de Informática – abril de 2003 Universidade Santa Úrsula Colégio Eduardo Guimarães Colégio Chez L´enfant Colégio I. B. “A.Liessin” Programação, Delphi, Pascal, C++, DHTML, ASP, VB, VBScript, Java, Access, Análise de Sistemas, Sistema de Informação, PMI (Project Management Institute), Gerencia de Projetos, UML (Unified Modeling Language), Programação Orientada a Objetos,Banco de Dados Relacionais, TCP-IP, Redes, Web Design, Noções de Java, Windows 95, 98, 2000, XP e Novell Netware 4.0, Windows NT 4, PageMaker 4.0 a 6.5, Corel Draw 3.0 a 10.0, Microsoft Office 4.0 ao XP, PhotoShop 4.0 a 7.0, FrontPage 98 a XP, Home Site 4.0 e 5.0, JavaScript, Datawarehouse, Datamining, Engenharia de Software, SQL(Structure Query Linguage). Trabalhos realizados Arja Engenharia Auxiliar de escritório, rotinas de banco, atendimento, atender telefone, ajuda na recepção Dani Representações Trabalho de digitação. Preenchimento de planilhas com informações sobre compra e venda de veículos. Folha Dirigida. Trabalho de diagramação, montagem e organização do layout das páginas. Serpro. Programação em html, banco de dados, javascript. Montagem e manutenção de página de banco de dados, para inserção e consulta. BNDES. Programação em html, banco de dados, javascript. Montagem e manutenção de página de banco de dados, para inserção e consulta. Delphi, pascal. PAULO HENRIQUE KUTWAK
  9. phk1

    Soma de frações

    Esqueci de colocar os parenteses no if. Testei de novo e continua o mesmo problema.
  10. phk1

    Soma de frações

    Estou com dificuldades nesse código: #include <iostream> #include <cstdlib> #include <stdio.h> using namespace std; int main() { setlocale(LC_ALL, "Portuguese"); int a,b,c,d,i,e,f,g,h; cout << "Entre com os valores da primeira fracao: "; cin >> a; cin >> b; cout << "Entre com os valores da segunda fracao: "; cin >> c; cin >> d; e = ((a*d)+(b*c)); f = b * d; //cout << "A soma das fracoes é: " << e << "/" << f << "\n"; if (e % i != 0 || f % i != 0) cout << "A simplificação não é possivel\n"; /* for (i=2;i<=10;i++) { if(e % i == 0 || f % i == 0) { g = e / i; h = f / i; cout << "\nO resultado da simplificação da fracao é:\n " << g << "/" << h; } */ system("pause"); return 0; } Comentei o resto. Por que o if não está funcionando, ele logo diz que a simplificação não é possível, na verdade é possível como deve simplificar, testei a soma e funcionou, e logo após mostra a mensagem do primeiro if que está sendo totalmente ignorado e mostra a mensagem. Não sei o que está errado?
  11. Valeu. Obrigado. Minha dúvida é seu eu quiser mostrar assim: a/b.
  12. Fiz o exercício, mas não sei porque não está funcionando. { Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte serie: 2/500 - 5/450 + 2/400 - 5/350 + ... } #include <iostream> #include <cstdlib> #include <stdio.h> using namespace std; int main() { setlocale(LC_ALL, "Portuguese"); int i, denominador; float s; denominador = 500; s = 0; for (i=1;i<=10;i++) { if ((i % 2) != 0) { s = s + (2/denominador); } else { s = s - (5/denominador); } denominador = denominador - 50; cout << s << "/" << denominador; } return 0; } D sempre 0250. Não descubro o erro.
  13. phk1

    Sequência de números

    Resolvi. Corrigir as variáveis iniciando em 37 e 38, iniciar em 36 e 37 respectivamente. Deno<=38 deve ser menor ou igual a 36, assim a lógica fica certa. O último número conforme foi pedido no algoritmo nunca poderá dar o final 37, pois qualquer outro valor ou o laço acabaria antes do número correto que é 36 ou daria um número negativo no numerador por causa do for. Tentei com outros valores e como suspeitei, deu -1 X 0 /37.
  14. Eu estou no início do treinamento. Fiz um pequeno algoritmo no qual há uma sequência de números e começa de 36 X 37 / 2 + 35 X 36 /3 + ... 1 X 2 / 37. int deno,a,b; a = 37; b = 38; for (deno=1;deno<=38;deno++){ a = a - 1; b = b - 1; cout << a << " X " << b << "/" << deno << "\n"; O problema está no final da impressão, quando chega ao final é impresso -1 X 0 / 38. Quero que termine com 0 X 0 / 38. Obrigado a todos.
×
×
  • Criar Novo...