![]() |
Berechnung d. Gewinnschwelle in einer Tabelle mit StringGrid
Hi Leute!
Dieses Programm soll ich als Hausaufgabe erstellen; ich bekomme es aber irgendwie nich ganz hin. I need help! bis jetzt sieht es ungefähr so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR KF, KV, P, K, E, G: real; St: integer; begin KF:=strtofloat(form1.edit1.text); KV:=strtofloat(form1.edit2.text); P:=strtofloat(form1.edit3.text); St:=0; repeat K:=KF+St*KV; //Kosten=Festkosten+Sück*variable Kosten E:=St*P; // Erlös=Stück*Preis G:=E-K; // Gewinn=Erlös-Kosten with form1.stringgrid1 Do begin cells[0,St+1]:= inttostr(St); cells[1,St+1]:= floattostr(K); cells[2,St+1]:= floattostr(E); cells[3,St+1]:= floattostr(G); St:=st+1; rowcount:=rowcount+1; end; until E>K end; procedure TForm1.FormCreate(Sender: TObject); begin form1.stringgrid1.cells[0,0]:='Anzahl'; form1.stringgrid1.cells[1,0]:='Kosten'; form1.stringgrid1.cells[2,0]:='Erlös'; form1.stringgrid1.cells[3,0]:='Gewinn'; end; |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Welcome Master of Bugs:
Delphi-Quellcode:
Niemals auf eine feste Instanz der klasse verweisen!!!!
form1.stringgrid1.cells[0,0]:='Anzahl';
Lass form1 weg oder verwende self um die aktuelle Instanz zu referenzieren! |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Zitat:
[edit] Sry, habe die Zeile mit dem Hochzählen übersehen. [/edit] |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Hey, erstmal: Was willst du mit dem Programm machen? Was ist das Problem?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Also, das Bsp. für die Aufgabe war das wir unsere Abi- Zeitung erstellen und dabei fallen ja gewisse Kosten(fixe & variable) an usw...Und jedenfalls soll die Abi-Zeitung dann kostendecken hergestellt werden.Das heißt die Gewinnschwelle ist überschritten wenn der Erlös>Kosten ist und das ist dann das ende der prozedur aber bei mir hängt der sich dann immer auf....weiß jemand rat?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Wie hast du denn in deinen Tests die Parameter gewählt?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
naja...200 fixkosten, 100 variable, und 10 Sückkosten...aber egal was ich nehme es hängt sich immer wieder auf...
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Was meinst du mit Variablen- und Stückkosten? Wie hoch ist der Preis?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Wies aussieht, hängt er in einer Endlosschleife, das heißt, der Erlös ist immer kleiner als die Kosten.
Entweder stimmt irgendwas mit dem Code nicht, oder eure Abi-Zeitung wird sich nicht lohnen :-D |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
statt stückkosten meine ich eigentlich Preis,sorry...
und was muss ich in der rechnung ändern damit ich nich in eine endlosschleife komme? |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Ich würde erstmal dafür sorgen, dass alles nur z.B. 200mal durchlaufen wird, damit du überhaupt sehen kannst, was passiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR KF, KV, P, K, E, G: real; St,i: integer; begin i:=0; KF:=strtofloat(form1.edit1.text); KV:=strtofloat(form1.edit2.text); P:=strtofloat(form1.edit3.text); St:=0; repeat K:=KF+St*KV; //Kosten=Festkosten+Sück*variable Kosten E:=St*P; // Erlös=Stück*Preis G:=E-K; // Gewinn=Erlös-Kosten with form1.stringgrid1 Do begin cells[0,St+1]:= inttostr(St); cells[1,St+1]:= floattostr(K); cells[2,St+1]:= floattostr(E); cells[3,St+1]:= floattostr(G); St:=st+1; rowcount:=rowcount+1; end; inc(i) until (E>K) or (i>=200); end; |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Und lass das Form1 weg (außer im Funktionskopf).
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
hey, danke!jetzt läuft es.
hab da ma noch ne kleine frage:wofür steht denn das inc(i)?das kenn ich noch nich... cheers |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Hallo,
du hast einfach einen Gedankenfehler in deinen Variablen. Solange der variable Preis pro Zeitung größer als dein Stückpreis (also der Verkaufspreis) ist, wirst du nie einen Gewinn erzielen. Mit jeder Zeitung erhöhen sich die Kosten. Nimm mal als Bsp. Stückpreis 10, variabler Preis 5. Heiko PS: Inc(i) ist kurz für i:= i+1; |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
ich danke euch allen!
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Zitat:
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
noch ne kleine frage: is die zusätzliche variable i unbedingt notwendig, oder geht das auch ohne das i?(ohne wieder in die endlosschleife zu gelangen)
cheers |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Lass dir was einfallen, du könntest zum Beispiel abbrechen, wenn Einnahmen-Gewinn < -1000 oder so etwas
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Hallo,
es gibt keine Endlosschleife, wenn dein Stückpreis > den Stückkosten (var. Kosten) ist. Prüfe das einfach vorher ab. OK, wenn der Stückpreis 10 Eur, die Stückkosten 9,99 sind, könnte die Schleife etwas dauern ;) Heiko |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
hi leute!
ich soll mit dem programm jetzt noch den break-even-point(Erlös=Kosten) ausrechnen und in einem weiteren edit feld anzeigen(das hat eigentlich ganz gut geklappt...) und dann soll nach der rechnung die tabelle genau zum feld des break evenpoints springen...ich glaube das geht irgendwie mit dem befehl row...naja an der stelle brauche ich hilfe! cheers your technikerhc ps. bis jetzt sieht es so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR KF, KV, P, K, E, G: real; St: integer; begin KF:=strtofloat(form1.edit1.text); KV:=strtofloat(form1.edit2.text); P:=strtofloat(form1.Edit3.text); If P>KV then begin St:=0; repeat K:=KF+St*KV; //Kosten=Festkosten+Sück*variable Kosten E:=St*P; // Erlös=Stück*Preis G:=E-K; // Gewinn=Erlös-Kosten with form1.stringgrid1 Do begin cells[0,St+1]:= inttostr(St); cells[1,St+1]:= floattostr(K); cells[2,St+1]:= floattostr(E); cells[3,St+1]:= floattostr(G); St:=st+1; rowcount:=rowcount+1; end; // end von with do begin... until E>K; form1.StringGrid1.Row:=St; St:=Round(KF/(P-KV)); form1.edit4.text:=inttostr(St); End // end von then begin else begin showmessage('Die variablen Kosten sind größer als der Preis'); end; // end der if schleife end; procedure TForm1.FormCreate(Sender: TObject); begin with form1.stringgrid1 Do begin cells[0,0]:='Anzahl'; cells[1,0]:='Kosten'; cells[2,0]:='Erlös'; cells[3,0]:='Gewinn'; end; |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
weiß denn keiner wie man hier mit row in die zeile des break-even-points kommt?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
help... help???????
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Auch wenn es noch nicht im Kodex steht, ist es unerwünscht, wenn innerhalb von 24 Stunden gepusht wird. Um Ergänzungen hinzuzufügen kannst du deinen Beitrag editieren. Aber dieses Nach-Oben-Holen ist dreist, vor allem nach der kurzen Zeit.
Gib den Leuten die Chance dein Thema zu lesen und darüber nachzudenken. Außerdem reicht ein Satzzeichen, in deinem Fall ein einziges Fragezeichen und keine 7. Das wirkt nämlich sehr aufdringlich und solche Themen beantworte ich daher erst gar nicht. |
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
was willst eigentlich darstellen? den BEP oder 'ne grafik... wie sich die kosten im verhältnis zu den erlösen verändern?
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
ne der break even point wird mir ja jetzt schon einem edit feld angezeigt(siehe quellcode)und jetzt möchte ich das nach der rechnung die stringgrid genau auf die zeile springt wo der break even point ist...und ich glaub das geht mit dem ereignis row oder so, ich weißaber nich wie man das anwendet....wenn mir das jetzt noch jemand erklären könnte das wäre super!danke schonma im voraus...
cheers ps. Zitat:
|
Re: Berechnung d. Gewinnschwelle in einer Tabelle mit String
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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