Hilfe bei Delphi Hausarbeit...

4

4tune

... jo davon hängt meine Abinote ab, deshalb bin ich allen sehr verbunden die mir helfen :)
es geht darum folgenden buttonclick (den ich erarbeitet habe) zu vereinfachen und auch möglichst auf procedures und functions zu verteilen. leider habe ich davon keinen schimmer wie das mit variabeln definitionen ausgabe usw funzt :( für hilfe (auch beispiele) wäre ich sehr dankbar. schreibt einfach alles was euch an vereinfachungen usw einfällt rein.
______________________________________________________

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
TAlter: TEdit;
TJahre: TEdit;
TZigaretten: TEdit;
Berechnen: TButton;
Ausgabe: TGroupBox;
CKostenbisher: TLabel;
CZinsen65: TLabel;
Cbis65: TLabel;
CNikotin: TLabel;
CKondensate: TLabel;
CLebenserwartung: TLabel;
CKommentar: TLabel;
Cnik65: TLabel;
Ckon65: TLabel;
Cleben65: TLabel;
procedure BerechnenClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BerechnenClick(Sender: TObject);
var Verku, Kondensate, Nikotin, Jahreskosten, Jahrg, bis65, Zinsen65, Jahre,
Zigaretten, Alter, nik65, kon65, leben65: real;
kommentar: string;
begin
Jahre:= StrToFloat(TJahre.text);
Zigaretten:= StrToFloat(TZigaretten.text);
Alter:= StrToFloat(TAlter.text);

if Alter<=0 then showmessage('Jahre können nicht weniger/gleich 0 sein!');
if Alter<=8 then showmessage('Es ist sehr unwarscheinlich das jemand unter 8 anfängt zu rauchen!');
if Zigaretten<1 then showmessage('Weniger als 1 Zigarette ist schlecht rauchbar!');
if Jahre<=0 then showmessage('Es können nicht 0 Jahre oder weniger geraucht werden!');

Jahreskosten:= Zigaretten*365/20*3;
Kostenbisher:= Jahreskosten*Jahre;
bis65:= Jahreskosten*(65-Alter)+Kostenbisher;
Jahrg:= Jahre+65-Alter;
Nikotin:= Zigaretten*365*0.5*Jahre/10000;
nik65:= Zigaretten*365*0.5*Jahrg/10000;
Kondensate:= Zigaretten*365*9*Jahre/10000;
kon65:= Zigaretten*365*9*Jahrg/10000;
Verku:= Zigaretten*365*Jahre*3/60;
leben65:= Zigaretten*365*Jahrg*3/60;
Zinsen65:= 0;
while Jahrg > 0 do
begin
Zinsen65:= (Zinsen65+Jahreskosten)*0.05+Zinsen65+Jahreskosten;
Jahrg:= Jahrg-1;
end;
if Kostenbisher<8000 then
begin
kommentar:= 'Ohne rauchen häts für einen Gebrauchtwagen gereicht.';
end
else if Kostenbisher<24000 then
begin
kommentar:= 'Ohne rauchen häts für einen mittelklasse Neuwagen gereicht.';
end
else if Kostenbisher<100000 then
begin
kommentar:= 'Ohne rauchen häts für ein grosses Auto gerreicht.'
end
else if Kostenbisher>=100000 then
begin
kommentar:= 'Ohne rauchen wär alles möglich gewesen!';
end;

CKostenbisher.Caption:= ('Kosten für den bisherigen Zigarettenkonsum (ohne Zinsen): '+Format('%8.2f',[Kostenbisher])+' €');
CBis65.Caption:= ('Kosten bis zum 65. Lebensjahr (bei gleichbleibendem Verbrauch): '+Format('%8.2f',[bis65])+' €');
CZinsen65.Caption:= ('Kosten bis zum 65. Lebensjahr zuzüglich Zinsen: '+Format('%8.2f',[Zinsen65])+' €');
CNikotin.Caption:= ('Aufgenommene Menge Nikotin bisher: '+Format('%6.2f',[Nikotin])+' kg');
CKondensate.Caption:= ('Aufgenommene Menge Kondensate bisher: '+Format('%6.2f',[Kondensate])+' kg');
CLebenserwartung.Caption:= ('Verkürzung der Lebenserwartung bisher: '+Format('%8.2f',[Verku])+' Stunden');
Cnik65.Caption:= ('Aufgenommene Menge Nikotin bis 65: '+Format('%6.2f',[nik65])+' kg');
Ckon65.Caption:= ('Aufgenommene Menge Kondensate bis 65: '+Format('%6.2f',[kon65])+' kg');
Cleben65.Caption:= ('Verkürzung der Lebenserwartung bis 65: '+Format('%8.2f',[leben65])+' Stunden');
CKommentar.Caption:= ('Kommentar: '+Kommentar);
end;

end.

______________________________________________________

cu fortune
 
also ich weiß nich obs sich für das kleine programm lohnt das ganze nochma in procedures und functions zu unterteilen, aber falls du das gerne möchtest, solltest du den code in sogenannte 'sinnabschnitte' unterteilen, und die dann einzeln in proceduren verpacken, also zum beispiel eine fürs einlesen der edit-felder, eins zum rechnen und eins zur ausgabe
 
zwei möglichkeiten:
1. mach den karton auf und lies dir die einführung durch
2. falls du keine einführung hast (aus welchen gründen auch immer :rolleyes: ), dann lies das hier
 
weißt du nich wie man procedures erstellt, oder wie das am sinnvollsten zu unterteilen is?

[edit] guck dir an was asphyxia gepostet hat, is glaub ich das sinnvollste [/edit]
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück