Einlesen von Variablen

Neue Frage »

Auf diesen Beitrag antworten »
Kuboudy Einlesen von Variablen

hi... also ich hab hier ein java-programm zusammengebastelt. Nun fragt mich dieses Programm, welchen Wert ich eingeben will und ich gebe ihn ein Wert, jedoch wird dieser nicht für den danach kommenden algorithmus benutzt. Das Programm nimmt sich anstattdessen den Wert, den ich beim Aufruf des Programms hinter den Programmnamen setze. Das möchte ich jedoch nich. Kann mir jemand verraten, wie ich es hinbekomme, dass er den Wert auch benutzt, nach dem er fragt!? Schon mal danke im Vorraus.

Hier das Programm:




/**
* Diese Klasse stellt Methoden zur Emittlung schwacher Primzahlen zur Verfuegung.
* Hauptaechlich wurde auf die die Effizienz der Algorithmen Wert gelegt.
* Zur Berechnung wird das Sieb des Eratosthenes verwendet und zum Teil auch einfache
* Modolurechnungen.
*/

public class Weakly
{
static int Zahl = 0;
static int Grenze = 0;
static boolean [] bSieb;
static int x, y;

/**
* Einlesen der geforderten Werte
* Start der Zeitmessung
* Anschliessend Aufruf zur Berechnung schwacher Primzahlen
* Den Bereich der Primzahlen habe ich auf eine obere Grenze von 100.000.000 limitiert, da sonst die Berechnungsdauer
* ohnehin zu lange dauern wuerde
*/

public static void main(String args[])
{
System.out.print("Geben Sie die (ganzzahlige) Grenze ein, bis zu der Primzahlen untersucht werden sollen:");
Grenze = Keyboard.readInt();


long lStart = System.currentTimeMillis();


if(args.length != 1)
{
System.out.println("Fehler: Bitte ueberpruefen Sie ihre Eingabe");
return;
}
try
{
int eingabe = Integer.parseInt(args[0]);
if(eingabe > 100000000 || eingabe <= 0)
{
System.out.println("Fehler: Grenze nicht im vorgegebenen Zahlenbereich");
return;
}
Grenze = eingabe;
Zahl = (eingabe + 1) / 2;
bSieb = new boolean[Zahl];
}
catch (NumberFormatException r)
{
System.out.println("Fehler: Bitte Integerwert eingeben");
return;
}

SiebEra();
Output();
long lEnd = System.currentTimeMillis();
System.out.println(+ (lEnd - lStart) + " Millisekunden fuer die Berechnung der n schwachen Primzahlen");
}

/**
* public static void Output()
*
* Durchlauft das gesamte Sieb-Array und ruft fuer jede Primzahl CheckWeak() auf
* Ist eine schwache Primzahl gefunden, wird diese ausgegeben. Gibt es keine
* im angegebenen Bereich, so wird die geforderte Fehlermeldung ausgegeben
*/

public static void Output()
{
y = 0;
for (x = 1; x < Zahl; ++x)
if (bSieb[x] == true)
{
if(checkWeak(2 * x + 1))
{
++y;
System.out.println(y + ". Schwache Primzahl: " + (2 * x + 1));
}
}
if(y != 0)
{
System.out.println("Keine weitere Schwache Primzahl <= " + Grenze);
}
else
{
System.out.println("Keine Schwache Primzahl gefunden");
}
}

/**
* filtert alle Zahlen heraus, die keine
* Primzahlen sind.
* Es benutzt das global angelegte Boolean-Array, um die Primzahlen zu speichern.
* Es werden NUR ungerade Zahlen getestet. Aus diesem Grund ist das Array nur halb so gross
* wie der zu ueberpruefende Bereich.
*/
public static void SiebEra()
{
for (x = 1; x < Zahl; ++x)
{
bSieb[x] = true;
}
for (x = 1; x < Zahl; ++x)
{
if(bSieb[x] == true)
{
for (y = 3 * x + 1; y < Zahl; y += 2 * x + 1){
bSieb[y] = false;
}
}
}
}

/**
* Testet, ob die Zahl eine Primzahl ist. Dabei werden nur Zahlen groesser als 2 berechnet
* Es wird ebenfalls getestet, ob die Zahl durch 3 teilbar ist, wobei gerade Zahlen ausgeschlossen werden
*/

public static boolean isPrim(int zahl)
{
if (zahl < 2 )
{
return false;
}
else
{
for (int i = 3; i * i <= zahl; ++i)
{
if(zahl % i == 0)
{
return false;
}
}
}
return true;
}

/**
* Ueberprueft, ob die Zahlen Schwache Primzahlen sind
*/

public static boolean checkWeak(int zahl)
{
char [] cChar = Integer.toString(zahl).toCharArray();
char [] cTemp = Integer.toString(zahl).toCharArray();
int iTemp = 0;

if(cChar.length > 0)
{
for (int i = 0; i < cChar.length; ++i)
{
for(int j = 0; j <= 9; ++j)
{
System.arraycopy(cChar, 0, cTemp, 0, cChar.length);
cTemp[i] = String.valueOf(j).charAt(0);
iTemp = Integer.parseInt(String.valueOf(cTemp));
if(iTemp % 2 != 0)
{
if(iTemp <= (Zahl * 2))
{
if(bSieb[(iTemp - 1) / 2] && (iTemp != zahl))
{
return false;
}
}
else
{
if(isPrim(iTemp) && (iTemp != zahl))
{
return false;
}
}
}
}
}
}
return true;
}
}
 
Auf diesen Beitrag antworten »
jesse 12324 RE: Einlesen von Variablen

[quote][i]Original von Kuboudy[/i]
hi... also ich hab hier ein 1.Welche Bedeutung haben Schnitt und Monta1.Welche Bedeutung haben Schnitt und Montage für die Dramaturgie eines Films?
2.Wie verhält sich das Prinzip der Montage zu unserer eigenen menschlichen Wahrnehmung?
3. Welche Wirkung hat Montage auf unser Raumerlebnis?
4.Wie verhält sich die Montage zu unseren Emotionen?
5. Worauf müssen wir bei der Montage achten, damit wir als Betrachter an der Handlung Anteil Nehmen?ge für die Dramaturgie eines Films?
2.Wie verhält sich das Prinzip der Montage zu unserer eigenen menschlichen Wahrnehmung?
3. Welche Wirkung hat Montage auf unser Raumerlebnis?
4.Wie verhält sich die Montage zu unseren Emotionen?
5. Worauf müssen wir bei der Montage achten, damit wir als Betrachter an der Handlung Anteil Nehmen?zusammengebastelt. Nun fragt mich dieses Programm, welchen Wert ich eingeben will und ich gebe ihn ein Wert, jedoch wird dieser nicht für den danach kommenden algorithmus ben1.Welche Bedeutung haben Schnitt und Montage für die Dramaturgie eines Films?
2.Wie verhält sich das Prinzip der Montage zu unserer eigenen menschlichen Wahrnehmung?
3. Welche Wirkung hat Montage auf unser Raumerlebnis?
4.Wie verhält sich die Montage zu unseren Emotionen?
5. Worauf müssen wir bei der Montage achten, damit wir als Betrachter an der Handlung Anteil Nehmen?utzt. Das Programm nimmt sich anstattdessen den Wert, den ich beim Aufruf des Programms hinter den Programmnamen setze. Das möchte ich jedoch nich. Kann mir jemand verraten, wie ich es hinbekomme, dass er den Wert auch benutzt, nach dem er fragt!? Schon mal danke im Vorraus.

Hier das Programm:OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnooooooooooooooooooooooooo

Das heißt ohno (Achnein) its a rainy man ich checke nichts ihr ´schon ?????????????????

/**
* Diese Klasse stellt Methoden zur Emittlung schwacher Primzahlen zur Verfuegung.
* Hauptaechlich wurde auf die die Effizienz der Algorithmen Wert gelegt.
* Zur Berechnung wird das Sieb des Eratosthenes verwendet und zum Teil auch einfache
* Modolurechnungen.
*/

public class Weakly
{
static int Zahl = 0;
static int Grenze = 0;
static boolean [] bSieb;
static int x, y;

/**
* Einlesen der geforderten Werte
* Start der Zeitmessung
* Anschliessend Aufruf zur Berechnung schwacher Primzahlen
* Den Bereich der Primzahlen habe ich auf eine obere Grenze von 100.000.000 limitiert, da sonst die Berechnungsdauer
* ohnehin zu lange dauern wuerde
*/

public static void main(String args[])
{
System.out.print("Geben Sie die (ganzzahlige) Grenze ein, bis zu der Primzahlen untersucht werden sollen:");
Grenze = Keyboard.readInt();


long lStart = System.currentTimeMillis();


if(args.length != 1)
{
System.out.println("Fehler: Bitte ueberpruefen Sie ihre Eingabe");
return;
}
try
{
int eingabe = Integer.parseInt(args[0]);
if(eingabe > 100000000 || eingabe <= 0)
{
System.out.println("Fehler: Grenze nicht im vorgegebenen Zahlenbereich");
return;
}
Grenze = eingabe;
Zahl = (eingabe + 1) / 2;
bSieb = new boolean[Zahl];
}
catch (NumberFormatException r)
{
System.out.println("Fehler: Bitte Integerwert eingeben");
return;
}

SiebEra();
Output();
long lEnd = System.currentTimeMillis();
System.out.println(+ (lEnd - lStart) + " Millisekunden fuer die Berechnung der n schwachen Primzahlen");
}

/**
* public static void Output()
*
* Durchlauft das gesamte Sieb-Array und ruft fuer jede Primzahl CheckWeak() auf
* Ist eine schwache Primzahl gefunden, wird diese ausgegeben. Gibt es keine
* im angegebenen Bereich, so wird die geforderte Fehlermeldung ausgegeben
*/

public static void Output()
{
y = 0;
for (x = 1; x < Zahl; ++x)
if (bSieb[x] == true)
{
if(checkWeak(2 * x + 1))
{
++y;
System.out.println(y + ". Schwache Primzahl: " + (2 * x + 1));
}
}
if(y != 0)
{
System.out.println("Keine weitere Schwache Primzahl <= " + Grenze);
}
else
{
System.out.println("Keine Schwache Primzahl gefunden");
}
}

/**
* filtert alle Zahlen heraus, die keine
* Primzahlen sind.
* Es benutzt das global angelegte Boolean-Array, um die Primzahlen zu speichern.
* Es werden NUR ungerade Zahlen getestet. Aus diesem Grund ist das Array nur halb so gross
* wie der zu ueberpruefende Bereich.
*/
public static void SiebEra()
{
for (x = 1; x < Zahl; ++x)
{
bSieb[x] = true;
}
for (x = 1; x < Zahl; ++x)
{
if(bSieb[x] == true)
{
for (y = 3 * x + 1; y < Zahl; y += 2 * x + 1){
bSieb[y] = false;
}
}
}
}

/**
* Testet, ob die Zahl eine Primzahl ist. Dabei werden nur Zahlen groesser als 2 berechnet
* Es wird ebenfalls getestet, ob die Zahl durch 3 teilbar ist, wobei gerade Zahlen ausgeschlossen werden
*/

public static boolean isPrim(int zahl)
{
if (zahl < 2 )
{
return false;
}
else
{
for (int i = 3; i * i <= zahl; ++i)
{
if(zahl % i == 0)
{
return false;
}
}
}
return true;
}

/**
* Ueberprueft, ob die Zahlen Schwache Primzahlen sind
*/

public static boolean checkWeak(int zahl)
{
char [] cChar = Integer.toString(zahl).toCharArray();
char [] cTemp = Integer.toString(zahl).toCharArray();
int iTemp = 0;

if(cChar.length > 0)
{
for (int i = 0; i < cChar.length; ++i)
{
for(int j = 0; j <= 9; ++j)
{
System.arraycopy(cChar, 0, cTemp, 0, cChar.length);
cTemp[i] = String.valueOf(j).charAt(0);
iTemp = Integer.parseInt(String.valueOf(cTemp));
if(iTemp % 2 != 0)
{
if(iTemp <= (Zahl * 2))
{
if(bSieb[(iTemp - 1) / 2] && (iTemp != zahl))
{
return false;
}
}
else
{
if(isPrim(iTemp) && (iTemp != zahl))
{
return false;
}
}
}
}
}
}
return true;
}
}[/quote]
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »