Array's vullen

Status
Niet open voor verdere reacties.

Sven2007

Gebruiker
Lid geworden
8 feb 2007
Berichten
113
Ik wil in mijn rekenmachine die ik heb gemaakt een geheugen voorzien. Ik werk in met een string ingave. (bv: setm 2 23) ==> dit wil zeggen op geheugenplaats 2 het getal 23 plaatsen. Ik moet ergens de array op een verkeerde manier opvullen.

Ik declareer de array bovenaan de class:

static int geheugen[];

en ik heb volgende methode aangemaakt(tijdens deze methode loopt het fout)

public void memory() {//laden van geheugen
int geheugenplaats = Integer.parseInt(ingave.substring(5,1));

geheugen[geheugenplaats] = Integer.parseInt(ingave.substring(7,ingave.length()-7));

invoer();
}
 
Kan je eens de complete code neerzetten van wat je al hebt van het geheugen?
Of is dit alles? :)

voor getten en setten van het geheugen zou ik zoiets doen:
Code:
//global variable
public int[] geheugen = int[10];

//methodes:
public void setm(int plaats, int getal){
   if(plaats > 0 && plaats < 11){
      geheugen[plaats-1] = getal; //-1 omdat een array altijd bij 0 begint.
   }
}

public int getm(int plaats){
   if(plaats > 0 && plaats < 11){
      return geheugen[plaats-1];
   }
}

Zo heb je 10 geheugenplaatsen.
Als je gebruik wil maken van een array, dan moet je deze een grootte geven, want je kan niet iets in een array zetten als hij al niet bestaat :)
Als je 'on the run' elementen toe wil voegen, dan kan je gebruik maken van een ArrayList.
 
Laatst bewerkt:
Hoe kan ik dan een array met grootte declareren. Krijg steeds een foutmelding als ik het zoals in jouw voorbeeld doe...


Dit is de volledige code :

Code:
public class Calculator {

    static String ingave;
    static int getal;
    static int getal2;
    static String operator;
    static int X;


    public void inleiding() {
        System.out.println ("Welkom bij de Console Calculator");
        System.out.println("Een realisatie van Sven Sergeant (1 ICT 7)");
        System.out.println("Geef 'help' voor meer informatie omtrent het gebruik");
        System.out.println("----------------------------------------------------");
        invoer();
      }

      public void invoer() {
        System.out.print("calc>");
        ingave = Stream.readString();
        controleerinvoer();
    }

    public void controleerinvoer() {

        if(ingave.equals("help")){
            help();
        }else if (ingave.substring(0,4).equals("setm")){
            memory();
        }else{
            berekening();
        }
    }

    public void help() {
            System.out.println("optie help");
            invoer();

    }

    public void memory() {
            System.out.println("optie memory");
            invoer();
    }

    public void berekening() {
            String arr[] = ingave.split(" ");
             for(int i=0; i < arr.length-1; i=i+2) {

                if (i==0){
                    getal = Integer.parseInt(arr[i]);
                    operator = arr[i+1];
                    getal2 = Integer.parseInt(arr[i+2]);
                    bewerking();
                }else{
                    getal = X;
                    operator = arr[i+1];
                    getal2 = Integer.parseInt(arr[i+2]);
                    bewerking();
                }
             }
             System.out.println(X);
             invoer();


    }
    public void bewerking() {
            if (operator.equals ("+")){
                    X = getal + getal2;
            }else if(operator.equals("-")){
                    X = getal - getal2;
            }else if(operator.equals("*")){
                    X = getal * getal2;
            }else if(operator.equals("/")){
                    X = getal / getal2;
            }else if(operator.equals("%")){
                    X = getal % getal2;
            }






    }



    public static void main (String[] args) {
      Calculator Object = new Calculator();
      Object.inleiding();
    }
}
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan