AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit While Schleife (immer noch)

Ein Thema von clarity · begonnen am 6. Aug 2004 · letzter Beitrag vom 6. Aug 2004
Antwort Antwort
clarity

Registriert seit: 20. Jul 2004
Ort: Radis
15 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 00:50
Hi leute,
erst mal danke für die vielen Antworten auf mein erstes Problem, aber es tritt trotz der ideen noch ein Problem auf

Hier nochmal das Problem.

Hab den Code jetzt mal so verändert

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;
            break;
            j:= intervallend;
          end;
      end;
    end;
 if vza[j] = 0 then inc(j);
end;
des funzt aber nicht . Das Programm läuft an, aber das PG "friert" dann ein,
es läuft nichts mehr. Kann es sein, das die Schleife überfordert ist ??


Der array vza hat etwa eine Länge von 10000

THX
Alex Mensch
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 00:54
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;
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:01
Zitat von clarity:
Hab den Code jetzt mal so verändert :

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;
            break;
            j:= intervallend;
          end;
      end;
    end;
 if vza[j] = 0 then inc(j);
end;
Wie oft denn noch ? Innerhalb der FOR-Schleife manipulierst du dieselbe. While-Schleife ist kein Allheilmittel. 8)

Wenn ich sage :
Delphi-Quellcode:
i := 1;
while i >= 1 then begin
  i := i +1
// Rest
end;
wird das auch Endlosschleife. Jo, das Break tut dann den Rest.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:10
Was willst du mit dem Code eigentlich erreichen? Ich werde daraus nicht ganz schlau.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#5

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:11
ach ja, nochwas: aus dem ">=" am anfang (meine lösung - ich weiß nicht, was hansa anders haben will= mal lieber ein "<"
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:14
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
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:19
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 !!
Gruß
Hansa
  Mit Zitat antworten Zitat
clarity

Registriert seit: 20. Jul 2004
Ort: Radis
15 Beiträge
 
Delphi 6 Personal
 
#8

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:32
@ nailor: genau das ist was ich will:
ich hab nen array mit einsen und Nullen.
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

Erst mal THX@all, hoffe, mir kann noch jemand helfen
Alex Mensch
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#9

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:49
@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...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Problem mit While Schleife (immer noch)

  Alt 6. Aug 2004, 01:55
Zitat von nailor:
...mach dir lieber nen array, wo du nacheinander die indizes der vorzeichenwechsel reinspeicherst..
Der Ansatz ist gut, aber zu der Uhrzeit nicht mehr. Nur noch eines : Array, da paßt eigentlich gut FOR dazu. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz