![]() |
Matrix 2
ich habe noch eine frage zu einem ähnlichen programm wie in dem letzten matrix tread, genauergesagt eine erweiterung zu diesem. es wird angezeigt : "die typen der tatsächlichen und formalen var-parameter müssen übereinstimmen." wenn ich nur wüsste was das bedeuten soll ^^". ich poste mal wieder den delphisource code, hoffe ihr könnt mir helfen! thx im vorraus, die kommentare müssten aufschluss geben was das programm macht.
Delphi-Quellcode:
//*******************************************************// // // // Name: fDASTA202 // // Autor: n00b on knees // // Datum: 10.05.2003 // // Zweck: Liest eine Zahl N in, erstellt eine Matrix // // mit NxN Reihen, liest X und Y ein, deren // // Zeilennummern der Matrix dann vertauscht werden.// // // //********************************************************// unit fdasta202; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFeld = array [1..10, 1..10] of integer; TForm1 = class(TForm) mmAus: TMemo; btStart: TButton; Label1: TLabel; edN: TEdit; X: TLabel; edX: TEdit; Label2: TLabel; edY: TEdit; btVertauschen: TButton; procedure ShowMatrix(var a: integer; var N: TFeld); procedure FillMatrix(var AFeld: TFeld; N: integer); procedure btStartClick(Sender: TObject); private function GetN: integer; function GetLine (var N: integer; var AFeld: TFeld): TFeld; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} //********************************************************// // // // Name: GetN // // Datum: 10.05.2003 // // Zweck: Liest die Zahl N ein, und prüft ob sie im // // Bereich von 2 bis 10 liegt. // // // //********************************************************// function TForm1.GetN: integer; //Variablendeklaration var N: integer; begin //Einlesen N:=StrToInt(edN.Text); //Wenn N im Bereich von 2 bis 10 liegt, dann if (N > 1) and ( N <= 10) then //Rückliefere N result:= N else result:=random(9)+2; end; //********************************************************// // // // Name: FillMatrix // // Datum: 10.05.2003 // // Zweck: Füllt das mehrdimensionale Array mit // // Zufallszahlen von 0 bis 99. // // // //********************************************************// procedure TForm1.FillMatrix(var AFeld: TFeld; N: integer); //Variablendeklaration var i, j: integer; begin //Kopfgesteurte Schleife, wobei i die 3 Zeilen sind. for i:= 1 to N do //Kopfgesteuerte Schleife, wobei j die 6 Spalten sind. for j:=1 to N do //fügt jedem Feldelement eine Zufallszahl von 0 bis 9 zu. AFeld[i, j]:= random(99)+1; end; //********************************************************// // // // Name: ShowMatrix // // Datum: 10.05.2003 // // Zweck: Gibt das mehrdimensionale Feld aus. // // // //********************************************************// procedure TForm1.ShowMatrix(var a: integer; var N: TFeld); //Variablendeklaration var i, j: integer; begin //leert das Memofeld mmAus.Clear; //Beide folgenden Schleifen sind zur Formatierten Ausgabe in der Tabellenart for i:=1 to a-1 do begin mmAus.Lines.Add(format('%3d. Reihe: ',[i])); for j:=1 to a-1 do mmAus.Lines[i]:= mmAus.Lines[i]+format('%3d',[N[i,j]]); end; end; //********************************************************// // // // Name: GetLine // // Datum: 10.05.2003 // // Zweck: Liest X und Y ein, überrprüft ob diese im // // richtigen Bereich liegen, und vertauscht // // die Zeilen mit den Nummern. // // // //********************************************************// function TForm1.GetLine (var N: integer; var AFeld: TFeld): TFeld; //Variablendeklaration var x, y, i: integer; Temp: array [1..10] of integer; begin //Einlesen der Variablen x:= StrToInt(edX.Text); y:= StrToInt(edY.Text); //Wenn X und Y kleiner gleich N, und größer 1 sind, dann if (x <= N) and (y <= N) and (x > 1) and (y > 1) then //Kopfegesteuerte Schleife, von 1 bis N um die Zeilen zu vertauschen for i:=1 to N do begin Temp[i]:= AFeld[x, i]; AFeld[x,i]:= AFeld[y,i]; AFeld[y,i]:= Temp[i]; end; //Liefert das Feld zurück result:= AFeld; end; procedure TForm1.btStartClick(Sender: TObject); //Variablendeklaration var Feld: TFeld; N: integer; begin //Ruft alle Unterprogramme auf N:= Getn; FillMatrix(N, Feld); ShowMatrix(N, Feld);//Hier wird der Fehler angezeigt Feld:= GetLine(N, Feld); ShowMatrix(N, Feld); end; end. |
die frage hat sich jetzt bereits im altem tread erledigt, wenn ein moderator so nett wäre, könnte er diesen tread bitte löschen oder schließen?
|
Hier wird nichts geschlosse. Aber du wirst ermahnt. :mrgreen: Könntest du das nächste mal einen so langen Quellcode als Anhang anhängen? Da kannst du dann sogar das ganze Projekt als Archiv reinpacken. Das wäre dann ein toller Service für andere zur Fehler suche für dich. :wink:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 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