Autor Beitrag
twister87
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 28.11.05 23:19 
Hi,
ich habe diese Prozedur geschrieben, mit der der Mittelwert aus einem Memo-Feld ausgelesen werden soll.

Allerdings bekomme ich folgenden Fehler
[Fehler] Unit1.pas(56): E2250 Es gibt keine überladene Version von 'FloatToStr', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(57): E2010 Inkompatible Typen: 'string' und 'Real'

ich weiß echt nicht, woran das liegt... Könnt ihr mir helfen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
 var
i,k:integer;
Mittelwert,m :real;
Mit: array[1..20of integer;
begin
for i:=1 to 20 do
  begin
k:=k+Mit[k]
 end;
Mittelwert:=k/20;
Mittelwert:=FloatToStr;
Edit1.Text:=Mittelwert;
end;


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 28.11.05 23:24 
Moin und :welcome: im Forum!

Mach das mal so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);  
  var  
    i,k: Integer;  
    Mittelwert,m: Real;  
    Mit: array[1..20of integer;  
begin  
  for i:=1 to 20 do
    k := k +Mit[k];
  Mittelwert := k/20;  
  Edit1.Text := FloatToStr(Mittelwert);
end;

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 28.11.05 23:29 
vielen dank, das funktioniert jetzt , ABER:
Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00454E49 in Modul 'Project1.exe'. Lesen von Adresse 0247F22C'. Prozess Project1.exe (2816)
jetzt zeigt er diesen Fehler an.
Wenn ich doch bloß wüsste, was das alles heißen soll... :P

also es soll aus 20 werten der mittelwert gebildet werden...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 28.11.05 23:40 
Moin!

user profile icontwister87 hat folgendes geschrieben:
Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00454E49 in Modul 'Project1.exe'. Lesen von Adresse 0247F22C'. Prozess Project1.exe (2816)
jetzt zeigt er diesen Fehler an.

Nur diese Fehlermeldung sagt natürlich herzlich wenig... :wink: bei welchem Befehl wird denn die Exception ausgelöst? Und wie sieht der Code drum rum aus?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 28.11.05 23:44 
user profile iconNarses hat folgendes geschrieben:
Moin!

user profile icontwister87 hat folgendes geschrieben:
Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00454E49 in Modul 'Project1.exe'. Lesen von Adresse 0247F22C'. Prozess Project1.exe (2816)
jetzt zeigt er diesen Fehler an.

Nur diese Fehlermeldung sagt natürlich herzlich wenig... :wink:

das ist ja mein problem :P
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button3Click(Sender: TObject);
begin
 close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Memo1.text:='';
 Edit1.text:='';
end;

procedure TForm1.Button1Click(Sender: TObject);
 var
i,k:integer;
Mittelwert,m :real;
Mit: array[1..20of integer;
begin
for i:=1 to 20 do
  begin
k:=k+Mit[k]
 end;
Mittelwert:=k/20;
Edit1.Text := FloatToStr(Mittelwert);
end;

end.



das hier ist das protokoll, ich hoffe das hilft
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Thread-Start: Thread-ID: 3756. Prozess Project1.exe (764)
Prozessstart: C:\Dokumente und Einstellungen\Jan\Eigene Dateien\Borland Studio-Projekte\Mittelwert\Project1.exe. Basisadresse: $00400000. Prozess Project1.exe (764)
Modul laden: Project1.exe. Enthält Debug-Infos. Basisadresse: $00400000. Prozess Project1.exe (764)
Modul laden: ntdll.dll. Ohne Debug-Infos. Basisadresse: $7C910000. Prozess Project1.exe (764)
Modul laden: KERNEL32.dll. Ohne Debug-Infos. Basisadresse: $7C800000. Prozess Project1.exe (764)
Modul laden: USER32.dll. Ohne Debug-Infos. Basisadresse: $77D10000. Prozess Project1.exe (764)
Modul laden: GDI32.dll. Ohne Debug-Infos. Basisadresse: $77EF0000. Prozess Project1.exe (764)
Modul laden: ADVAPI32.dll. Ohne Debug-Infos. Basisadresse: $77DA0000. Prozess Project1.exe (764)
Modul laden: RPCRT4.dll. Ohne Debug-Infos. Basisadresse: $77E50000. Prozess Project1.exe (764)
Modul laden: OLEAUT32.dll. Ohne Debug-Infos. Basisadresse: $770F0000. Prozess Project1.exe (764)
Modul laden: msvcrt.dll. Ohne Debug-Infos. Basisadresse: $77BE0000. Prozess Project1.exe (764)
Modul laden: ole32.dll. Ohne Debug-Infos. Basisadresse: $774B0000. Prozess Project1.exe (764)
Modul laden: VERSION.dll. Ohne Debug-Infos. Basisadresse: $77BD0000. Prozess Project1.exe (764)
Modul laden: COMCTL32.dll. Ohne Debug-Infos. Basisadresse: $5D450000. Prozess Project1.exe (764)
Modul laden: UxTheme.dll. Ohne Debug-Infos. Basisadresse: $5B0F0000. Prozess Project1.exe (764)
Modul laden: asOEHook.dll. Ohne Debug-Infos. Basisadresse: $67330000. Prozess Project1.exe (764)
Modul laden: MSVCR71.dll. Ohne Debug-Infos. Basisadresse: $7C340000. Prozess Project1.exe (764)
Modul laden: MSCTF.dll. Ohne Debug-Infos. Basisadresse: $746A0000. Prozess Project1.exe (764)
Modul laden: GameHook.dll. Ohne Debug-Infos. Basisadresse: $10000000. Prozess Project1.exe (764)
Modul laden: lgscroll.dll. Ohne Debug-Infos. Basisadresse: $10100000. Prozess Project1.exe (764)
Modul laden: MSVCP71.dll. Ohne Debug-Infos. Basisadresse: $7C3A0000. Prozess Project1.exe (764)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 28.11.05 23:48 
Moin!

Hmm, ich suche nicht die Fehler für dich, ich gebe dir höchstens ein paar Tipps... :| Du darfst dich auch ruhig ein bischen anstrengen. :roll:

Wo wird denn nun die Exception ausgelöst, sprich, wo steht der Cursor, wenn du das Exception-Fenster wegklickst?

cu
Narses

PS: Dein Code enthält noch zwei entscheidende Fehler; aber du sollst auch ein bischen was zur Lösung beitragen, nicht nur hier den Code hinklatschen nach dem Motto "dann seht mal zu, wie ihr meinen Code ans laufen kriegt"... :shock:

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Di 29.11.05 00:01, insgesamt 1-mal bearbeitet
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 29.11.05 00:01 
ich streng mich ja an :?
ich hab halt nur keine ahnung :(
auf jeden fall hält die prozedur dann bei dem k:=k+Mit[k] an


dass du den fehler nicht für mich suchen sollst, ist mir aber auch klar... 8)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 29.11.05 00:03 
Moin!

user profile icontwister87 hat folgendes geschrieben:
ich hab halt nur keine ahnung :(

Das soll niemandes Schaden sein. :wink:

user profile icontwister87 hat folgendes geschrieben:
auf jeden fall hält die prozedur dann bei dem k:=k+Mit[k] an

Na fein, da haben wir doch schon mal was. Also ist hier (höchstwahrscheinlich) was falsch. Beschreib doch mal mit deinen eigenen Worten was da passieren soll.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 29.11.05 00:08 
eigentlich sollen da nur die 20 werte aus dem memo-feld addiert werden...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 29.11.05 00:11 
Moin!

user profile icontwister87 hat folgendes geschrieben:
eigentlich sollen da nur die 20 werte aus dem memo-feld addiert werden...

OK :wink: gaaanz langsam; klar soll da ein Mittelwert gebildet werden. Da es aber in Delphi nun mal keine Befehl für das Mittelwertbilden gibt, werden wir da schon selbst was "bauen" müssen.

Nochmal die Zeile:
ausblenden Delphi-Quelltext
1:
k := k +Mit[k];					

Diese kann man in drei wichtige Teile zerlegen:
a) k :=
b) k
c) +Mit[k]

Was passiert hier in den einzelnen Abschnitten denn ganz genau?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 29.11.05 00:19 
user profile iconNarses hat folgendes geschrieben:
Moin!

user profile icontwister87 hat folgendes geschrieben:
eigentlich sollen da nur die 20 werte aus dem memo-feld addiert werden...

OK :wink: gaaanz langsam; klar soll da ein Mittelwert gebildet werden. Da es aber in Delphi nun mal keine Befehl für das Mittelwertbilden gibt, werden wir da schon selbst was "bauen" müssen.

Nochmal die Zeile:
ausblenden Delphi-Quelltext
1:
k := k +Mit[k];					

Diese kann man in drei wichtige Teile zerlegen:
a) k :=
b) k
c) +Mit[k]

Was passiert hier in den einzelnen Abschnitten denn ganz genau?

cu
Narses

also noch kürzer... ;)
ich hab das jetzt so geschrieben:
k:=k+Mit[i]
dabei ist k ja zuerst 0,oder?
dazu wird jetzt der erste wert aus demm memo-feld addiert... Dies passiert 20 Mal, bis alle Werte zusammengerechnet sind.
Das funktioniert jetzt denke ich auch, nur, dass ich als ergebnis jetzt immer 2444753,45 rausbekomme...
kA wodran das liegt :(

außerdem bekomme ich folgende warnung:
[Warnung] Unit1.pas(54): W1036 Variable 'k' ist möglicherweise nicht initialisiert worden

leider muss ich jetzt schlafen gehen, bin aber morgen wieder da ;)

cu
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 29.11.05 00:23 
Moin!

user profile icontwister87 hat folgendes geschrieben:

ich hab das jetzt so geschrieben:
k:=k+Mit[i]

Na wunderbar, 1. Fehler gefunden. :wink: Und auch noch praktisch alleine. :D

user profile icontwister87 hat folgendes geschrieben:
dabei ist k ja zuerst 0,oder?

Wer sagt das?! Im Gegenteil:
user profile icontwister87 hat folgendes geschrieben:
außerdem bekomme ich folgende warnung:
[Warnung] Unit1.pas(54): W1036 Variable 'k' ist möglicherweise nicht initialisiert worden

Und da ist auch schon Fehler Nummer 2! Der Compiler sagt´s doch schon, du hast k nicht initialisiert, da fehlt also noch ein k := 0; vor der Schleife.

Allerdings, wenn dein Code Werte aus einem Memo addieren soll, dann fehlt aber noch der Code, der die Zahlen aus dem Memo in das Feld Mit[] überträgt; das ist dir schon klar, ja? :wink:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 29.11.05 09:41 
ich dachte mir schon, dass da noch was fehlt...
ich wusste nur nicht was :P

wie genau lasse ich ihn denn die werte auf Mit[] übertragen???
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 29.11.05 12:18 
Moin!

Das Mittelwert-Problem ist ja nun gelöst; dann markiere diesen Thread bitte als gelöst. Danke. :wink:

user profile icontwister87 hat folgendes geschrieben:
wie genau lasse ich ihn denn die werte auf Mit[] übertragen???

Andere Frage, anderer Thread. (Forumsregeln!) :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
twister87 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 29.11.05 16:49 
vielen dank nochmal für deine hilfe...
das mit dem übertragen hab ich heute in der shcule gemacht, ist also auch gelöst

twister