Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4594 Wohnort: ~/
|
Verfasst am: 13.01.2009, 22:34 Titel: |
|
|
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. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
The_Muh aka Mark Aroni
Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 13.01.2009, 22:35 Titel: |
|
|
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. |
Deswegen der Unterstrichene Satz.
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
/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 |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 13.01.2009, 22:37 Titel: |
|
|
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 |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 13.01.2009, 23:22 Titel: |
|
|
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 |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 14.01.2009, 14:14 Titel: |
|
|
Deswegen mag ich c-ähnliche sprachen auch viel lieber, da gibt's den unterschied zwischen & und && bzw | und ||. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.01.2009, 15:15 Titel: |
|
|
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 |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4594 Wohnort: ~/
|
Verfasst am: 14.01.2009, 15:18 Titel: |
|
|
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. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 14.01.2009, 19:31 Titel: |
|
|
@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 |
|
|
|