![]() |
Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Code:
Vor allem mit der Deklaration der Liste in Verbindung mit den Klassen habe ich Probleme. Die For Schleife bei Nachkommen funktionieren auch nicht.
unit Unit1;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type TReh=class private public TRehanzahl: array[1..5000,1..12,1..2]of integer; procedure FortpflanzungReh(Rehanzahl: array of integer); end; TWolf=class private public TWolfanzahl: array[1..5000,1..12,1..2]of integer; procedure FortpflanzungWolf(Wolfanzahl: array of integer); procedure Fressen(Rehanzahl: array of integer); end; { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; ListBox1: TListBox; ListBox2: TListBox; ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; procedure FormCreate(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar2Change(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; n:integer; //TRehanzahl: array[1..5000,1..12,1..2]of integer; Rehliste: file of integer; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin assignfile(Rehliste,'C:\Users\Thorsten\Desktop\Lazarus Projekte\Informatik Räuber Beute\Rehliste.dat') end; procedure TForm1.ScrollBar1Change(Sender: TObject); begin label4.caption:=IntToStr(scrollbar1.position); end; procedure TForm1.ScrollBar2Change(Sender: TObject); begin label5.caption:=IntToStr(scrollbar2.position); end; procedure TReh.FortpflanzungReh(Rehanzahl:array of integer); var Nachkommen: integer; Geschlecht: integer; i,k,l,m: integer; j: integer; begin n:= filesize(Rehliste); for k:= 0 to n do begin for l:=3 to 12 do begin TRehAnzahl[k,l,1] end; end; //for := TRehanzahl[0..0,3..12,1] to TRehanzahl[n..n,3..12,1] do begin Nachkommen:= random(4); for j:= 1 to Nachkommen do begin Geschlecht := random(1)+1; seek(Rehliste,filesize(Rehliste)); write(Rehliste,filepos(Rehliste),1,Geschlecht) end; //end; end; procedure TWolf.FortpflanzungWolf(Wolfanzahl:array of integer); begin end; procedure TWolf.Fressen(Rehanzahl:array of integer); begin end; end. Bitte Helft mir :thumb::thumb::thumb::thumb::thumb::thumb::thumb: |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
mit den Nachkommen hat man oft seine liebe Not - zuerst, wenn sie in die Pubertät kommen, später dann, wenn sie auf das Erbe schielen. ;-) Was genau geht denn bei Dir nicht? Ein bisschen mehr musst Du uns schon geben. Angefangen von einer konkreten Zielsetzung bis hin zu etwas präziseren Fragen. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Es soll eine Räuber-Beute Simulation werden in der es Rehe und Wölfe gibt. Bei zu vielen Rehen soll es aber weniger Nahrung geben, sodass wieder welche sterben.
Jedenfalls ist das ein Schulprojekt meiner Kinder und ich bin leider aufgrund meiner Berufstätigkeit zeitlich nicht in der Lage Ihnen ausreichend dabei zu helfen. Vielleicht könntest du dich einmal damit auseinandersetzen und es weiter machen. Wäre dir super dankbar :-D Liebe Grüße Frau Nagel |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
lol - Tja, Daniel, weisse Bescheid, machma... :mrgreen:
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
ich kann verstehen, dass man ab und an in blöde Situationen kommt, wenn die Lütten etwas brauchen und man selber sie aus verschiednen Gründen nicht unterstützen kann. Insbesondere ist klar, das man nicht von jedem Elternteil Programmier-Kenntnisse erwarten kann. Dennoch ist dieses Forum nicht für diese Form des "Rundum-Service" gedacht. Ich und auch andere bieten jedoch gern Unterstützung, wenn sich da jemand selbst durchbeißt. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Also, liebe FrauNagel
Das ist ungefähr so als hättest Du Mehl, Backpulver und Zucker und wolltest eine Torte backen. Nur ob es Sacher- oder Buttercreme werden soll?? Die paar Zeilen Sourcecode sind nicht sehr erhellend. Ein paar zusätzliche Informationen, wären schon ganz gut. Gruß K-H |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
FrauNagel, warum fragen Sie in diesem Forum und nicht Ihre Kinder? So klein können die doch nicht mehr sein, wenn solche Programmierung in deren Schule thematisiert wird. Ich rege an, daß Sie ein komplettes Quelltext-Projekt hier veröffentlichen, also ohne die beim Compilieren zusätzlich anfallenden Dateien - sonst wird es arg groß, besonders bei Lazarus. Sie lassen die Quelltextdateien in eine Archivdatei packen (egal, ob komprimiert oder nicht, allzugroß wird das Projekt ja nicht sein) und laden das über die Schaltfläche "Anhänge verwalten" in dieses Forum. Das kann jeder(mann), der helfen möchte, recht schnell selbst starten und dann sehen, was (richtiges oder falsches) passiert - oder auch nicht(s). Ich würde ja auch gern helfen, sehe aber mit diesem spärlichen Einstieg auch nicht so recht einen Ansatz(punkt) dafür. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang ist nun das aktuelle Projekt.
Ich wage einen neuen Versuch es Ihnen näher zu bringen und benötige dringend Hilfe. Es soll nämlich eine Räuber Beute Simulation werden in der einige Rehe pro Zyklus von Wölfen umgebracht werden. Die Rehe, sowie auch die Wölfe sollen sich alle zwölf zyklen vermehren (Nachkommen). Wenn es zu viele Rehe gibt soll die Vermehrungsrate angepasst werden weil ja weniger Futter da wäre. Nach einer gewissen Zeitspanne wie aktuell gedacht nach 12 Jahren bei den Rehen sollen sie an Altersschwäche sterben. Problematisch ist allerdings das Rechnen mit den mehrdimensionalen Arrays bzw. das reinschreiben von Daten in die Liste. Lazarus bemängelt die aktuelle Deklaration der Liste bzw. Klasse, wenn jemand dort helfen könnte wären ich und meine Kinder Ihnen sehr dankbar. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
Persönlich weiß ich jedenfalls, dass mein Informatiklehrer an der Schule ein echter Glücksgriff war im Vergleich zu dem aktuellen Standard. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Lüüüd, wer sich berufen fühlt, möge hier gern weiterhelfen. Wenn ein Teilnehmer dieses Forum betritt und höflich nach Unterstützung fragt, kann man sie geben oder verwehren - beides okay. Aber eine Diskussion, ob den Kids damit dauerhaft geholfen ist, ist müßig und kostet alle Beteiligten nur Zeit & Nerven.
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
So, dann werde ich mal den Reigen echter Hilfe (was ich darunter verstehe) eröffnen.
1. Wie ich schon schrieb, das Compilat (die Exe-Datei) ist überflüssig, es hat das Archiv nur unnötig vergrößert. Naja, ist letztlich Admins Angelegenheit, wenn er dafür unendlich viel Platz hat. 2.
Delphi-Quellcode:
hat leider keine echte Anweisung. "TRehAnzahl[k,l,1]" ist nur der Aufruf einer Feldvariablen, doch mit dieser geschieht nichts. Weder wird der Wert abgefragt (er wandert ja nirgendwo hin) noch wird dieser Feldvariablen ein Wert zugewiesen, z.B. TRehAnzahl[k,l,1]:=1.
for k:= 0 to n do begin
for l:=3 to 12 do begin TRehAnzahl[k,l,1] end; end; Edit: Wie die Exe-Datei zustandegekommen ist, ist rätselhaft, denn jedenfalls mein Lazarus bleibt beim Compilieren an besagter anweisungsloser Zeile mit "Illegal expression" stecken. Edit 2: TRehAnzahl war auskommentiert, ich nahm es wieder hinzu, also die Auskommentierung weg. Dennoch immer noch eine "Illegal expression". Erst nach einer Wertzuweisung an diese Feldvariable wurde das Projekt (mit einigen Hinweisen wegen überflüssiger Variablen) compiliert. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Guten Abend,
kann man nicht auf dieses 3 dimensionale Array verzichten, wenn die Tiere in Klassen gepackt werden.
Delphi-Quellcode:
Dann sehe eine Rehliste so aus:
type
TGender = (female, male); TReh = class(TObject) private fGender: TGender; fAge: Byte; public property gender: TGender read fGender write fGender; // weil nur weibliche Rehe Nachwuchs bekommen können property age: Byte read fAge write fAge; // ab welchem Alter ist ein Reh gebährfähig? end; TWolf = class(TObject) private fAge: Byte; public property age: Byte read fAge write fAge; end;
Delphi-Quellcode:
Wenn man will kann man anstelle des Array auch eine ObjectList oder eine generische ObjectList nehmen.
Rehliste = Array[0..maxRehPopulation] of TReh;
Damit wird die Verwaltung der Klassen ein wenig einfacher. Bei den Wölfen wäre eine Rudelbildung noch interessant, denn ein Rudel jagt immer zusammen. Es reißt also nicht jeder Wolf ein Reh. Grüße Klaus |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
Wobei mir hier sehr viele Angaben fehlen a) wieviel Reh-Futter steht zur Verfügung. b) wie hoch ist die Reproduktionsrate der Rehe und der Wölfe. c) wie hoch ist die Mortalitätsrate der Wölfe und Rehe durch Futtermangel d) wie ist Futtermangel definiert e) wie hoch ist die Mortalitätsrate der Rehe durch Wölfe Ein weiterer Punkt wäre z.B. das für die Fortpflanzung natürlich geschlechtsreife Tiere benötigt werden, da den Wölfen aber vor allem Jungtiere zum Opfer fallen werden, kann es sein, daß die Rehe u.U. an Altersschwäche aussterben. Gruß K-H |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Für die letzten beiden: Eure Hilfe in allen Ehren, aber schießt Ihr nicht ein wenig über das Ziel hinaus? Der eine in bezug auf das Programmierniveau, der andere bezüglich der Aufgabenstellung? Es geht darum, daß Programmieranfänger eine überschaubare Aufgabenstellung erstmal grundsätzlich lösen müssen!
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
Gruß K-H |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
Vermutlich demnach: Erstellen Sie eine.... |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Die Anforderung steht im Rar-Archiv von oben im Verzeichnis Plan und dort in der OpenOffice-Datei unbenannt1.odt.
Wer kein OpenOffice hat, bennen die Datei um in unbenannt1.zip und entnehmen dem Zip-Archiv die Datei content.xml. Und damit es nicht zuviel wird: Zitat:
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Noch ein kleiner Hinweis am Rande.
Wenn man etwas "Gefühl" für die Aufgabenstellung bekommen möchte, man findet dazu einige konkrete Aufgaben im Internet. Nicht unbedingt identisch, aber Fuchs und Hase bspw. tauchen auf und einiges andere interessante. |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Für alle, die mit jobos Hinweis nicht so gut klar gekommen sind:
![]() ![]() Ich für meinen Teil wäre nie auf die Idee gekommen für die Aufgabenstellung ein Array einzusetzen. Da hätte es eine einfache while/until Schleife getan. Gruß K-H |
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Was für Programmiertechniken (Verzweigungen, Schleifen, Datenstrukturen, usw.) sind denn schon aus dem Unterricht bekannt?
|
AW: Räuber-Beute-Simulation Hilfe, Klassen, Arrays
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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