variable und konstante

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

variable und konstante

Beitrag von a14xerus »

wie kann ich zulassen, das als step auch eien variable geht:

Code: Alles auswählen

         For i = freq_start To freq_ende Step freq_step
         Beep_(i,time) 
Next i


oder wie kann ich aus eiern variablen eien konstante machen?
Zuletzt geändert von a14xerus am 01.06.2006 20:32, insgesamt 1-mal geändert.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> oder wie kann ich aus eiern variablen eien konstante machen?

meine eier sind nich variabel...

scherz beiseite

> wie kann ich zulassen, das als step auch eien variable geht:

andere schleife nehmen:

Code: Alles auswählen

i = freq_start
Repeat
  Beep_(i,time)
  i + freq_step
Until i >= freq_ende 
bei for/next gehts nicht, weil dort die Stepgröße zur compilezeit fest im code verankert wird...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ok danke
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Kaeru Gaman hat geschrieben:bei for/next gehts nicht, weil dort die Stepgröße zur compilezeit fest im code verankert wird...
Hmm... wieso eigentlich? :?
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ei, weil darum...!?

konstanten werden zur compilezeit direkt als zahlen im code verankert. damit sind sie schneller, als ein variablenzugriff, wo ja ein pointer auf einen speicher übergeben wird.
das ist wohl auch noch heute einer der hauptgründe dafür, eine schleifenform mit fester step-zahl zu haben, weil sie einen tick schneller sein kann.

eigentlich ist wohl auch die Step-angabe eine weiterentwicklung, ursprünglich war wohl die For/Next-schleife als simple 1-schritt-vorwärts-schleife konzipiert. (afaik)

tatsächlich ist eine variable schrittgröße nicht wirklich wünschenswert.
schließlich geht es dabei nicht nur darum, dass man dieselbe schlefe mit unterschiedlichen stepgrößen starten kann, man könnte auch die schrittweite während die schleife läuft von innen heraus verändern, und das widerspricht dem For/Next-konzept, dafür sind Repeat/Until und While/Wend da.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten