![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > Mathematiker hier? | [ - Search - New posts - Register - Login - ] |
1 -2- | [ - Post reply - ] |
2005-05-20, 19:24 h Holger Posts: 8116 User |
Zitat:Wie kann das langsamer sein, wo es doch mit 16Bit Variable gar nicht funktioniert? Zitat:Weil 16Bit früher auf C64 und 8086 schneller als 32Bit war, heißt das nicht, das man die Programmiertechniken von damals beibehalten muß. Natürlich gibt es Situationen, in denen es eine Rolle spielt, zum Beispiel bei der Frage "Dim n%(10000)" oder "Dim n&(10000)", aber eine Schleifenvariable sollte definitiv nicht dazu gehören. Und vor kurzem noch hast Du floating-point benutzt, wo integer vollkommen ausreichend war, und hast Dich nicht an dem (in diesem Fall wirklich vorhandenem) Performanceunterschied gestört. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-05-20, 19:30 h Holger Posts: 8116 User |
Nachtrag: Ich kenne übrigens keine Programmierer, der bei solchen Dingen 16Bit-Variablen nutzen würde. Ich kenne allerdings auch keine Basic-Programmierer. [ - Answer - Quote - Direct link - ] |
2005-05-21, 00:30 h NoImag Posts: 1050 User |
Zitat: Auf 32-Bit-Prozessoren gibt es normalerweise keinen Grund 16-Bit-Variablen zu benutzen, es sei denn, du musst Speicher sparen. Bei einer Zählvariablen sollte dies aber kein wirkliches Argument sein. Tschüß, [ - Answer - Quote - Direct link - ] |
2005-05-21, 10:45 h MaikG Posts: 5172 User |
>Wie kann das langsamer sein, wo es doch mit 16Bit Variable >gar nicht funktioniert? Wenn man es mit % und & macht, bis 30000 und vergleicht. >Weil 16Bit früher auf C64 und 8086 schneller als 32Bit war, >heißt das nicht, das man die Programmiertechniken von >damals beibehalten muß. Ich weiss nicht aber das Programm schrieb ich zuerst auf einen 030er, der volle 32Bit hat. >Und vor kurzem noch hast Du floating-point benutzt, wo >integer vollkommen ausreichend war, und hast Dich nicht >an dem (in diesem Fall wirklich vorhandenem) >Performanceunterschied gestört. Es mach einen Unterschied ob man nur 20x die Funktion benötigt oder 30000x. [ - Answer - Quote - Direct link - ] |
2005-05-21, 11:15 h Ralf27 Posts: 2779 User |
@MaikG: Du machst mich neugierig: Schreibst du in MBasic? Was für Programme hast du denn schon geschrieben? Ich suche halt Leute im Amiga-Universum die MBasic programmieren. Es wäre einfach unglaublich wenn ich einen finden würde der real was mit MBasic für unsere Kiste schreiben würde. ![]() -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-05-21, 15:01 h MaikG Posts: 5172 User |
>sec% = blocks&/75 >min% = sec%/60 >sec% = sec% - min% * 60 Geht doch nicht... Ergibt abweichende werte. @Ralf27 ich schreib nur Kleinigkeiten für den Eigenbedarf. Also nicht wirklich was jemand anderes gebrauchen könnte. Eine Long Integer schleife mit 31000 ist um 0,02 sekunden langsamer als eine Integer. Mit 68060. [ - Answer - Quote - Direct link - ] |
2005-05-21, 19:40 h Palgucker Posts: 1342 User |
Ich weis zwar nicht warum, aber irgendwie ist die Modulo Berechnung hier irgendwie zu kurz gekommen, obwohl sie sich gerade zur berechnung der "Restsekunden" anbietet. Kann MaxonBasic kein Modulo? - kann ich mir nicht vorstellen. Dein Programm könnte dann etwa so aussehen: >allsec% = blocks&/75 >min% = allsec%/60 >sec% = allsec% mod 60 Ob der Operand für die Modulo bei MaxonBasic nun "mod" heist, weiß ich nicht, aber dafür ist z.B Ralf27 ein Ansprechpartner 1. Wahl. mfg Palgucker [ - Answer - Quote - Direct link - ] |
2005-05-21, 21:11 h MaikG Posts: 5172 User |
>Kann MaxonBasic kein Modulo? - kann ich mir nicht >vorstellen. Was soll das sein? >Dein Programm könnte dann etwa so aussehen: Mein Programm läuft schon, zwar mit Floating Point Variablen, aber das macht nichts, ist trotzdem in ein bruchteil einer Sekunde fertig. [ - Answer - Quote - Direct link - ] |
2005-05-21, 21:36 h Ralf27 Posts: 2779 User |
Zitat: Versuch doch einfach mal folgendes: for x=0 to 20 print x mod 3 next Damit sieht man recht einfach was dieses Modulo macht. ![]() -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-05-21, 21:42 h Ralf27 Posts: 2779 User |
Zitat: Danke für die Blumen. ![]() -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-05-21, 23:51 h Palgucker Posts: 1342 User |
@ MaikG quote: >Kann MaxonBasic kein Modulo? - kann ich mir nicht >vorstellen. Was soll das sein? Da ha'm wir's Doch Grundschule verpasst;) - aber Spass beiseite. Du wirst Dich eventuell an die 2. oder 3.Klasse erinnern. Da musten wir eben solche Sachen rechnen,wie: 14 geteilt durch 5 Dort kam dann eben heraus, das dies 2 ist - Rest 4. Und genau diesen Rest berechnet die Modulorechnung. Also gar nichts kompliziertes. Merkwürdiger Weise kann ich mich auch nicht erinnern, das ich in den folgenden 7-8 Schuljahren jemals was von Modula gehöhrt habe. Das diese Berechnungsform zu den "Grundrechenarten" gehört, habe ich eigendlich auch erst mit dem Besitz eines Rechners festgestellt. Das kannst Du z.B. auch in der Shell ausprobieren: Eval 14 mod 5 oder diese Script: code:;GetPlayTime .key Blocks .bra { .ket } setenv allsec 'eval ({Blocks}*1000) / 75' setenv min 'eval $allsec / 60000' setenv sec 'eval $allsec/1000 mod 60'; <-- da isses! setenv milli 'eval $allsec-({Blocks}/75*1000)' echo "Laufzeit: $min:$sec:$milli" unsetenv allsec unsetenv min unsetenv sec unsetenv milli kannst Du ja mal aus "Geikel" mit "execute Datei Blockzahl" ausprobieren mfg Palgucker [ - Answer - Quote - Direct link - ] |
2005-05-22, 08:57 h MaikG Posts: 5172 User |
>Du wirst Dich eventuell an die 2. oder 3.Klasse erinnern. >Da musten wir eben solche Sachen rechnen,wie: >14 geteilt durch 5 >Dort kam dann eben heraus, das dies 2 ist - Rest 4. Ich glaub damit tat ich mich schwer, weil bei mir ist das 2.8 - warum man einen Rest benötigt habe ich nie verstanden. Ich dachte die bringen mir das bei weil sie denken ich könnte nicht mit Komma rechnen. >Eval 14 mod 5 = 4 MaxonBasic hat den Befehl mod aber in Holger's programm ist der Befehl nicht gewesen. [ - Answer - Quote - Direct link - ] |
2005-05-22, 09:21 h Flinx Posts: 1073 User |
Zitat: Auch jetzt nicht, wo er hier doch offensichtlich gebraucht wird? Abgesehen davon, daß Du bei 2,8 ja auch einen Rest hast - 0,8 nämlich. Genau um das darzustellen, hat irgendwann mal jemand das Komma erfunden... [ - Answer - Quote - Direct link - ] |
2005-05-22, 14:31 h MaikG Posts: 5172 User |
>Auch jetzt nicht, wo er hier doch offensichtlich gebraucht >wird? Okay, das ist aber das 1.mal in 14 Jahren Programmieren vorgekommen. [ - Answer - Quote - Direct link - ] |
2005-05-22, 14:59 h Ralf27 Posts: 2779 User |
Zitat: Nun, das ist halt auch so ein Befehl denn man umgehen kann, bzw. aufwendig umgehn. So ist das auch z.b. bei a=b and 4 oder a=b or 4 oder a=b xor 4 oder sonstigen Bitmanipulationen. Man kann sie umgehn bzw. umschreiben, aber wenn man diese Befehle benutzt dann ist es einfacher, bzw. logischer. MBasic bietet hier sehr viel, bzw. benutze ich das auch nicht. Ich tipp hier nur die Includes, die ich (leider) auch nicht benutze, was ich eigentlich machen sollte. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-05-22, 22:28 h NoImag Posts: 1050 User |
Zitat: Du hast es erkannt. In der Grundschule konntest du noch nicht mit Kommas rechnen. Es gab nur Ganze Zahlen (Z). Die Bruchrechnung, die Vorausetzung für Kommazahlen (Dezimalbrüche, rationale Zahlen, Q) ist, kommt erst in Klasse 5. Tschüß, [ - Answer - Quote - Direct link - ] |
1 -2- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Mathematiker hier? | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |