Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Kleine Verständnisfrage in Bezug auf IF-Funktion
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 13.01.2009, 22:34    Titel: Antworten mit Zitat

Zitat:
wenn ich mehr als 2 schleifen ineinander hab, und aus beiden inneren raus muss

Da habe ich schon einmal ganz böse die eine DO und die andere WHILE genannt. lachen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 13.01.2009, 22:35    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
@Offtopic: Von Flamewar sehe ich hier noch nichts. Aber als Alternative zu PRINT empfehle ich (in bestimmten Fällen) DRAW STRING. grinsen

Deswegen der Unterstrichene Satz. lächeln

Kleine Anmerkung:
Ich hab die Situation mal mit 3-Satz verglichen... entweder man nimmt die Tabellen-Variante (die etwas langsamer, dafür aber Lesbarer ist) oder die Bruch-Variante, die schneller is, aber unter umständen unleserlicher. Jetz kann man nartürlich sagen, mit guten kommentaren ist die Bruch-Variante sinnvoller, da schneller (und mit den Kommentaren auch verständlich). Nur ist die frage ob anfänger damit zurechtkommen, oder doch lieber die selbsterklärende Tabellen-Variante nehmen sollten... also auch eine Stilfrage, denn wie man sich bettet so liegt man*.


mfg
The_Muh

*Ich mag metaphern zwinkern

/Edit: ... nein... ich will mal nich so sein... *verkneif*
_________________
// nicht mehr aktiv //


Zuletzt bearbeitet von The_Muh am 13.01.2009, 22:38, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 13.01.2009, 22:37    Titel: Antworten mit Zitat

richtig .. aber, um mal vom thema etwas abzuschweifen: da braucht man dann ne seperate variable und springen is auch nicht.

ein Mod könnte den thread ja mal trennen ... eventuell wird der noch etwas umfangeicher :]


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 13.01.2009, 23:22    Titel: Antworten mit Zitat

Ich wunder mich gerade, dass diese Optimierung nicht schon längst getätigt worden, allerdings in einer Form, dass der Compiler automatisch optimiert.

Gerade in solchen Fällen wie: IF EinfacheBoolVariable OR komplexeFunktion() sollte der Compiler einfach aus Verdacht die Variable zuerst auswerten und dann erst die Funktion aufrufen. Die Ersparnis dürfte garantiert sein. Die angesprochenen möglichen Verschachtelungen würde ich einfach in Kauf nehmen.

my 2 cents
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.01.2009, 14:14    Titel: Antworten mit Zitat

Deswegen mag ich c-ähnliche sprachen auch viel lieber, da gibt's den unterschied zwischen & und && bzw | und ||. happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.01.2009, 15:15    Titel: Antworten mit Zitat

Stormy hat Folgendes geschrieben:
Ich wunder mich gerade, dass diese Optimierung nicht schon längst getätigt worden, allerdings in einer Form, dass der Compiler automatisch optimiert.

Gerade in solchen Fällen wie: IF EinfacheBoolVariable OR komplexeFunktion() sollte der Compiler einfach aus Verdacht die Variable zuerst auswerten und dann erst die Funktion aufrufen. Die Ersparnis dürfte garantiert sein. Die angesprochenen möglichen Verschachtelungen würde ich einfach in Kauf nehmen.

my 2 cents


das problem ist, dass es einfach garkeine bool typen gibt. und OR ist nunmal ein rechenoperator, kein wahrheitsoperator. wenn du OR so umschreiben würdest würden sämtliche programme, die mit flags arbeiten und diese mit OR verknüpfen zum beispiel nicht mehr funktionieren. auf das IF außenrum kann man sich leider nicht einfach so verlassen, Beispiel:

IF (&b01 OR &b10) = (&b01 AND &b10) THEN xyz()

auswertung 1: OR und AND als logische operatoren.
&b01 ist nicht 0, also &b01 OR &b10 -> true.
&b01 ist nicht 0, &b10 ist auch nicht 0, also &b01 AND &b10 -> true.
true = true ist wahr -> xyz() wird aufgerufen.

auswertung 2: OR und AND als bitweise operatoren.
&b01 OR &b10 wertet aus zu &b11
&b01 AND &b10 wertet aus zu &b00
&b11 = &b00 ist falsch -> xyz() wird _nicht_ aufgerufen.

woher soll der compiler wissen was gemeint ist? und zu sagen OR ist absofort logischer operator, und BITOR der bitweise rechenoperator würde dazu führen, dass man sämtlichen programmcode den irgendwer mal irgendwann geschrieben hat durchsuchen müsste und alle ORs entsprechend ersetzen. Absolut nicht realisierbar.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 14.01.2009, 15:18    Titel: Antworten mit Zitat

Zitat:
Gerade in solchen Fällen wie: IF EinfacheBoolVariable OR komplexeFunktion() sollte der Compiler einfach aus Verdacht die Variable zuerst auswerten und dann erst die Funktion aufrufen.

In FreeBASIC gibt es ja keine Bool-Variablen, und für andere Variablen bin ich gegen eine automatische Optimierung. Es kann immerhin sein, dass mich nicht der Wahrheitswert, sondern tatsächlich das Ergebnis der Binärverknüpfung interessiert, und dann will ich mich darauf verlassen können, dass auch genau das passiert. Insofern ist eine Lösung mit & und && hervorragend (wenn auch natürlich nicht BASIC-mäßig). Ein gesondertes Schlüsselwort wie ORELSE ist ja genau das, was diese Unterscheidung vornehmen soll. Ich hätte mir zwar ein kürzeres Schlüsselwort gewünscht, aber was soll's?

edit: MisterD war ein bisschen schneller als ich. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 14.01.2009, 16:31    Titel: Antworten mit Zitat

Oh, ich ging nur vom logischen Operator aus. Es stimmt natürlich, was meine Vorposter geschrieben haben.
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 14.01.2009, 19:31    Titel: Antworten mit Zitat

@nemored

es wurden schon die ersten änderungen in FBC vorgenommen, für den support von Bollischen variablen. wenn die nicht jetzt sogar schon drin sind.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz