Brauche dringend Hilfe !!!!
-
Bonafide schrieb:
Verstehe nicht wieso du
return L2*L6==-1 && L6*L5==-1 && L5L1==-1;
schreibst, meine wenn L1L2=-1, also Gerdae L1 mit Gerade L2 senkrecht sind, dann muss es nicht gleich heissen dass die Gerade L2 mit der Gerade L6 auch senkrecht ist. Die Gerade L1 kann sich ja auch bei z.B. 30° mit der Gerade L6 schneiden. Ich sollte das eigentlich checken ob das stimmt, oder nicht????Ist es denn noch ein Rechteck, wenn die benachbarten Geraden einen Winkel von 30° einschließen? In diesem if-Block weiß ich, daß L1 und L2 senkrecht stehen, also besteht ein potentielles Rechteck aus L1,L2,L6,L5 (in dieser Reihenfolge nebeneinander) und ich muß nur doch überprüfen, ob an den übrigen drei Ecken auch ein rechter Winkel ist (wenn nicht, war's wohl doch kein Rechteck).
-
CStoll schrieb:
...und ich muß nur doch überprüfen, ob an den übrigen drei Ecken auch ein rechter Winkel ist (wenn nicht, war's wohl doch kein Rechteck).
Ahh du meinst ich soll erst
if(L1*L2 == -1) { // Fall 2 return L2*L6==-1 && L6*L5==-1 && L5*L1==-1; } else if(L1*L3 == -1) { // Fall 1 return L3*L6==-1 && L6*L4==-1 && L4*L1==-1; } else return false;schreiben und dann mit einer weiteren if-Anweisung weitermachen, wie:
if(L2*L6==-1 && L6*L5==-1 && L5*L1==-1){ printf("Die Geraden L1,L2,L5 und L6 bilden ein Rechteck"); } else if(return L3*L6==-1 && L6*L4==-1 && L4*L1==-1){ printf("Die Geraden L1,L3,L4 und L6 bilden ein Rechteck"); } else{ printf("Von den Geraden L1,L2,L3,L4,L5 und L6 können kein Rechteck bilden"); }Ist es so richtig, oder geht es garnicht???

-
Nein, der Ausdruck
L2*L6==-1 && L6*L5==-1 && L5*L1==-1überprüft die übrigen drei Ecken des Vierecks. Das heißt, die gesamte if-else-Kaskade liefert genau dann true zurück, wenn deine vier Punkte ein Rechteck bilden - das kannst du nun (zusammen mit der Bestimmung der Li's) in eine Funktion packen und nutzen. (wenn du Fall 1 und 2 noch unterschiedlich behandeln willst, sollte diese Sonderbehandlung in den jeweiligen if-Blöcken passieren)
-
Die Bedingungen die Du dort nochmal in ifs gepackt hast steht doch schon lange dort. In "Fall 2" z.B. wird true zurückgegeben wenn ein Rechteck gebildet wird, sonst false.
-
DANKE EUCH!!!!!
-
Sorry, dass ich euch weiterhin störe aber...
Also hab das alles gemacht, was du meintest, aber irgendwie schliesst sich immer das fenster nach return, was kann ich machen, damit es sich nicht schliesst???
-
Hallo
Du könntest mal in die Konsolen FAQ schauen und dort beim Thema schließen verhinder vorbeischauen.
chrische
-
Und wo finde ich die???
-
Wir haben hier mehrere Foren, unter anderem "DOS und Win32-Konsole". Direkt neben dem Namen des Forums steht "FAQ/Archiv". Klick mal drauf.
-
Also habe da nachgeschaut und irgendwie nix gefunden, was mir weiterhalf!
Habe auch das http://c-plusplus.net/forum/viewtopic-var-t-is-111042.html gelesen und das hat mich auch nicht weitergebracht.Also helft mit bitte bei disem Code:
if(l1*l2==-1){ return l2*l6==-1 && l6*l5==-1 && l5*l1==-1; printf("Die Geraden l1,l2,l5 und l6 bilden ein Rechteck"); } else if(l2*l3==-1){ return l3*l6==-1 && l6*l4==-1 && l4*l1==-1 ; getchar(); printf("Die Geraden l2,l3,l4 und l6 bilden ein Rechteck"); } else { return false; printf("Die von den Koordinaten ergebenen Geraden bilden kein Rechteck"); }Was kann ich machen damit sich das Fenster nicht schließt und ich z.B. eine von den drei printf() sehen kann????
Helft mir PLEASE

-
Hallo
War meine Erklärung so schlecht? das nächste Mal suche ich gleich den Link raus. (ich bin mir nicht sicher, ob das Ironie ist oder nicht)
chrische
-
Nein man deine Erklärung war nicht so schlecht, hab das ja auch am Ende gefunden.
Bin neue deshalb kenne ich mich nicht so gut aus!
-
Bonafide schrieb:
Was kann ich machen damit sich das Fenster nicht schließt und ich z.B. eine von den drei printf() sehen kann????
Helft mir PLEASE

... int stop; cin >> stop;Ansonsten, Besorg Dir VS 2005 Express als IDE - da schliesst sich das Fenster nicht (im Debug-Modus) .
:p
-
hehe schrieb:
... int stop; cin >> stop;Funktioniert leider nicht! Der Compiler meldet:
`cin' undeclared (first use this function)
-
also ich bin mehr für
std::cin.get().
Dazu auch mal ein Link, der dir mit Sicherheit helfen wird:
http://c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlWenn du die dort gezeigte Funktion in dein Programm einbaust, musst du einfach nur noch wait() am Ende des Programmes vor return aufrufen, um das Fenster offen zu halten, bis Enter gedrückt ird^^
-
The-Kenny schrieb:
also ich bin mehr für
std::cin.get().
Dazu auch mal ein Link, der dir mit Sicherheit helfen wird:
http://c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlWenn du die dort gezeigte Funktion in dein Programm einbaust, musst du einfach nur noch wait() am Ende des Programmes vor return aufrufen, um das Fenster offen zu halten, bis Enter gedrückt ird^^
Hab das gemacht was du meintest, das Fenster hat sich auch nicht gleich geschlossen, aber die printf-Anweisung hat nicht funktioniert! Wieso?
-
Hallo
Wie meinen? Hat nicht funktioniert ist keine ordentlich Problembeschreibung. Außerdem ist das hier c++ und was du machst ist c.
chrische
-
Die Zeilen mit den printf(...); müssen vor den Zeilen mit den return ... stehen, damit sie ausgeführt werden können.

-
Was ist das wieder für ne antwort, C++ basiert ja auch auf C.
Ausserdem habe ich nicht nur gesagt,dass es nicht funktioniert hat, aber auch egal!
-
Hm, eigentlich nicht, aber egal *g*
Auf jeden Fall springt man mit return; aus der Funktion, d.h. dass alles darunter nicht mehr ausgeführt wird.