AGB  ·  Datenschutz  ·  Impressum  







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

Matrix 2

Ein Thema von n00b_on_knees · begonnen am 11. Mai 2003 · letzter Beitrag vom 11. Mai 2003
 
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#1

Matrix 2

  Alt 11. Mai 2003, 16:13
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.
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
 


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:04 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