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
Antwort Antwort
Benutzerbild von n00b_on_knees
n00b_on_knees

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

Matrix 2

  Alt 11. Mai 2003, 17: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
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#2
  Alt 11. Mai 2003, 17:21
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?
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 11. Mai 2003, 17:38
Hier wird nichts geschlosse. Aber du wirst ermahnt. 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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 00:18 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