Autor |
Beitrag |
Sarahram
Hält's aus hier
Beiträge: 5
|
Verfasst: So 12.06.11 22:42
Hi Zusammen.
Ich bin noch Anfänger und habe folgende Aufgabenstellung:
Erstellen sie ein kleine Prozedur, welche ein vordefiniertes Array a:array[1..50]of integer; jeweils mit den Werten i*i (i sei des Array index)initialisiert. Sie können von der Deklaration sowohl des arrays als auch integer i ausgehen
Ich habe die Prozedur so geschrieben:
Delphi-Quelltext 1: 2: 3: 4:
| procedure example(); begin a[i]:=i*i; end; |
Was meint Ihr? Könnt Ihr das bestätigen? Ich weiß, es handelt sich eher um ein Verständnisproblem als um ein delphi Problem.
Vielen Dank und viele Grüße.
Sarahram
Moderiert von Narses: Delphi-Tags hinzugefügt
Moderiert von Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: So 12.06.11 22:57
Hi und
Hast Du Dir schon mal die For schleife angeschaut?
Die Procedure die Du geschrieben hast, dürfte da allein nicht reichen
Gruss ALf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: So 12.06.11 23:00
Moin und  im Forum!
Sarahram hat folgendes geschrieben : | Array a:array[1..50]of integer;
[...]
Delphi-Quelltext 1: 2: 3: 4:
| procedure example(); begin a[i]:=i*i; end; | |
Du hast die Dimensionen des Arrays nirgendwo in deinem Code berücksichtigt.  Woher soll der Computer denn wissen, welche Elemente er mit Werten füllen soll?
cu
Narses
//EDIT: Oh, zu langsam... 
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Sarahram 
Hält's aus hier
Beiträge: 5
|
Verfasst: So 12.06.11 23:34
Danke für die schnellen Antworten.
Laut Aufgabenstellung ist das Array und die Variable i global definiert und ich benötige nur die Prozedur.
Man könnte Prozedur auch so schreiben
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| produre example(); Var i: integer; begin
for i:=0 to 100 do; begin a[i]:=i*i; end; end; |
Beide Version sind auch lauffähig. In der ersten Version würde ich die for-Schleife in das Hauptprogramm schreiben.
Gefragt ist nur die Prozedur (so möchte mein Lehrer das handgeschrieben) und das Problem besteht darin, dass laut Aufgabenstellung das Array jeweils gefüllt wird.
Ich verstehe das so, dass das Array pro Aufruf der Prozedur an der Stelle i mit dem aktuellen Wert i*i gefüllt werden soll.
Programmiertechnisch habe ich das Verstanden. Darum auch meine Anmerkung, dass es sich eher um ein Verständnisproblem handelt.
Viele Grüße
Sarahram
Moderiert von Narses: Delphi-Tags hinzugefügt
Moderiert von Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 12.06.11 23:43
|
|
Sarahram 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 13.06.11 00:02
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Uups. Das war ein Schreibfehler.
Habe ich so nicht programmiert.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mo 13.06.11 00:06
Nein, das array wird komplett gefüllt wenn Du die Procedure aufrufst!
Anders würde es so aussehen
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Buttonclick1(Sender: TObject); begin if i < 50 then begin i:=i +1; procedure example(); end;
for i:= 0 to 50 do begin procedure example() end; end;
procedure TForm1.example(); begin a[i]:=i*i; end; |
dann würdest Du mit jedem klck dein array einzeln auffüllen oder in der Forschleife komplett.
Im Prinzip also schon richtig was Du geschrieben hast
Nur ist es nicht ganz so konform
Weil i ja irgenwie irgenwo definiert ist und eventl wenn man i noch mal verwendet fehler verursachen kann!
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Zuletzt bearbeitet von ALF am Mo 13.06.11 00:07, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 13.06.11 00:07
Moin!
Sarahram hat folgendes geschrieben : | Gefragt ist nur die Prozedur (so möchte mein Lehrer das handgeschrieben) und das Problem besteht darin, dass laut Aufgabenstellung das Array jeweils gefüllt wird.
Ich verstehe das so, dass das Array pro Aufruf der Prozedur an der Stelle i mit dem aktuellen Wert i*i gefüllt werden soll. |
Also wenn das die "Original-Aufgabenstellung" ist: Sarahram hat folgendes geschrieben : | Erstellen sie ein kleine Prozedur, welche ein vordefiniertes Array a:array[1..50]of integer; jeweils mit den Werten i*i (i sei des Array index)initialisiert. |
dann würde ich sagen, dass du es falsch verstanden hast. Ich hätte als Lehrer die Schleife in der Prozedur erwartet.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Für diesen Beitrag haben gedankt: Sarahram
|
|
Sarahram 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 13.06.11 00:18
Vielen Dank für die Antworten.
Initialisieren des Arrays ist wohl das Stichwort.
Also ... Schleife in die Prozedur.
Viele Grüße
Sarahram
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mo 13.06.11 00:25
Ich war eigentlich der Meinung das das Array bereits initialisiert wurde
Und nun sollte es nur um das befüllen gehen
Lol
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Für diesen Beitrag haben gedankt: Sarahram
|
|
Sarahram 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 13.06.11 00:36
Ich habe das eigenzliche Problem auch nicht sehr gur beschrieben.
Viele Grüße
Sarahram
|
|