![]() |
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. |
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.
|
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. |
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.
|
AW: Wichtige allgemeine Fragen
DeddyH hat Dir doch alle Antworten gegeben! Bisschen solltest Du Dich schon mit
dem Thema beschäftigen.... ![]()
Code:
procedure machwas(var zahl: integer);
begin zahl := zahl+5; ... end; procedure aufruf; var einezahl: integer; begin einezahl := 5; machwas(einezahl); end; |
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 ? |
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; |
AW: Wichtige allgemeine Fragen
Delphi-Quellcode:
Grüße
function changeValue(sArray: TSchuler;idx: Byte; newValue: AnsiString): Boolean;
begin result := true; try sArray[idx] := newValue; except result := false; end; end; Klaus |
AW: Wichtige allgemeine Fragen
Ich bezweifle, dass das mit einem Call By Value so funktioniert wie gedacht.
|
AW: Wichtige allgemeine Fragen
Zitat:
|
AW: Wichtige allgemeine Fragen
Warum hörst Du nicht auf uns und liest die Tutorials? Ich habe keine Lust, jetzt hier über den Urschleim zu referieren, die Mühe haben sich bereits
![]() |
AW: Wichtige allgemeine Fragen
Zitat:
Egal ob es sich um ein statisches oder dynamisches handelt. Grüße Klaus |
AW: Wichtige allgemeine Fragen
zum rumspielen, ausprobieren und entdecken.
Einfach mal alles verdrehen und schauen was dann nicht mehr geht ....
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TSchueler=Array of String; TForm2 = class(TForm) FuellenMit10: TButton; ListBox1: TListBox; Umbenennen: TButton; NachNameLoeschen: TButton; procedure FuellenMit10Click(Sender: TObject); procedure UmbenennenClick(Sender: TObject); procedure NachNameLoeschenClick(Sender: TObject); private { Private-Deklarationen } FSchueler:TSchueler; procedure DisplayArray; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} Procedure AddSchueler(var Arr:TSchueler;const Entry:String); begin SetLength(Arr, High(Arr) + 2); Arr[High(Arr)] := Entry; end; Procedure RenameSchueler(var Arr:TSchueler;Index:Integer;const NewEntryName:String); begin if (Index <= High(Arr)) and (Index >= Low(Arr)) then Arr[Index] := NewEntryName; end; Procedure DeleteByIndex(var Arr:TSchueler;Index:Integer); var i:Integer; begin if (Index <= High(Arr)) and (Index >= Low(Arr)) then begin if Index=High(Arr) then SetLength(Arr,High(Arr)) else begin for I := Index + 1 to High(Arr) do Arr[i - 1] := Arr[i]; SetLength(Arr,High(Arr)); end; end; end; Procedure DeleteByName(var Arr:TSchueler;const EntryName:String); var i:Integer; foundIndex:Integer; begin foundIndex := -1; i := Low(Arr) - 1; while (i< High(Arr)) and (foundIndex = -1) do begin inc(i); if Arr[i] = EntryName then foundIndex := i; end; if foundIndex > -1 then DeletebyIndex(Arr, FoundIndex); end; procedure TForm2.UmbenennenClick(Sender: TObject); begin RenameSchueler(FSchueler,5,'Fünf'); DisplayArray; end; procedure TForm2.FuellenMit10Click(Sender: TObject); var i:Integer; begin for I := 1 to 10 do AddSchueler(FSchueler, 'Test ' +IntToStr(i)); DisplayArray; end; procedure TForm2.NachNameLoeschenClick(Sender: TObject); begin DeleteByName(FSchueler,'Test 10'); DisplayArray; end; procedure TForm2.DisplayArray; var i:Integer; begin Listbox1.Items.Clear; for I := Low(FSchueler) to High(FSchueler) do ListBox1.Items.Add(FSchueler[i]); end; end. |
AW: Wichtige allgemeine Fragen
Zitat:
lg Edit: Mir fällt gerade ein: In C gibt es m.W.n. sogar einen "Trick", wie man den Compiler wirklich dazu bringen kann, das Array auf den Stack zu kopieren, und zwar, indem man das Array in einen struct einbettet... |
AW: Wichtige allgemeine Fragen
Zitat:
![]() Zitat:
Die Themen-Titel waren auch schon mal besser ... |
AW: Wichtige allgemeine Fragen
Zitat:
William, genannt Bill Gates, erzählte (ich will nicht von prahlen sprechen), daß er das Programmieren lernte, indem er weggeworfene BASIC-Ausdrucke intensiv studierte - er war sich dafür angeblich sogar nicht zu fein, sie aus Papierkörben / Abfallcontainern zu fischen/angeln. Studieren kommt aus dem Latein und heißt soviel wie sich befleißigen. Dieses Forum (und andere Foren) ist (sind) überfüllt mit Quelltexten. Wie wäre es demnach, in diesem (diesen) zu stöbern, anstatt hier den Frageroboter zu spielen? |
AW: Wichtige allgemeine Fragen
Zitat:
Für einen Abiturienten solltest Du ein wenig mehr Spürsinn und soziale Kompetenz mitbringen. Mit "Ich will" ohne ein Wort des Dankes wirst Du auf wenig Altruismus Deiner Gegenüber stoßen. |
AW: Wichtige allgemeine Fragen
@Delphi-Laie: Es recht langsam, denke ich.
|
AW: Wichtige allgemeine Fragen
Gegen Unwissenheit kann man etwas tun, gegen Dummheit nicht :-D:-D
|
AW: Wichtige allgemeine Fragen
Muss ich hier jetzt jeden einzeln ermahnen? Wenn ihr schon nichts konstruktives zum Thema beizutragen habt, dann schreibt auch bitte nichts. :roll:
|
AW: Wichtige allgemeine Fragen
Ich denke, wir sollten es dabei bewenden lassen.
:roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 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