Avatar billede convinius Nybegynder
23. oktober 2002 - 22:36 Der er 28 kommentarer

java toturiel

Hej folkens,

Jeg sidder og laver nogen små tutoriels, jeg har fået.

Det går ud på at rette programmet så det er fejlfrit. Man må ikke kunne indtaste 0 eller det der er under 0.

Den ene del af programmet i hvertfald.

en jeg kan ikke få den til at reagere, i får først den originale stykke. så næste gang det jeg har tilføjet.
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:36 #1
import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a, b, c;
        int N;
        int tast;


        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        a= Keyboard.readInt();
        b= Keyboard.readInt();
        c= Keyboard.readInt();





        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        N= Keyboard.readInt();

        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= N; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:37 #2
Jeg har så tilføjet ...det her:
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:37 #3
if (tast<=0);

        {
            System.out.println("Du kan desværre ikke indtaste desværre");

        }
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:37 #4
i får den i en hel sammenhæng.

import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a, b, c;
        int N;
        int tast;

        tast = Keyboard.readInt();


        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        a= Keyboard.readInt();
        b= Keyboard.readInt();
        c= Keyboard.readInt();


        if (tast<=0);

        {
            System.out.println("Du kan desværre ikke indtaste desværre");

        }




        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        N= Keyboard.readInt();

        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= N; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:38 #5
hvad gør jeg galt? - kan simpelthen ikke se det!  :-(
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:40 #6
if (tast<=0);

        {
            System.out.println("Du kan desværre ikke indtaste `" tast + "` desværre");

        }
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:43 #7
hmm...det virker sgu fint, tænkte ikke over at man skulle indtaste alle tal først. men men.....den burde stoppe der. Er det ikke noget om at man skal skrive break;
Avatar billede convinius Nybegynder
23. oktober 2002 - 22:44 #8
hehe det man finder ud af en masse ting ved at skrive til sig selv.... :-)
Avatar billede erikjacobsen Ekspert
23. oktober 2002 - 22:57 #9
I en if må du ikke skrive
if (tast<=0);
{
        System.out.println("Du kan desværre ikke indtaste `" tast + "` desværre");
}

men

if (tast<=0)
{
        System.out.println("Du kan desværre ikke indtaste `" tast + "` desværre");
}

det semikolon ville afslutte din if for tidligt
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:01 #10
okay cool....det retter jeg lige.
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:04 #11
import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a, b, c;
        int N;
        int tast;



        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        a= Keyboard.readInt();
        b= Keyboard.readInt();
        c= Keyboard.readInt();

tast=Keyboard.readInt();

        if (tast<=0)

        {
            System.out.println("Du kan desværre ikke indtaste  et tal der er <=0, desværre");

        }




        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        N= Keyboard.readInt();

        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= N; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede erikjacobsen Ekspert
23. oktober 2002 - 23:04 #12
(resten har jeg ikke taget stilling til ... det er sikkert godt
du selv leger med det)
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:07 #13
problematikken, at den nu beder om tal fra 4 funktioner....hvilket jeg ikke helt er glad for!

a= Keyboard.readInt();
b= Keyboard.readInt();
c= Keyboard.readInt();
tast=Keyboard.readInt();
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:07 #14
tast=Keyboard.readInt();

skulle bare være en definition.
Avatar billede soreno Praktikant
23. oktober 2002 - 23:08 #15
lav dog noget indentation, det er jo svært at overskue hvad du mener her:
for (int i= 1; i<= N; i++)    //gentag fra 1 til N
if (i% a!= 0)                //undersøg om i er delelig med a
if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
System.out.print(i + " ");    //hvis ikke, udskriv i

jeg synes ihvertfald det giver mere mening at skrive:
for (int i= 1; i<= N; i++)
  if (i% a!= 0)
    if (i% b!= 0)
      if (i% c!= 0)
        System.out.print(i + " ");

iøvrigt bør du heller ikke bruge store bogstaver når du definerer variabler (eks. "N").
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:11 #16
hmmm....der står det samme?
Avatar billede kennie_nm Nybegynder
23. oktober 2002 - 23:32 #17
jeg nød meget de tutorials der er på javaranch (hvis du har mod på flere)
Avatar billede soreno Praktikant
23. oktober 2002 - 23:35 #18
jow, der står det samme - men det kræver 3 gange så megen tid at forstå det øverste.
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:39 #19
javaranch? - haha jeg sidder og vil få den til at starte forfra hvis jeg giver den <=0
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:44 #20
jeg ved så meget at der skal være en for løkke...... i får lige mit "nye" program.
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:45 #21
import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a, b, c;
        int N;
        int tast;



        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        a= Keyboard.readInt();
        b= Keyboard.readInt();
        c= Keyboard.readInt();
       

        for (a<=0)

        {
            System.out.println("Du kan desværre ikke indtaste  et tal der er <=0, desværre");
           
        }




        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        N= Keyboard.readInt();

        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= N; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede soreno Praktikant
23. oktober 2002 - 23:47 #22
for (a<=0)

        {
            System.out.println("Du kan desværre ikke indtaste  et tal der er <=0, desværre");
         
        }

skal vist være en if

if(a<=0=
{
  System.out.println("Fallitlyd fra lykkehjulet");
}
Avatar billede soreno Praktikant
23. oktober 2002 - 23:48 #23
if(a<=0) skulle der stå
Avatar billede convinius Nybegynder
23. oktober 2002 - 23:59 #24
fik leget videre..

import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a, b, c;
        int N;



        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        for (boolean asand = false; asand == false; )
        {
            a= Keyboard.readInt();
            if (a > 0)
            {
                asand = true;
            }
            else
            {
                System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
            }
        }
       
       
                for (boolean asand = false; asand == false; )
                {
                    b= Keyboard.readInt();
                    if (a > 0)
                    {
                        asand = true;
                    }
                    else
                    {
                        System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
                    }
        }
       
       
               
                for (boolean asand = false; asand == false; )
                {
                    c= Keyboard.readInt();
                    if (a > 0)
                    {
                        asand = true;
                    }
                    else
                    {
                        System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
                    }
        }
       
   
           

        for (int nummer=0; nummer < 1; nummer++)
       
        if(a<=0)

        {
            System.out.println("Du kan desværre ikke indtaste  et tal der er <=0, desværre");
           
        }




        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        N= Keyboard.readInt();

        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= N; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede convinius Nybegynder
24. oktober 2002 - 00:02 #25
men jeg får følgende fejl: øv bøv

C:\java\Ikkedelelig.java:33: variable a might not have been initialized
                    if (a > 0)
                                            ^
C:\java\Ikkedelelig.java:48: variable a might not have been initialized
                    if (a > 0)
                                            ^
C:\java\Ikkedelelig.java:63: variable a might not have been initialized
        if(a<=0)
                  ^
C:\java\Ikkedelelig.java:78: variable a might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                        ^
C:\java\Ikkedelelig.java:78: variable b might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                                ^
C:\java\Ikkedelelig.java:78: variable c might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                                            ^
6 errors

Tool completed with exit code 1
Avatar billede convinius Nybegynder
24. oktober 2002 - 00:03 #26
fik lige rettet 2 af dem

C:\java\Ikkedelelig.java:63: variable a might not have been initialized
        if(a<=0)
                  ^
C:\java\Ikkedelelig.java:78: variable a might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                        ^
C:\java\Ikkedelelig.java:78: variable b might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                                ^
C:\java\Ikkedelelig.java:78: variable c might not have been initialized
        System.out.println("tal mellem 1 og "+ N+ ", der ikke er delelige med "+a +", "+ b+ " og "+ c+ ":");
                                                                                                            ^
4 errors
Avatar billede convinius Nybegynder
24. oktober 2002 - 00:30 #27
import cs1.*;
class Ikkedelelig
{
    //main-metoden indlæser 4 heltal (a, b, c og N) fra tastaturet og udskriver alle heltal
    //fra 1 til N, der ikke er delelige med hverken a, b eller c

    public static void main (String[] args)
    {
        int a=0, b=0, c=0;
        int n=0;



        //indlæs a, b og c
        System.out.print("Indtast de 3 tal, som de resulterende tal ikke må være delelige med: ");
        for (boolean asand = false; asand == false; )
        {
            a= Keyboard.readInt();
            if (a > 0)
            {
                asand = true;
            }
            else
            {
                System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
            }
        }


        for (boolean bsand = false; bsand == false; )
        {
            b= Keyboard.readInt();
            if (b > 0)
            {
                bsand = true;
            }
            else
            {
                System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
            }
        }



        for (boolean csand = false; csand == false; )
        {
            c= Keyboard.readInt();
            if (c > 0)
            {
                csand = true;
            }
            else
            {
                System.out.println("Du kan desværre ikke indtaste et tal der er <= 0 eller et bogstav, desværre");
            }
        }






        //indlæs N
        System.out.print("Indtast max-værdien for de resulterende tal: ");
        for (boolean nsand = false; nsand == false; )
        {
            n= Keyboard.readInt();
            if (n > 0 && n > a && n > b && n > c)
            {
                nsand = true;
            }
            else
            {
                System.out.println("Max-værdien kan ikke være et bogstav og skal være mere end de delelige tal, desværre");
            }
        }
        //udskriv overskrift
        System.out.println("tal mellem 1 og "+ n+ ", der ikke er delelige med "+ a+", "+ b+ " og "+ c+ ":");

                                    //udskriv alle tal mellem 1 og N, som ikke er delelige med a, b og c
        for (int i= 1; i<= n; i++)    //gentag fra 1 til N
        if (i% a!= 0)                 //undersøg om i er delelig med a
        if (i% b!= 0)                //hvis ikke: undersøg om i er delelig med b
        if (i% c!= 0)                //hvis ikke: undersøg om i er delelig med c
        System.out.print(i + " ");    //hvis ikke, udskriv i

}
}
Avatar billede convinius Nybegynder
24. oktober 2002 - 00:30 #28
nu virker det sgu
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