Avatar billede michelle_mikkelsen Nybegynder
09. december 2002 - 21:24 Der er 9 kommentarer og
1 løsning

'class' or 'interface' expected

Jeg ved ik helt hvad det er jeg gør forkert, og jeg kan simpelthen ikke fejlen selv, håber en anden kan se den.
Der må gerne laves om i koden, bare den kommer til at kompilere og kører korrekt!!

import java.util.Random;
import cs1.*;

public class Forkortbroker
{
    public static void main (String[] args)
      {
            Random tilfældig1 = new Random();

            int sub1, sub2, antaloperander;
            int sum, indtastsvar;
            int resultat;
            int tæller=0;
            int AntalOpgaver,Operander,NumeriskVaerdi;
            int naev,tael;
            int taeller,naevner;
            char fortegn;
            char operator;
            String s_operator;


            public void Forkortbroker(int a, int o, int n, char f,String g)

            {

                AntalOpgaver = a;
                Operander = o;
                NumeriskVaerdi = n;
                fortegn = f;
                s_operator = g;
          }


            public void broek(String svar)
            {
                String foerste="", anden="";

                int tal1 = svar.indexOf('/');

                foerste.substring(0, tal1);
                anden.substring(tal1, svar.length());

                int taeller = Integer.parseInt(foerste);
                int naevner = Integer.parseInt(anden);
            }


            public void testRes(int taeller, int naevner, int sub1, int sub2)
            {
                if(sub1 == taeller && sub2 == naevner)
                    System.out.println("rigtig");
                else
                    System.out.println("forkert");
            }


            public void printCalculations()
            {
                for(int i=0;i<AntalOpgaver;i++)
                  {
                antaloperander = tilfældig1.nextInt(Operander) + 2;
                }

                    if (fortegn == '+')
                    {
                    sub2 = tilfældig1.nextInt(NumeriskVaerdi ) + 1;
                    sub1 = tilfældig1.nextInt(NumeriskVaerdi ) + 1;


                        if (antaloperander == 2)
                        {

                            if (operator == '/')

                                System.out.println (sub1+"/"+sub2+ "=");
                                sum=sub1/sub2;
                        }


                            recieveInput(sum);
                    }

            }

                public void recieveInput (int summ)
                {
                    resultat=Keyboard.readInt();
                    if (resultat == summ)
                    {
                        tæller++;
                        System.out.println("                      Rigtigt");
                    }

                        else
                        {

                            System.out.println("                            Forkert");
                        }
        }        }
}
Avatar billede arne_v Ekspert
09. december 2002 - 21:28 #1
Du har erklæret dine metoder inden i main.

De skal erklæres udenfor main.
Avatar billede arne_v Ekspert
09. december 2002 - 21:29 #2
Har disky iøvrigt ikke svaret på det spørgsmål en gang ?
Avatar billede magoo20000 Nybegynder
09. december 2002 - 21:32 #3
public void Forkortbroker(int a, int o, int n, char f,String g){
                AntalOpgaver = a;
                Operander = o;
                NumeriskVaerdi = n;
                fortegn = f;
                s_operator = g;
}
I denne metode skal 'void' fjernes - det er vel din konstruktør.
Placer dine deklareringer udenfor main-metoden.
Avatar billede arne_v Ekspert
09. december 2002 - 21:32 #4
Din constructor skal ikke have nogen type (altså ikke void).

Flere af de lokale variable i main skal formentlig flyttes
op i klassen, da du refererer til dem i de andre metoder.
Avatar billede michelle_mikkelsen Nybegynder
09. december 2002 - 21:33 #5
jo!! men jeg har også kun prøvet hele dagen, men ka altså ikke finde ud af det, ka du ikke lige hurtig demonstrere det, så jeg bedre kan sætte mig ind i det!!
Mange tak!!
Avatar billede arne_v Ekspert
09. december 2002 - 21:37 #6
Følgende burde compile:

package test;

import java.util.Random;
import cs1.*;

public class Forkortbroker {
    int AntalOpgaver, Operander, NumeriskVaerdi;
    char fortegn;
    String s_operator;
    int sub1, sub2, antaloperander;
    int resultat;
    Random tilfældig1 = new Random();

    int sum, indtastsvar;
    int tæller = 0;
    int naev, tael;
    int taeller, naevner;
    char operator;
    public static void main(String[] args) {
    }

    public Forkortbroker(int a, int o, int n, char f, String g) {

        AntalOpgaver = a;
        Operander = o;
        NumeriskVaerdi = n;
        fortegn = f;
        s_operator = g;
    }

    public void broek(String svar) {
        String foerste = "", anden = "";

        int tal1 = svar.indexOf('/');

        foerste.substring(0, tal1);
        anden.substring(tal1, svar.length());

        int taeller = Integer.parseInt(foerste);
        int naevner = Integer.parseInt(anden);
    }

    public void testRes(int taeller, int naevner, int sub1, int sub2) {
        if (sub1 == taeller && sub2 == naevner)
            System.out.println("rigtig");
        else
            System.out.println("forkert");
    }

    public void printCalculations() {
        for (int i = 0; i < AntalOpgaver; i++) {
            antaloperander = tilfældig1.nextInt(Operander) + 2;
        }

        if (fortegn == '+') {
            sub2 = tilfældig1.nextInt(NumeriskVaerdi) + 1;
            sub1 = tilfældig1.nextInt(NumeriskVaerdi) + 1;

            if (antaloperander == 2) {

                if (operator == '/')
                    System.out.println(sub1 + "/" + sub2 + "=");
                sum = sub1 / sub2;
            }

            recieveInput(sum);
        }

    }

    public void recieveInput(int summ) {
        resultat = Keyboard.readInt();
        if (resultat == summ) {
            tæller++;
            System.out.println("                      Rigtigt");
        } else {

            System.out.println("                            Forkert");
        }
    }
}
Avatar billede arne_v Ekspert
09. december 2002 - 21:38 #7
Men bemærk at main er tom d.v.s. at den gør absolut intet.

Der skal fyldes noget logik på i main.
Avatar billede magoo20000 Nybegynder
09. december 2002 - 21:38 #8
import java.util.Random;
import cs1.*;

public class Forkortbroker
{
 
            Random tilfældig1 = new Random();
            int sub1, sub2, antaloperander;
            int sum, indtastsvar;
            int resultat;
            int tæller=0;
            int AntalOpgaver,Operander,NumeriskVaerdi;
            int naev,tael;
            int taeller,naevner;
            char fortegn;
            char operator;
            String s_operator;


    public static void main (String[] args){
    Forkortbroker fb = new Forkortbroker(20,10,2,'a',"ab");
    ....
 
    }

            public Forkortbroker(int a, int o, int n, char f,String g)

            {

                AntalOpgaver = a;
                Operander = o;
                NumeriskVaerdi = n;
                fortegn = f;
                s_operator = g;
          }


            public void broek(String svar)
            {
                String foerste="", anden="";

                int tal1 = svar.indexOf('/');

                foerste.substring(0, tal1);
                anden.substring(tal1, svar.length());

                int taeller = Integer.parseInt(foerste);
                int naevner = Integer.parseInt(anden);
            }


            public void testRes(int taeller, int naevner, int sub1, int sub2)
            {
                if(sub1 == taeller && sub2 == naevner)
                    System.out.println("rigtig");
                else
                    System.out.println("forkert");
            }


            public void printCalculations()
            {
                for(int i=0;i<AntalOpgaver;i++)
                  {
                antaloperander = tilfældig1.nextInt(Operander) + 2;
                }

                    if (fortegn == '+')
                    {
                    sub2 = tilfældig1.nextInt(NumeriskVaerdi ) + 1;
                    sub1 = tilfældig1.nextInt(NumeriskVaerdi ) + 1;


                        if (antaloperander == 2)
                        {

                            if (operator == '/')

                                System.out.println (sub1+"/"+sub2+ "=");
                                sum=sub1/sub2;
                        }


                            recieveInput(sum);
                    }

            }

                public void recieveInput (int summ)
                {
                    resultat=Keyboard.readInt();
                    if (resultat == summ)
                    {
                        tæller++;
                        System.out.println("                      Rigtigt");
                    }

                        else
                        {

                            System.out.println("                            Forkert");
                        }
              }       
}
Avatar billede dittmer Nybegynder
10. december 2002 - 14:44 #9
På hvilket studium skal der snart afleveres hjemmeopgaver?
Avatar billede michelle_mikkelsen Nybegynder
10. december 2002 - 17:19 #10
Datamatikker!!! Hvorfor!!!!!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester