Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Java-Frage (https://www.delphipraxis.net/99769-java-frage.html)

Störtebeker 17. Sep 2007 15:21


Java-Frage
 
Hallo,

wir haben in Informatik mit der Sprache JAVA angefangen und ein Programm zusammengebastelt, das anhand von eingegebenen Informationen herausfinden soll, ob aus den Längen ein Dreieck gebildet werden kann, oder nicht. Ob es rechtwinklig ist oder nicht.

Folgender Code:

Code:
import java.io.*;
public class triangle
public static void main(String[] arsg)
{
int a,b,c;

System.out.print("Welcome");
System.out.print(\nPlease enter your first number:\t");
a = Tastatur.liesInt ( );
System.out.print("Please enter your seco. number:\t")
b = Tastatur.liesInt ( );
System.out.print("Please enter your third number:\t")
c = Tastatur.liesInt ( );

if (a+b>c &&b+c>a &&a+c>b)
System.out.print("According to the entered information it is possible to create a triangle");
else
System.out.print("According to the entered information it isn´t possible to create a triangle");

if (a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b)
System.out.print("According to the entered information it is a right-angled triangle");
else
System.out.print("According to the entered information it isn´t a right-angled triangle");

}
}
Soweit so gut. Das Programm erscheint in einem DOS-Fenster und als letzte Meldung steht: Drücken Sie eine beliebige Taste. Drückt man eine Taste, verschwindet das Programm. (wird beendet).

Nun zu meiner Frage:

Wie könnte man es realisieren, dass ne Abfrage kommt, dass wenn ich auf "Y" drücke, das Programm von vorne anfängt, und wenn ich auf "N" drücke, dass Programm beendet wird?

Ich würde das Programm erstmal erweitern mit:

Code:
.
.
.
System.out.print("According to the entered information it isn´t a right-angled triangle");
System.out.print("Click Y to reset the programm or N to quit");
so, wie gehts jetzt aber weiter?

mfG
Störtebeker

THX. schon mal im voraus.

P.S.: Das mit dem Englisch habe ich selber gewählt. Bin JAVA-Neuling.
P.S.:Falls ich jetzt im Quelltext was vergessen habe, bitte mit angeben. Habe den Text aus dem zusammengebastelt, was ich noch im Kopf hatte.

[edit=Phoenix]Delphi- in Code-Tags geändert.. wegen den {} in java... Mfg, Phoenix[/edit]

DP-Maintenance 17. Sep 2007 15:23

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Klatsch und Tratsch" nach "Programmieren allgemein" verschoben.
Das passt hier besser hin.

leddl 17. Sep 2007 15:27

Re: Java-Frage
 
Mach dich mal (zB in der JavaInsel) mit dem InputStream vertraut ;)

//Edit:
:wall: Dass man in einem so kleinen Post so viele Fehler machen kann :lol:

jfheins 17. Sep 2007 16:02

Re: Java-Frage
 
Zitat:

Zitat von Störtebeker
Hallo,


Wie könnte man es realisieren, dass ne Abfrage kommt, dass wenn ich auf "Y" drücke, das Programm von vorne anfängt, und wenn ich auf "N" drücke, dass Programm beendet wird?

Die Grundkonstruktion ist hier folgende:
Code:
do
{
  //...
  //...
  writeln('press y to start again')
  char eingabe = readln();
}
while (eingabe == 'y')
Ist jetzt nur so zusammengetippt, damit das Prinzip klar ist ;)
(Hab zwar 2 Jahre mit Java geproggt, aber sowas haben wir da nicht gemacht ... ^^)

leddl 17. Sep 2007 16:32

Re: Java-Frage
 
Jo, im Prinzip richtig. ;)
Wie gesagt, braucht man für das eigentliche Lesen einen InputStreamReader. Der liest - wie der Name schon sagt - aus einem InputStream. Da bietet sich (analog zur Ausgabe mit dem OutputStream System.out) natürlich System.in an :stupid:
Sieht also folgendermaßen aus:
Code:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String s = input.readLine();
Erstmal wird ein Puffer für die Eingabe erstellt (BuffererReader) der seine Daten aus dem InputStreamReader holt. Der wiederrum liest aus einem InputStream: System.in.

Hoffe, das Prinzip ist klar geworden. Sieht auf den ersten Blick erstmal ziemlich kompliziert aus, wenn mans verstanden hat, geht das aber eigentlich locker flockig von der Hand :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz