Página Inicial do Fórum > Java Básico

Soma numa Array



Criar novo tópico   Responder tópico


  1. Luciinha
    Posts:11


    Comment Arrow

    Publicado em: 24/05/2012 13:34:16

    Ola,
    Preciso de uma ajudinha..Estou fazendo um programa no qual o usuario digita um valor x.
    Esse valor é a Quantidade de threads que sera gerada.
    Dai por exemplo, o numero é 2, 323232 e 216767. Preciso fazer uma soma dos numeros 3+2+3+2+3+2 e e do 2+1+6+7+6+7. Mas estou um pouco perdida.Alguem poderia me ajudar ?

    Agradeço a ajuda![color=red][/color]




  1. jeckson
    Posts:276


    Comment Arrow

    Publicado em: 24/05/2012 13:49:50

    Luciinha
    Ola,
    Preciso de uma ajudinha..Estou fazendo um programa no qual o usuario digita um valor x.
    Esse valor é a Quantidade de threads que sera gerada.
    Dai por exemplo, o numero é 2, 323232 e 216767. Preciso fazer uma soma dos numeros 3+2+3+2+3+2 e e do 2+1+6+7+6+7. Mas estou um pouco perdida.Alguem poderia me ajudar ?

    Agradeço a ajuda![color=red][/color]




    Bom a primeira coisa voce devera saber retirar os digitos. voce pode fazer isso através de comando como o substring() do String, através de um for usando o charAt() ou também usando resto da divisão com divisoões consecutivas.


    Acredito que para este problema seja melhor a opção de charAt().



    depois que separar os elementos é só soamr.
    _________________


    Somos o que repetitidamente fazemos, portanto a excelencia não é um feito, mas sim um habito




  1. Luciinha
    Posts:11


    Comment Arrow

    Publicado em: 24/05/2012 13:34:16

    Ai, desculpa acho que de tanto pensar fiquei muito perdida...o problema eh esse : – O usuário digitará a quantidade n de números (máximo
    10).
    • Cada um desses números será uma thread.
    • Se o usuário digitar 0 (zero), o programa deverá ser encerrado.

    – Em seguida, o programa deverá gerar aleatoriamente os n
    números, que podem variar de 1 a 10.
    – Cada thread deve calcular e mostrar o somatório de todos
    os números que compreendem o intervalo de 0 ao número
    atribuído a ela. Também deve ser exibida a sequencia do
    somatório. Ex.:
    • Número atribuído à thread (4) – Somatório: 0+1+2+3+4 = 10
    Blz... o que consegui fazer apagando e refazendo...eh isso...




  1. MathewsMotta
    Posts:1020


    Comment Arrow

    Publicado em: 24/05/2012 14:15:49

    Usando charAt:


    Vc vai receber esse numero (323232), transformar em string(String a = resultado e fará um for para extrair os números, 1 a 1. A idéia é essa:


    PS: Não testado


    _________________
    ION, you're mine.




  1. churq
    Posts:9


    Comment Arrow

    Publicado em: 24/05/2012 16:26:38

    voce pode fazer o seguinte!

    joga num while! vce cria um contador! enquanto o contador
    for menor ou igual a n (numero da thread escolhida pelo usuario) vce incrementa o contador.

    cria uma variavel ex: result que receba o contador + o result

    fecha o while!

    depois vce pega este result, atribui ele mesmo menos a thread menos 1 ex e manda imprimir o resultado... da certo fazendo isto!




  1. Luciinha
    Posts:11


    Comment Arrow

    Publicado em: 24/05/2012 13:34:16

    Ola.. voce se refere a isso:


    package Numero1;

    import java.util.Random;
    import java.util.Scanner;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    /**
    *
    * @author Aluno
    */
    public class Numero1 {

    private static int cont;
    private static int result;

    public static void main(String[] args) {
    // final int Numero_Threads = N;



    Random random = new Random();
    Scanner input = new Scanner(System.in);

    System.out.print("Digite a Quantidade de Threads : ");
    int Quant_Threads = input.nextInt();//mostra a Quantidade
    if (Quant_Threads > 10) {//se o numero eh maior que 10, Digitar novamente!
    System.out.print("Quantidde Excedida!! "
    + " Digite Novamente...");
    Quant_Threads = input.nextInt();
    if (Quant_Threads == 0) {//se for 0 , o programa nao faz mais nada
    System.exit(0);

    } else {
    for (int i = 0; i < Quant_Threads; i++) {
    System.out.println(random.nextInt());

    while (cont <= Quant_Threads) {
    result = result + cont;
    }
    result = result - Quant_Threads - 1;
    System.out.println(result);


    }
    }
    }
    }
    }
    ....nao deu muitoo certoo... so se eu to fazendo algo errado!!..




  1. churq
    Posts:9


    Comment Arrow

    Publicado em: 24/05/2012 16:26:38

    1º o teu primeiro if esta fechando no fim do programa!
    ou seja se o if for true ele vai para o fim do if!

    2º vce não esta incrementando o contador! então ele sempre será 0 o valor atribuido.

    agora! a logica do while do seu programa num entendi bem o que vce quer não!! para que usar random

    eu retirei este for que não esta servindo para nada!
    e dentro do while

    imprime o primeiro numero depois incrementa o contador e depois pega o resultado atribui o contador + o proprio resultado.. isso é só para apresentar os numeros


    sai dor for e depois fiz a conta...

    pronto ... essas foi a modificações

    pelo que eu pude entender o que vce queria era isso!!


    fiz umas modificações no seu codigo!

    pelo que entendi na sua pergunta o programa deveria fazer isso!!

    esta ai! espero ter ajudado!




  1. Luciinha
    Posts:11


    Comment Arrow

    Publicado em: 24/05/2012 13:34:16

    Voce tem razão! Fiz varias coisas erradas ..e nem percebi. O codigo esta muito boom... so eu nao sou me explicar direito (eu acho). Falta um pequeno detalhe...que realmente nao sei fazer...o problema esta aqui : – O usuário digitará a quantidade n de números (máximo 10).
    • Cada um desses números será uma thread.
    • Se o usuário digitar 0 (zero), o programa deverá ser encerrado.
    – Em seguida, o programa deverá gerar aleatoriamente os n números, que podem variar de 1 a 10.
    – Cada thread deve calcular e mostrar o somatório de todos os números que compreendem o intervalo de 0 ao número atribuído a ela. Também deve ser exibida a sequencia do somatório. Ex.:
    • Número atribuído à thread
    (4) – Somatório: 0+1+2+3+4 = 10


    Pelo o que eu entendi, eu digito um numero X. dai eh escolhido um numero de 0 a 10 para cada numero ate o numero X. E dai sim e feita essa soma que voce fez bem certinha!!.. voce poderia me ajudar nessa parte tbm ? nao faço a minima ideia...Obrigado




  1. jeckson
    Posts:276


    Comment Arrow

    Publicado em: 24/05/2012 13:49:50

    Bom vi que você está se esforçando para aprender ent~çao veja o codigo abaixo, peguei o exemplo do colega e apenas criei um metodo que executa threads e criei o numero randomico que antigamente não tinha.


    _________________


    Somos o que repetitidamente fazemos, portanto a excelencia não é um feito, mas sim um habito




  1. Luciinha
    Posts:11


    Comment Arrow

    Publicado em: 24/05/2012 13:34:16

    Muito obrigado pela Força...Acrescentei alguns detalhes e ficou perfeito!!
    Valeuu mesmo!!

    Tenho um outro código, que estou fazendo , eh bem parecido. mas estou fazendo algo de errado na multiplicação...(tabuada).Segue abaixo o que estou fazendo.


    –O usuário digitará a quantidade n de números (máximo 10).
    •Cada um desses números será uma thread.
    •Se o usuário digitar 0 (zero), o programa deverá ser encerrado.
    –Em seguida, o programa deverá gerar aleatoriamente os n números, que podem variar de 1 a 10,
    e atribuir uma para cada thread.
    –Cada thread deverá exibir a tabuada do número passado a ela.
    –Observação: as threads devem executar na ordem em que foram criadas.
    –As outras threads só poderão mostrar seus resultados quando a thread anterior tiver exibido
    seu resultado.


    package Numero2;

    import java.util.Scanner;


    /**
    *
    * @author Luciivane
    */
    public class Numero2 {

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.print("Digite um numero: ");
    int Quantidade_Threads = input.nextInt();

    for (int i = 0; i < Quantidade_Threads; i++) {
    int aleatorio = (int) (1 + Math.random() * 10);// METODO QUE RETORNA UM NUMERO RANDOMICO DE 0 A 10
    executaThreads(aleatorio);
    }


    }

    private static void executaThreads(int Quantidade_Threads) {

    int n = 0;
    if (Quantidade_Threads > 10) {
    System.exit(0);
    }
    if (Quantidade_Threads <= 0) {
    System.exit(0);
    }
    while(n<=Quantidade_Threads){
    for (int j = 1; j <=n; j++) {
    for (int i = 1; i <= 10; i++) {
    System.out.println(j + " x " + i + " = " + j * i);

    }
    System.out.print("\n");
    }
    }
    }
    }




    O erro esta ali nesses ultimos "for"...nao estou encontrando o erro!




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico