Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problemi con Java

  1. #1

    Problemi con Java

    Ciao a tutti,mi sto cimentando in un metodo che data un'espressione mi restituisce il risultato.
    Però se io gli passo "(2*3)^2" funzione...mentre se gli passo"(2*(3*2))^2" mi da l'errore "java.lang.OutOfMemoryError: Java heap space".Ho provato a cambiare la memoria della JVM,ma niente da fare.Il codice,salvo errori che non ho trovato sembra apposto,quindi non so come andare avanti.
    Sapete dirmi qualcosa?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Posta il codice e fai spostare la discussione nel sottoforum dedicato a Java
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    non è molto pulito comunque metto solo la parte dove mi da il problema

    //Scorro l'espressione
    for(int i=0;i<espressione.length();i++)
    {

    if(espressione.charAt(i)=='^')
    {
    pos=i;
    if(contaApici==0){
    contaApici++;

    while(pos!=0)
    {
    pos--;
    if(espressione.charAt(pos)=='(')
    contaAperta++;
    if(espressione.charAt(pos)==')')
    contaChiusa++;
    }
    //se siamo dentro una parentesi
    if(contaChiusa!=contaAperta)
    {
    contaApici=0;
    contaAperta=-1;
    contaChiusa=-1;
    potenza--;
    //non lo siamo
    }else
    {
    contaAperta=1;
    contaChiusa=1;
    }
    pos=i;
    if(contaChiusa==contaAperta && contaAperta!=-1){
    contaAperta=0;
    contaChiusa=0;
    //se il 1° operando è fra parentesi applico la ricorsione
    if(espressione.charAt(i-1)==')')
    {
    pos--;
    //while(espressione.charAt(pos)!='(')
    while(contaAperta!=1)
    {
    pos--;
    if(espressione.charAt(pos)=='(')
    contaAperta++;
    if(espressione.charAt(pos)==')')
    contaAperta--;

    }


    contaChiusa=0;
    contaAperta=0;
    for(int j=pos+1;j<i-1;j++)
    {
    app+=espressione.charAt(j);
    }
    System.out.println(app);
    eliminata+="("+app+")^";
    n1=valuta(app);
    app="";
    pos=i;

    }

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.