AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit einer Schleife

Ein Thema von mat72 · begonnen am 1. Mai 2012 · letzter Beitrag vom 1. Mai 2012
Antwort Antwort
mat72

Registriert seit: 15. Mär 2012
35 Beiträge
 
#1

Problem mit einer Schleife

  Alt 1. Mai 2012, 11:21
Delphi-Version: 7
Hallo,
ich habe ein Problem mit einer Schleife. In der Schleife soll der Max_Wert ermittelt.
Der Zaehler soll auch gleichzeitig die Position merken in pmax. pmax benoetige ich, um von einer 2ten Matrix einen Wert zu bekommen.
Die Werte f1 bis f9 bekomme ich von einer anderen Procedure.
Den Max-Wert bekomme ich angezeigt, nur die Ausgabe der 2ten Matrix funktioniert nicht.
Habe ich einen Denkfehler in dem Programm?

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var max : extended;
    i,pmax : integer;
    focusarray : array[1..9] of extended;
    matrixarray : array[1..9] of extended;
begin
 foc:=0;
 pmax:=0;
 focusarray[1]:=f1;
 focusarray[2]:=f2;
 focusarray[3]:=f3;
 focusarray[4]:=f4;
 focusarray[5]:=f5;
 focusarray[6]:=f6;
 focusarray[7]:=f7;
 focusarray[8]:=f8;
 focusarray[9]:=f9;

 matrixarray[1]:=-0.4;
 matrixarray[2]:=-0.3;
 matrixarray[3]:=-0.2;
 matrixarray[4]:=-0.1;
 matrixarray[5]:=0;
 matrixarray[6]:=0.1;
 matrixarray[7]:=0.2;
 matrixarray[8]:=0.3;
 matrixarray[9]:=0.4;

 max:=f1;

 for i:=1 to 9 do
   begin
    if max<focusarray[i] then
    max:=focusarray[i];
    pmax:=i;
   end;
   foc:=matrixarray[pmax];
   stringgrid1.cells[1,1]:=FloatToStrF(foc, ffNumber, 8, 3);
   stringgrid1.cells[2,1]:=FloatToStrF(max, ffNumber, 8, 3);
end;
Danke fuer eure Hilfe.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem mit einer Schleife

  Alt 1. Mai 2012, 11:24
pmax ist bei die immer gleich der Zählvariable, anstatt nur wenn Wert größer Maximum
Delphi-Quellcode:
    if max<focusarray[i] then
    begin
        max:=focusarray[i];
        pmax:=i;
    end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Problem mit einer Schleife

  Alt 1. Mai 2012, 11:25
ohne weitergehende Untersuchung
Delphi-Quellcode:
    if max<focusarray[i] then
    begin
      max:=focusarray[i];
      pmax:=i;
    end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Problem mit einer Schleife

  Alt 1. Mai 2012, 15:50
pmax steht auf 0, wenn in der Schleife nichts größer als der erste Wert ist,
und schon stimmt was nicht mehr, wenn du auf den Index 0 zugreifen willst. (den es nicht gibt )

Geh mal in die Projektoptionen, schalte die Bereichsprüfung an und schau ob was passiert.

Delphi-Quellcode:
 //max:=0; // eigentlich nutzlos, da es nachher sowieso wieder überschrieben wird
 //pmax:=0; //
 ...
 max:=f1;
 pmax:=1; // vergessen zu setzen
 for i:=2 to 9 do // 1 ist doch schon gesetzt, wozu nochmal prüfen?
$2B or not $2B
  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 14:21 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