![]() |
Problem mit While Schleife (immer noch)
Hi leute,
erst mal danke für die vielen Antworten auf mein erstes Problem, aber es tritt trotz der ideen noch ein Problem auf :wall: ![]() Hab den Code jetzt mal so verändert
Delphi-Quellcode:
des funzt aber nicht :wall: . Das Programm läuft an, aber das PG "friert" dann ein,
j:=0 ;
while j>= length(vza) do begin if vza[j] = 1 then begin intervallanf := j; for i:= j to length(vza) - j do begin if vza[j+i] = 1 then begin intervallend := j+i; break; j:= intervallend; end; end; end; if vza[j] = 0 then inc(j); end; es läuft nichts mehr. Kann es sein, das die Schleife überfordert ist ?? :gruebel: :!: Der array vza hat etwa eine Länge von 10000 :!: THX |
Re: Problem mit While Schleife (immer noch)
break spring aus ner schleife raus. machst du so:
Delphi-Quellcode:
j:=0 ;
while j>= length(vza) do begin if vza[j] = 1 then begin intervallanf := j; for i:= j to length(vza) - j do begin if vza[j+i] = 1 then begin intervallend := j+i; // sooooooooooooooooooooo: j:= intervallend; break; end; end; end; if vza[j] = 0 then inc(j); end; |
Re: Problem mit While Schleife (immer noch)
Zitat:
Wenn ich sage :
Delphi-Quellcode:
wird das auch Endlosschleife. Jo, das Break tut dann den Rest. :mrgreen:
i := 1;
while i >= 1 then begin i := i +1 // Rest end; |
Re: Problem mit While Schleife (immer noch)
Was willst du mit dem Code eigentlich erreichen? Ich werde daraus nicht ganz schlau.
|
Re: Problem mit While Schleife (immer noch)
ach ja, nochwas: aus dem ">=" am anfang (meine lösung - ich weiß nicht, was hansa anders haben will= mal lieber ein "<" :wall:
|
Re: Problem mit While Schleife (immer noch)
ich glaub er hat nen array mit 1en und 0en. und er will wissen wo ne 1 (intervallstart) ist und dann zur nächsten 1 (intervallend) suchen
|
Re: Problem mit While Schleife (immer noch)
Egal was er vor hat: Die Loop-Variable kann ich innerhalb der Schleife nicht so behandeln wie eine andere, genauso wenig, wie ich während der Motor läuft einen Ölwechsel machen kann.
@Nailor : du manipulierst ja auch die Schleife innerhalb. Das geht so nicht !! |
Re: Problem mit While Schleife (immer noch)
@ nailor: genau das ist was ich will:
ich hab nen array mit einsen und Nullen. :thumb: Möchte dann irgend wie das den abstand zwischen zwei Einsen ermitteln, und danach bei der Zweiten 1 beginnen und dann wieder den Abstand zur nächsten 1 ermitteln ... usw bis zum schluss. @ luckie: Habe das signal aus ner wave datei und habe jetzt bereits die stellen ermittelt, zwischen denen ein Vorzeichenwechsel stattfindet(Die Einsen), will dadurch später mal die einzelnen frequenzen in der Wav ermitteln :roll: Erst mal THX@all, hoffe, mir kann noch jemand helfen :mrgreen: |
Re: Problem mit While Schleife (immer noch)
@all: ich muss zugeben, so einfach, wie ich dachte geht es nicht
@hansa: dagegegen, in einer repeat/whil schleife die schleifenvariable zu ändern spricht garnichts. also nicht nur eins hochzählen, sondern richtig mit rechnen. eine endlosschleife sollte man aber vermeiden @all: ich glaub ich schreib jetzt doch nochmal nen tollen funktioierenden code @clarity: was bring dir bei deinem prob diese komische datenstruktur. mach dir lieber nen array, wo du nacheinander die indizes der vorzeichenwechsel reinspeicherst. dann kannst du durch eindfaches subtrahieren (minusrechnen) das machen, worums hier geht... |
Re: Problem mit While Schleife (immer noch)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz