Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Wichtige allgemeine Fragen (https://www.delphipraxis.net/164756-wichtige-allgemeine-fragen.html)

hotkey 28. Nov 2011 17:59

Wichtige allgemeine Fragen
 
Hallo , ich gehe in die 12.Klasse und schreibe am Donnerstag eine Informatik-LK-Klausur.

Wir arbeiten mit Delphi.

Nun , ich habe da einige Fragen, hab zwar bei Wikipedia geguckt , aber die Sachen da finde ich nicht so dolle.

Also ; was sind Paramater und warum benutzt man Parameter , wo ist der Vorteil?

Was ist eine Verzweigung ? Wofür benutzt man Verzweigungen?

Wenn ich z.B einen Array habe :

type TSchuler= array [1..3] of string;
var Schuler:Tschuler;

Jetzt habe ich in diesem Array 3 Schüler :

Schüler[1] ='Hans';
Schüler[2] ='Peter';
Schüler[3] ='Marcel';

Kann ich das so machen ?

Und jetzt will ich eine Funktion aufbauen , mit der ich z.B einen Schüler aus dem Array entfernen bzw. ändern will , wie geht das ?

function loeschenoderaendern , wie geht das weiter ?

Und wie kann ich mit einer Funktion einem Array Daten zuweisen ?
Zum Beispiel will ich , dass ich dem Schüler 2 mit einer Funktion nicht Peter zuweise sondern Klaus , wie geht das ? Ich bitte um den kleinen Code mit einer Funktion , das ist für mich sehr wichtig.

Delphi-Laie 28. Nov 2011 18:13

AW: Wichtige allgemeine Fragen
 
Diesen Wust an Einsteigerfragen (immerhin hast Du schon 14 Beiträge auf Deiner Habenseite) Dir zu beantworten wird sich hier wohl kaum jemand die Mühe machen. Es gibt gute Delphi-Einstiegsliteratur auch im Internet.

DeddyH 28. Nov 2011 18:14

AW: Wichtige allgemeine Fragen
 
Parameter erhöhen die Flexibilität einer Routine. Man übergibt ihr je nach Situation verschiedene Parameterwerte, und die Routine benutzt diese dann intern.
Verzweigungen dienen der Unterscheidung möglicher Zustände. Es gibt die einfache (if then else) und die mehrfache (case of) Verzweigung.
Du hast da ein statisches Array. Die Zuweisung ist so in Ordnung. Löschen geht bei statischen Arrays allerdings nicht, Du kannst das höchstens simulieren, indem Du einen festgesetzten Wert einträgst und das Array-Element so als gelöscht markierst.
Um ein Array an eine Routine zu übergeben, welche dessen Inhalte dauerhaft verändern kann, muss dieses als Var-Parameter gekennzeichnet sein (Call by Reference).

Für weitergehende Infos verweise ich auf die Tutorials bzw. das E-Book im Delphi-Treff.

hotkey 28. Nov 2011 18:18

AW: Wichtige allgemeine Fragen
 
Na gut , aber es wäre nett , wenn das mit diesen Funktionen erläutert wird , denn ich möchte wissen wie man Daten an Arrays über Funktion vergeben kann , das ist echt wichtig.

Darlo 28. Nov 2011 18:34

AW: Wichtige allgemeine Fragen
 
DeddyH hat Dir doch alle Antworten gegeben! Bisschen solltest Du Dich schon mit
dem Thema beschäftigen....


http://www.delphi-treff.de/object-pa...ktionen/#c4922


Code:
procedure machwas(var zahl: integer);
  begin
    zahl := zahl+5;
    ...
  end;

  procedure aufruf;
  var einezahl: integer;
  begin
    einezahl := 5;
    machwas(einezahl);
  end;

hotkey 28. Nov 2011 18:36

AW: Wichtige allgemeine Fragen
 
Das habe ich mir schon angeguckt.

Mein größtes Problem ist ja , dass , wenn ich einen Array habe , wie in meinem ersten Thread zu sehen ist , an diese Daten übergeben will , mit einer FUNKTION.
Wie geht sowas ? Das steht leider NICHT in diesem Tutorial.

Ich will zum Beispiel dem Feld 2 einen anderen Namen zuweisen , mit einer Funktion , wie geht das ?

DeddyH 28. Nov 2011 18:40

AW: Wichtige allgemeine Fragen
 
Kleine Demo ohne Typisierung (eine solche böte sich zwar wahrscheinlich an, aber ich will es nicht zu kompliziert machen):
Delphi-Quellcode:
procedure ChangeArrayFirstElement(var Arr: array of string); //Var-Parameter
begin
  if Length(Arr) > 0 then
    Arr[0] := 'Blabb';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  TestArr: array[0..10] of string;
begin
  TestArr[0] := 'Wuppdi';
  ShowMessage(TestArr[0]);
  ChangeArrayFirstElement(TestArr);
  ShowMessage(TestArr[0]);
end;

Klaus01 28. Nov 2011 18:43

AW: Wichtige allgemeine Fragen
 
Delphi-Quellcode:
function changeValue(sArray: TSchuler;idx: Byte; newValue: AnsiString): Boolean;
begin
  result := true;
  try
    sArray[idx] := newValue;
  except
    result := false;
  end;
end;
Grüße
Klaus

DeddyH 28. Nov 2011 18:49

AW: Wichtige allgemeine Fragen
 
Ich bezweifle, dass das mit einem Call By Value so funktioniert wie gedacht.

hotkey 28. Nov 2011 18:53

AW: Wichtige allgemeine Fragen
 
Zitat:

Zitat von DeddyH (Beitrag 1138292)
Kleine Demo ohne Typisierung (eine solche böte sich zwar wahrscheinlich an, aber ich will es nicht zu kompliziert machen):
Delphi-Quellcode:
procedure ChangeArrayFirstElement(var Arr: array of string); //Var-Parameter
begin
  if Length(Arr) > 0 then
    Arr[0] := 'Blabb';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  TestArr: array[0..10] of string;
begin
  TestArr[0] := 'Wuppdi';
  ShowMessage(TestArr[0]);
  ChangeArrayFirstElement(TestArr);
  ShowMessage(TestArr[0]);
end;

Danke für das Beispiel , aber warum hast du bei der Prozedur " ChangeArrayFirstElement" im Kopf mit var gearbeitet , warum ist das Call-by-Reference ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Seite 1 von 3  1 23      

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