Autor Beitrag
Sarahram
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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:
ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 12.06.11 22:57 
Hi und :welcome:

Hast Du Dir schon mal die For schleife angeschaut?
Die Procedure die Du geschrieben hast, dürfte da allein nicht reichen :wink:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 12.06.11 23:00 
Moin und :welcome: im Forum!

user profile iconSarahram hat folgendes geschrieben Zum zitierten Posting springen:
Array a:array[1..50]of integer;
[...]
ausblenden 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. :lupe: Woher soll der Computer denn wissen, welche Elemente er mit Werten füllen soll? :idea: ;)

cu
Narses

//EDIT: Oh, zu langsam... :?

_________________
There are 10 types of people - those who understand binary and those who don´t.
Sarahram Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 12.06.11 23:43 
user profile iconSarahram hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
 for i:=0 to 100 do;
  begin
   a[i]:=i*i;
  end;
Ich bezweifle stark, dass du das so meinst wie du es geschrieben hast. ;-)

In dem Code ist die Schleife vor dem begin zu Ende. Denn das Semikolon beendet die Anweisung.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 for i:=0 to 100 do;

// hier bist du nach der Schleife
  begin
   a[i]:=i*i;
  end;
Deshalb sollte auch eine Compilerwarnung kommen, weil i dort nicht mehr eindeutig definiert ist. ;-)
Sarahram Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 13.06.11 00:02 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Uups. Das war ein Schreibfehler.
Habe ich so nicht programmiert.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mo 13.06.11 00:06 
Nein, das array wird komplett gefüllt wenn Du die Procedure aufrufst!
Anders würde es so aussehen

ausblenden 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//oder inc(i);
         procedure example();
     end;

    
//****  oder  *******
    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 :wink:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.06.11 00:07 
Moin!

user profile iconSarahram hat folgendes geschrieben Zum zitierten Posting springen:
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:
user profile iconSarahram hat folgendes geschrieben Zum zitierten Posting springen:
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. :nixweiss:

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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mo 13.06.11 00:25 
Ich war eigentlich der Meinung das das Array bereits initialisiert wurde :autsch:
Und nun sollte es nur um das befüllen gehen :gruebel:

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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 13.06.11 00:36 
Ich habe das eigenzliche Problem auch nicht sehr gur beschrieben.

Viele Grüße

Sarahram