Hallo Forum,
das ist nun mein erster Beitrag, weswegen ich mich zuerst ein wenig vorstellen möchte. Ich bin (fast) 15 Jahre alt und komme aus dem Umland von Berlin. Ich habe keine Vorerfahrungen mit anderen Programmiersprachen, jedoch arbeite ich viel mit dem Computer.
"Du bist fast 15. Habt ihr in der Schule kein Java?"
In der Schule werden wir uns Java erst in mehr als einem Jahr anschauen. Zurzeit behandelt unser Info-Wahlpflichtkurs die Sprache Scratch, weswegen ich für dieses Jahr doch lieber zum Kurs Sport gegangen bin.
"Warum Sport, wenn du doch so gerne mit dem PC arbeitest?"
Nunja, ich spiele 3x in der Woche Fußball, um mich sportlich ein wenig zu bewegen. Und da mich alle anderen Kurse bis auf Sport und Informatik nicht angesprochen haben, fiel meine Entscheidung auf Sport.
"Und wie kommst du dann auf Java?"
Wie schon gesagt wird Java ein Thema im nächsten Schuljahr sein. Um Vorwissen zu erlangen, möchte ich mir die Sprache schon einmal anschauen und vielleicht sogar schon viel Grundlegendes verstehen. Dazu möchte ich lernen, wie man bestimmte Programme für bestimmte Zwecke oder auch Apps programmiert. Vielleicht werde ich Java sogar für mein späteres Leben, in Richtung Job gesehen, brauchen.
"Weißt du denn schon etwas über Java?"
Ich weiß mittlerweile sicherlich mehr, als Leute, die die Programmiersprache nicht kennen. Ich habe mir diverse Videos/Tutorials zu Java angeschaut und ich habe ein Buch aus der Bibliothek ausgeliehen, was ich zurzeit lese (Java 2 für Dummies, falls das wer kennt). Dazu habe ich mit ein wenig Hilfe einen kleinen Taschenrechner programmiert, der 2 Zahlen addiert, subtrahiert, multipliziert oder dividiert.
"Und... worin liegt jetzt genau dein Problem / deine Frage?"
Als weitere Übung wollte ich ein Programm schreiben, welches Zahlen auf Primzahlen überprüft oder alle Primzahlen einer Spanne ausgibt. Ich bin, denke ich, schon relativ weit gekommen. Das Prüfen einer Zahl funktioniert glatt. Jedoch hänge ich jetzt am Ausgeben der Spanne. Die Spanne kann beliebig groß sein, worin jedoch auch, je nach Spanne, eine unterschiedliche Anzahl an Primzahlen enthalten sein kann. Dieses "Problem" wollte ich mit einem Int-Array lösen. Dabei bekomme ich jedoch immer die Fehlermeldung:
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at main_pckg.Spanne.Zahlenspanne(Spanne.java:22)
at main_pckg.Klasse.main(Klasse.java:16)"
Soviel ich weiß bedeutet das, dass in meiner Klasse Spanne in der Methode Zahlenspanne in der Zeile 22 ein Fehler aufgetreten ist. Bei diesem Fehler handelt es sich, glaube ich, um den Platzmangel des erstellten Arrays (Wenn das falsch ist, bitte berichtigen. Ich muss noch lernen. ). Aber ihr seit doch sowieso alle Profis, deswegen gibt's hier auch den Code von mir:
Nun frage ich die Erfahrenen: Wie kann ich dieses Problem beheben, meiden oder umgehen oder gibt es eine andere Möglichkeit, die Zahlen zu speichern? Falls ihr fragen habt, warum ich was so und so gemacht hab: Bitte fragt mich.
Mir ist übrigens aufgefallen, dass wenn ich beim Ausführen die Zahlen 10 und 20 bei der Abfrage eingebe, das Programm nicht weiter ausgeführt und auch nicht gestoppt wird. Ich kann dann weitere Eingaben tätigen, die jedoch nicht aufgenommen werden. Weiß jemand, woran das liegt oder ist das nur ein Fehler?
Vielen Dank an alle, die auch nur die Fehlermeldung verbessern oder einfach "Hallo" sagen.
Einen schönen Abend noch, Javastic
das ist nun mein erster Beitrag, weswegen ich mich zuerst ein wenig vorstellen möchte. Ich bin (fast) 15 Jahre alt und komme aus dem Umland von Berlin. Ich habe keine Vorerfahrungen mit anderen Programmiersprachen, jedoch arbeite ich viel mit dem Computer.
"Du bist fast 15. Habt ihr in der Schule kein Java?"
In der Schule werden wir uns Java erst in mehr als einem Jahr anschauen. Zurzeit behandelt unser Info-Wahlpflichtkurs die Sprache Scratch, weswegen ich für dieses Jahr doch lieber zum Kurs Sport gegangen bin.
"Warum Sport, wenn du doch so gerne mit dem PC arbeitest?"
Nunja, ich spiele 3x in der Woche Fußball, um mich sportlich ein wenig zu bewegen. Und da mich alle anderen Kurse bis auf Sport und Informatik nicht angesprochen haben, fiel meine Entscheidung auf Sport.
"Und wie kommst du dann auf Java?"
Wie schon gesagt wird Java ein Thema im nächsten Schuljahr sein. Um Vorwissen zu erlangen, möchte ich mir die Sprache schon einmal anschauen und vielleicht sogar schon viel Grundlegendes verstehen. Dazu möchte ich lernen, wie man bestimmte Programme für bestimmte Zwecke oder auch Apps programmiert. Vielleicht werde ich Java sogar für mein späteres Leben, in Richtung Job gesehen, brauchen.
"Weißt du denn schon etwas über Java?"
Ich weiß mittlerweile sicherlich mehr, als Leute, die die Programmiersprache nicht kennen. Ich habe mir diverse Videos/Tutorials zu Java angeschaut und ich habe ein Buch aus der Bibliothek ausgeliehen, was ich zurzeit lese (Java 2 für Dummies, falls das wer kennt). Dazu habe ich mit ein wenig Hilfe einen kleinen Taschenrechner programmiert, der 2 Zahlen addiert, subtrahiert, multipliziert oder dividiert.
"Und... worin liegt jetzt genau dein Problem / deine Frage?"
Als weitere Übung wollte ich ein Programm schreiben, welches Zahlen auf Primzahlen überprüft oder alle Primzahlen einer Spanne ausgibt. Ich bin, denke ich, schon relativ weit gekommen. Das Prüfen einer Zahl funktioniert glatt. Jedoch hänge ich jetzt am Ausgeben der Spanne. Die Spanne kann beliebig groß sein, worin jedoch auch, je nach Spanne, eine unterschiedliche Anzahl an Primzahlen enthalten sein kann. Dieses "Problem" wollte ich mit einem Int-Array lösen. Dabei bekomme ich jedoch immer die Fehlermeldung:
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at main_pckg.Spanne.Zahlenspanne(Spanne.java:22)
at main_pckg.Klasse.main(Klasse.java:16)"
Soviel ich weiß bedeutet das, dass in meiner Klasse Spanne in der Methode Zahlenspanne in der Zeile 22 ein Fehler aufgetreten ist. Bei diesem Fehler handelt es sich, glaube ich, um den Platzmangel des erstellten Arrays (Wenn das falsch ist, bitte berichtigen. Ich muss noch lernen. ). Aber ihr seit doch sowieso alle Profis, deswegen gibt's hier auch den Code von mir:
Java:
package main_pckg;
import java.util.Scanner;
public class Spanne {
public static void Zahlenspanne(){
int hälfte, teiler = 2, zahl1, zahl2, größe = 0, arzahl = 0; //arzahl = Zugriffszahl fürs Array
int[] array = new int[größe];
Scanner sc = new Scanner(System.in);
System.out.println("Bei welcher Zahl soll die Spanne anfangen?");
zahl1 = sc.nextInt();
System.out.println("Bei welcher Zahl soll die Spanne enden?");
zahl2 = sc.nextInt();
while (zahl1 <= zahl2){
hälfte = zahl1/2; //weil der kleinste Teiler (neben 1) ist 2 -> Hälfte
while (teiler <= hälfte){
if (teiler == hälfte){
größe++;
array[arzahl] = zahl1; //Wenn der Teiler so groß ist wie die Hälfte,
arzahl++; //ist die Zahl eine Primzahl und kann gepeichert werden
}else if (zahl1%teiler != 0){ //Wenn kein Rest bleibt, ist die Zahl keine Primzahl
teiler++; //-> Teiler um eins erhöhen
}
}
zahl1++;
if (zahl1 == zahl2 && größe == 0){
System.out.println("In dieser Spanne gibt es keine Primzahl.");
}
}
sc.close();
}
}
Nun frage ich die Erfahrenen: Wie kann ich dieses Problem beheben, meiden oder umgehen oder gibt es eine andere Möglichkeit, die Zahlen zu speichern? Falls ihr fragen habt, warum ich was so und so gemacht hab: Bitte fragt mich.
Mir ist übrigens aufgefallen, dass wenn ich beim Ausführen die Zahlen 10 und 20 bei der Abfrage eingebe, das Programm nicht weiter ausgeführt und auch nicht gestoppt wird. Ich kann dann weitere Eingaben tätigen, die jedoch nicht aufgenommen werden. Weiß jemand, woran das liegt oder ist das nur ein Fehler?
Vielen Dank an alle, die auch nur die Fehlermeldung verbessern oder einfach "Hallo" sagen.
Einen schönen Abend noch, Javastic