If Abfrage

hos15

Aktives Mitglied
Hallo alle zusammen ich habe eine kleine frage womit vermutlich keiner von euch ein Problem haben wird :

Frage : Wie kann man die folgende Bedingungen abfragen? Tragen Sie den jeweiligen Ausdruck, den sie z. B. in eine if-Abfrage einsetzen würden, in die zweite Spalte der Tabelle ein. Getestet werden soll, ob

-der Absolutbetrag einer double Variable x größer als 50. ist
-ein Punkt mit den Koordinaten (x,y) innerhalb eines Kreises mit dem Mittelpunkt (0,0) und dem Radius 2 liegt?.
-mindestens eine der Variablen x oder y einen positiven Wert (> 0) enthält


ich habe echt keine Ahnung wie ich dazu eine If Abfrage schreiben könnte ich bitte um Hilfe
vielen Dank an alle
 

kiwara

Aktives Mitglied
1.)
Java:
if(Math.abs(x) > 50)
2.)
Java:
if(Math.abs(x) <= 2 && Math.abs(y) <= 2)
3.)
Java:
if(x > 0 || y > 0)
(wobei 0 mathematisch gesehen positiv ist)
 

hos15

Aktives Mitglied
Vielen vielen Dank für die schnelle Antwort ! :)
Kann ich anstatt "&&" auch nur "&" schreiben ?
und anstatt "||" auch nur "|" schreiben ?
 

Joose

Top Contributor
@kiwara bei 1. und 3. stimme ich zu
aber 2. ist meiner Meinung nach falsch ;)

Kann ich anstatt "&&" auch nur "&" schreiben ?
und anstatt "||" auch nur "|" schreiben ?

Weißt du was der unterschied zwischen diesen beiden ist? Wenn nicht lies dir doch die Dokumentation dazu durch.
http://www.java-tutorial.org/relationale-logische-und-bitweise-operatoren.html
Dann sollte dir klarer werden ob man "||" durch "|" ersetzen kann. Wenn dir der Unterschied nicht durch die Doku klar wird dann findet sich vielleicht hier wer der es dir erklären kann.
 

hos15

Aktives Mitglied
Ja also es ist doch so bei "&&" ist es so wenn der 1te ausdruck falsch ist wird der 2te gar nicht beachtet.
aber bei "&" wenn der erste ausdruck falsch wäre wird trotzdem nochmal der 2te beachtet(überprüft)
und bei "||" ist es so wenn der erste ausdruck wahr ist wird der 2te nicht überprüft
und bei "|" werden beide überprüft.
richtig so ?
wie soll ich die 2 denn machen wenn die falsch ist ?
 
X

Xyz1

Gast
Schöne Aufgaben,
-der Absolutbetrag einer double Variable x größer als 50. ist
-ein Punkt mit den Koordinaten (x,y) innerhalb eines Kreises mit dem Mittelpunkt (0,0) und dem Radius 2 liegt?.
-mindestens eine der Variablen x oder y einen positiven Wert (> 0) enthält

hier ist meine Lösung(en):
Java:
    public static void main(String[] args) throws InterruptedException { // unnoetig
        Random r = new Random();
        JFrame jf = new JFrame("Kreis Frame");
        for (int i = 0; i < 10; i++) {
            final double x = r.nextDouble() * 5 - 2.5, y = r.nextDouble() * 5 - 2.5;
            System.out.println("x = " + x);
            System.out.println("y = " + y);
            // mache was mit jf, was genau, bleibt aber geheim
            if (Math.abs(x) > 50) {
                System.out.println("x > 50");
            }
            if (Math.sqrt(x * x + y * y) < 2) {
                System.out.println("Punkt im Kreis");
            }
            if (x > 0 || y > 0) {
                System.out.println("Eins größer Null");
            }
            System.out.println("");
            Thread.sleep(15000);
        }
    }

Punkt NICHT im Kreis:

kf1.PNG

Punkt im Kreis:

kf2.PNG

(denke, Kreis-zeichnen ginge besser)

Du solltest Dir Funktion von Operatoren anschauen (nebenbei auch Operanden) und
http://www.mathe-online.at/material...ctors/definition_der_laenge_eines_vektors.htm

Für eine Klausur vielleicht doch etwas viel...

if (Math.sqrt(x * x + y * y) < 2) { einfach lernen, ich weiß das so genau, weil ich viel mit Monte Carlo zu tun hab.
 
Zuletzt bearbeitet von einem Moderator:

Thallius

Top Contributor
Hm, einen stink normalen Pythagoras ausrechnen ist zu viel verlangt für eine Informatik-Aufgabe? Von welcher Klasse reden wir hier ? Sorry aber das ist absolut unterste Mathematik die man in der 6ten Klasse lernt oder ich zumindest gelernt habe....
 
X

Xyz1

Gast
Ja, Pi berechnen habt ihr in der 6. Klasse Sekundarstufe I gemacht? Wenn man keine Ahnung hat...
 
X

Xyz1

Gast
Eben, weil Schulmathematik grundauf falsch anfängt. Naja, ich will mich auch nicht streiten, weil diese aufgabe von 9. - 13. Klasse bis 1. Sem. überall gestellt werden könnte. Ich denke, ihr seid sauer, weil ich ihm die Lösung(en) hingeklatscht habe. Allerdings nicht die schöne grafische Visualisierung ebenjener. Genau da scheinst du ja mit deiner Schulmathematik zu scheitern/am Ende zu sein. Hab auch keine lust, hier was "zu veröffentlichen".
 

mrBrown

Super-Moderator
Mitarbeiter
#drawCircle ist vielleicht für dich eine Meisterleistung auf die du stolz sein kannst, für die meisten hier aber eher trivial und hat vor allem (genau wie pi) keinen Bezug zu der Aufgabe...
Das einzige was du mit deiner Lösung erreichst ist, dem TE weiterhin Nachdenken zu ersparen...
 
X

Xyz1

Gast
@mrBrown:
1.) #drawCircle gibt es nicht,
2.) wenn schon, dann #drawOval,
3.) Oval ist nix anderes als Circle,
4.) zeichnet man einen Kreis mit Durchmesser z. B. 400, sieht man, dass verbessert werden kann,
5.) du hast gar keine Lösung,
6.) du bist genau wie Thallius außerstande, auch nur irgendetwas davon zu replizieren,
7.) das war's dann auch von meiner Seite, auf irgendwelche oberschlauen Sprüche lasse ich mich nicht ein.
 

mrBrown

Super-Moderator
Mitarbeiter
1.) #drawCircle gibt es nicht,
2.) wenn schon, dann #drawOval,
3.) Oval ist nix anderes als Circle,
Mea culpa, kleiner Flüchtigkeitsfehler...


4.) zeichnet man einen Kreis mit Durchmesser z. B. 400, sieht man, dass verbessert werden kann,
5.) du hast gar keine Lösung,
6.) du bist genau wie Thallius außerstande, auch nur irgendetwas davon zu replizieren,
7.) das war's dann auch von meiner Seite, auf irgendwelche oberschlauen Sprüche lasse ich mich nicht ein.
Bla bla bla...Sei halt stolz auf deine Lösung, mit viel Glück hat der TE daraus sogar noch irgendwas gelernt, aber fabulier dir hier nicht irgendwelche Dinge zusammen^^
 

mrBrown

Super-Moderator
Mitarbeiter
Es war gefragt nach Abstand zweier Punkte, nicht ob irgendein Punkt innerhalb eines Polygons liegt. Und das ist nunmal näher an der 6. als an der 10 Klasse, auch wenn du es zu schwer findest^^

Ich hab lediglich "etwas" geholfen, was ja auch das Ziel des Forums sein soll, hab ich mir sagen lassen^^

Deine Hilfe ist irgendwelchen Code ohne Erklärung hinklatschen. Der TE hat dann zwar irgendeine Lösung, aber trotzdem keine Ahnung. Manchmal ist keine Hilfe besser als solche Hilfe...
 
X

Xyz1

Gast
Nö, 2 von 3 Bedingungen hatte er ja schon, die 3. fiel ihm nicht ein, eine Erklärung gleich dazu, so viel "kack" wie du schreibst, kann ich mir gar nicht ausdenken^^
 

Joose

Top Contributor
Man könnte nun einfach wieder zum Thema kommen und aufhören sich gegenseitig anzustacheln!

Ja das Forum ist dazu da, dass anderen geholfen wird. Ob das nun im Forum von Tipps, Hinweisen, Erklärungen oder Links passiert oder jemand sich die Mühe macht "Komplett"lösungen zu posten ist dabei egal.
Viele (darunter ich auch) finden aber das es nicht viel bringt solche "Komplett"lösungen zu bringen. Da so teilweise der Lernprozess sowie das Verständnis des Problem und dessen Lösung etwas auf der Strecke bleibt. Darauf kann man nur hinweisen, aber niemanden verbieten "Komplett"lösungen zu bieten.
Man kann natürlich auch auf Probleme/Fehler bei den Lösungsvorschlägen der anderen hinweisen, dies sollte aber nicht ausarten! Niemand weiß jederzeit alles und kleinere Fehler können sich da schon mal einschleichen.
Am Ende entscheidet immer noch der TO welche Lösung für ihn die richtige war bzw. zu sein scheint.

Der Post ist bewusst nicht an eine bestimmte Person gerichtet, da meist mehrere daran beteiligt sind ;)
 
X

Xyz1

Gast
Mal Frage nebenbei, hattet ihr schon Vektorrechnung?, in welcher Klasse bist du?, kann ebensogut sein, das er an dem Tag krank war, als Satz des Pythagoras in der Schule dran kam. Kann ebensogut sein, dass er im Master-Studiengang Informatik ist, im 8. Sem., und das mal eben visualisieren soll. Etwas in diese Richtung ging meine Erklärung ja auch.
 

Neumi5694

Top Contributor
Falls das noch aktuell ist ...
"&&" und "&" sind nur in Einzelfällen austauschbar.
Ersterer Ausdruck ist IMMER für die Verknüpfung von Bool-Werten zu verwenden.
Der zweite Ausdruck ist für die Bit-weise Verknüpfung von Wertigkeiten zu verwenden.

Damit hast du Recht. Warum sollte B auch abgefragt werden, wenn A eh schon falsch ist? Ob B dann true oder false ist, ändert am Ergebnis nichts.
Genauso verhält es sich mit "||" und "|". Wenn in "A || B" A bereits true ist, dann braucht B nicht mehr agefragt zu werden.

Das wird dir in deiner Programmierlaufbahn oft noch begegnen, z.B. wenn die Auswertung eines Objektes nur dann erfolgen soll, wenn es nicht null ist.
Dann schreibst du oft so etwas wie
Code:
if (component != null && component.isVisible()) {
 //Komponente existiert und ist sichtbar
} else {
 //Komponente existiert entweder gar nicht oder ist unsichtbar
}
isVisible() würde im Fall von component == null eine Exception werfen. Hier passiert das aber nicht, da die Methode nur abgefragt wird, falls component eben NICHT null ist.
 

JCODA

Top Contributor
"&&" und "&" sind nur in Einzelfällen austauschbar.
Ersterer Ausdruck ist IMMER für die Verknüpfung von Bool-Werten zu verwenden.
Der zweite Ausdruck ist für die Bit-weise Verknüpfung von Wertigkeiten zu verwenden.
Und wie IMMER sind IMMER-Aussage sehr gewagt.
Natürlich sollte eine Methode, die solche eine Abfrage macht keine Seiteneffekte besitzen, aber ... Wenn Methoden nun mal Werte verändern und danach ein Boolean zurückgeben und man eben explizit diese beiden Methoden aufrufen will ... Möglicherweise sollte man dann auch ggf. lokale Variablen vor dem logischen und/oder machen, aber ... es kommt IMMER auf den Kontext an.
 

jokos1105

Mitglied
Für den punkt im kreis wäre vlt. dieses Video ganz hilfreich (Kein Code zu sehen nur um im kopf angestoßen zu werden wie das funktioneiren könnte) :

dein punkt (x/y) wäre in dem beispiel der mittelpunkt des kreises
 

Neue Themen


Oben