1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda programa me java

Discussão em 'Programação' iniciada por docpt, 9 de Novembro de 2008. (Respostas: 23; Visualizações: 1484)

  1. docpt

    docpt Power Member

    Boas noites.

    Precisava que me ajudassem a resolver um programa em java.
    o programa tem como objectivo o calculo final do somatório, tipo o utilizador coloca dois valores inteiros:

    3 e 2 saída: 1+2+4+8 = 15

    já vi que posso fazer este exercito pela forma de euclides, mas não quero o utilizar.

    já matei a cabeça mas não consigo chegar lá.

    obrigado desde já.



    Pensei fazer dois ciclos for.

    num dos for ele calcula o a elevado a x e incrementa.

    no outro faz a soma do somatório.
     
    Última edição: 9 de Novembro de 2008
  2. Baderous

    Baderous Banido

    Isso faz o somatório de i=0 até 3, de potências de 2:

    2^0 + 2^1 + 2^2 + 2^3

    Usas uma variável para guardar os valores do i e outra para acumulares os resultados parciais.
     
  3. docpt

    docpt Power Member

    Humm ja é uma ajuda ate aqui percebi.

    ou seja...

    o utilizador mete a base o o valor e o A que neste caso é o dois..

    depois de receber estes dados faço um for com i=0; e ate o valor da base)

    dentro desse for faço conta= conta* ???

    e dpois faço soma = soma + conta...

    aqui é que esta a minha grande duvida...

    obrigado
     
  4. Baderous

    Baderous Banido

    Podes usar o método Math.pow(...) para calcular as sucessivas potências. Dentro do for, chamas esse método com os devidos parâmetros e somas o resultado ao acumulador.
     
  5. docpt

    docpt Power Member

    Pois ja me falaram desse metodo, mas falei com o sr. engenheiro ele disse para eu ir de forma diferente.

    cumps
     
  6. Baderous

    Baderous Banido

    LOL, falaste com o Sócrates? :lol:

    Diz ao teu professor que não vale a pena estar a reinventar a roda. Toda a gente sabe que x^i = x*x*x*x .... i vezes. Ele deve querer que tu multipliques.
     
  7. docpt

    docpt Power Member


    pois..amanha falo com o professor a ver se ele ajuda...depois amanha digo alguma coisa.
    cumps e obg
     
  8. arkannis

    arkannis Power Member

    O professor de facto tem razão...
    Não há necessidade de usar o Math.pow. Isto porque ele vai sempre percorrendo as potencias sequencialmente, portanto, se usares uma variável para acumular a potencia actual consegues um método bem mais eficaz.
    Qualquer coisa do género, para potências de base b:
    int k = b; e depois dentor do ciclo somas k a variavel soma e fazes k = k * b.
    Não te esqueças do 2^0 que não consegue ser abrangido por esta logica, logo tens que te lembrar dele e trata-lo a parte.

    Espero que tenhas percebido, é bastante simples!
     
    Última edição: 9 de Novembro de 2008
  9. docpt

    docpt Power Member


    outra duvida o ciclo é while (i<k)
    k=k*b;

    k++

    soma=soma+k
     
  10. arkannis

    arkannis Power Member

    Nada disso.
    Tem que ser qualquer coisa do genero while (i < e)
    Em que e é o expoente até onde é para ir (3 no teu exemplo inicial)
    E o k obviamente que nao incrementa, mas sim o e.

    Com uma duvida dessas só posso deduzir que nao percebeste nada do que eu disse, portanto para um bocado e tenta reflectir sobre o assunto lol.
     
  11. Elabore um programa que leia do teclado três valores inteiros maiores que zero, e determine se há um operador ( *, /, +, - ) que aplicado a qualquer permutação dos três valores lidos produza uma expressão válida. Todas as expressões válidas devem aparecer no ecrã. Caso não exista uma expressão válida deve escrever no ecrã ”Nao existe nenhuma expressao”.

    e a entrada e saida tem que ser esta...


    <SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Introduza 3 valores inteiros maiores que zero:
     
  12. tou com problemas num programa java alguem me ajuda?

    Elabore um programa que leia do teclado três valores inteiros maiores que zero, e determine se há um operador ( *, /, +, - ) que aplicado a qualquer permutação dos três valores lidos produza uma expressão válida. Todas as expressões válidas devem aparecer no ecrã. Caso não exista uma expressão válida deve escrever no ecrã ”Nao existe nenhuma expressao”.

    e a entrada e saida tem que ser esta...


    <SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Introduza 3 valores inteiros maiores que zero:
     
  13. lool, o objectivo de um trabalho, é seres tu a faze-lo e não os outros.
    Vou-te avisar que conheço gente que se lixou à pala de por os trabalhos na net para outros resolverem. Todos os programas são simples, e todos têm exemplos na página da cadeira, mas é mais fácil perguntar do que pesquisar. Tenham alguma dignidade....
    Borowsky esse programa é exactamente igual ao do 1º trabalho, tens é de por tudo dentro de um ciclo, e arranjar uma função que troque os valores.

     
  14. sim eu sei mas eu tenho problemas é arranjar uma funçao que troque os numeros ... como é k eu faço?? So precisava disso para ajudar...
     
  15. lool, se fosses as aulas sabias xDDD.
    e facil, arranjas uma variavel aux, depois, metes o valor do 1º valor do array ai, depois trocas, genero array[1]=array[2], etc
     
  16. eu vou ás aulas pa... xD so k pronto ja escrevi mt codigo desde o 10 ano ja tou cansado! xD
     
  17. olha uma cena ja fiz o programa todo agora falta chamar no main o metodo... epa isso é uma cena k para mim o meu stor explica mal epa... como é k faço isso e k outras instruçoes tenho k fazer ai??? ajudem-me sff
     
  18. ja fiz a cena do metodo agora da-me um erro muita estupido vou passar para aki o codigo e dps digo qual é o erro...

    import java.util.Scanner;
    public class Operadores2 {

    public static int GeraOperadores(int[] n0) {
    int[] aux = new int [n0.length];
    int j = 0;
    for (int i=0; i<n0.length; i++) {
    if (n0+n0==n0){
    System.out.println(n0 + " + " + n0 + " = " + n0);
    aux[j++] = n0;
    }
    else if (n0-n0==n0){
    System.out.println(n0 + " - " + n0 + " = " + n0);
    aux[j++] = n0;
    }

    else if (n0/n0==n0){
    System.out.println(n0 + " / " + n0 + " = " + n0);
    aux[j++] = n0[i];
    }

    else if (n0[i]*n0[i]==n0[i]){
    System.out.println(n0[i] + " * " + n0[i] + " = " + n0[i]);
    aux[j++] = n0[i];
    }

    else {
    System.out.println("Sem expressao");
    }
    }
    n0 = aux;
    }


    public static void main(String [] args) {
    int [] n0 = new int [3];
    int total = Operadores2.GeraOperadores(n0);
    System.out.println("Introduza o primeiro valor = ");
    System.out.println("Introduza o segundo valor = ");
    System.out.println("Introduza o terceiro = ");
    Operadores2.GeraOperadores(n0);
    }
    }


    Operadores2.java:33: missing return statement
    }[/i][/i][/i][/i][/i][/i][/i][/i]
     
  19. Ve la as tuas pms.
    EDIT: mensagens privadas
     
    Última edição: 11 de Novembro de 2008

Partilhar esta Página