Neuigkeiten:

Forum upgraded auf Version 2.1.2 :)

Hauptmenü

Kleines Delphi Problem

Begonnen von Doomhammer, 25. April 2004, 20:15:09

⏪ vorheriges - nächstes ⏩

Doomhammer

jo, ich hoff, es gibt hier wen, der sich auskennt mit delphi

also, ich will ein programm schreiben, dass mir anzeigt, wann ich bei einer verzinsung von 3,8 % Millionär bin...

mit der REPEAT UNTIL schleife bring ichs zusammen, aber die scheiss WHILE DO funzt net...

hier der source code dazu:

Zitatunit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Edit1: TEdit;
   Label1: TLabel;
   procedure Button2Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private-Deklarationen }
 public
   { Public-Deklarationen }
 end;

var
 Form1: TForm1;
  prozent,zinsen,kapital: REAL;
  Laufzeit: Integer;
implementation

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
while Kapital <1000000 do
kapital:= StrToFloat(edit1.text) ;
Prozent:= 3.8 ;
Laufzeit:= 0 ;

Zinsen:= Kapital* Prozent/100;
Kapital:= Kapital+Zinsen  ;
Laufzeit:= Laufzeit +1 ;
Label1.caption:= IntToStr(Laufzeit);

end;

end.


is ansich ganz simpel, aber es geeeeeeeeeeeeeeeeeeeeeeeeht net :( anscheinend macht er mir da ne endlosschleife...buhuu
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Waldwichtel

Musst du nicht noch sagen, dass er ne Zahl ausspucken soll?
So is dis jedenfalls bei Python.
So wie ich dis seh, steht da zwar, dass er rechnen soll, aber nirgends, dass er nen Ergebnis anzeigen soll.
Schlag mich net, wenn i falsch lieg. Seh dis erste mal nen Delphicode :D

Gibts dis Programm umsonst?


*wink*
Is mir sowas von egal wer dein Vadder is. Solange ich hier angel läuft keiner übers Wasser!!

Mipak

Kenn Delphi nich direkt, aber soweit ich weiss ist es verwandt mit dem alten Turbo Pascal, sozusagen Turbo Pascal für Windoof. ;)

Zitat
begin
while Kapital <1000000 do
kapital:= StrToFloat(edit1.text) ;
Prozent:= 3.8 ;
Laufzeit:= 0 ;

Zinsen:= Kapital* Prozent/100;
Kapital:= Kapital+Zinsen ;
Laufzeit:= Laufzeit +1 ;
Label1.caption:= IntToStr(Laufzeit);

end;

Verlager mal " kapital:= StrToFloat(edit1.text) "aus der Schleife heraus, denn sonst wird das durch " Kapital:= Kapital+Zinsen"  neu erhaltene Kapital  mit dem Ursprungswert überschrieben und du landest in einer Endlosschleife wenn die Laufzeit >1 ist oder nich?

Doomhammer

hm, macht noch immer eine endlosschleife...

bah...so eine scheisse....
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Mipak

Ansonsten folgender Tip:

Sei bei Problemlösungen, wenn du die Lösung im SC nich findest, kreativ.

In diesem Fall, würd ich ne Zeitverzögerung von 0.5-1s zwischen den einzelnen Schlaufen einbauen und nich nur die Laufzeit, sondern auch das Kapital anzeigen!
Wenn die Schleife dann endlich läuft, kannst die überflüssigen Wartezeiten/Anzeigen einfach wieder rausnehmen ;)

Achja, achtet Delphi bei Variablen auf Klein- und Grossschreibung??
Wenn ja ist Kapital 0 und somit kanns ja nie die Mille erreichen!

Doomhammer

hm...normalerweise achtets net drauf denk ich...

hm....
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Doomhammer

komisch, wenn ich das < umdrehe zu > schreibt er immer 1 rein(was auch logisch is)...nur umgekehrt gehts net...sehr komisch....
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Mipak

Denken heisst nich wissen ;)
Wieso benutzt überhaupt Delphi??

Gerade für rechenlastige Operationen find ich Visual Basic einfach besser!
Ist zwar MS, aber dafür kann man den SC Schritt für Schritt durchlaufen lassen und ständig alle Variablen anzeigen lassen. Ausserdem ist es gekoppelt mit Excel, weshalb es auf fast jedem Compi zu finden ist.

Mipak

Ok, hab mir "While do"-Schleifenaufbau für Delphi angeschaut!
Muss richtig heissen:

Prozent:= 3.8 ;
Laufzeit:= 0 ;
Kapital:= StrToFloat(edit1.text) ;
while Kapital <1000000 do

begin
Zinsen:= Kapital* Prozent/100;
Kapital:= Kapital+Zinsen ;
Laufzeit:= Laufzeit +1 ;
end;

Label1.caption:= IntToStr(Laufzeit);

Doomhammer

danke lieber mipi =) auf dich is verlass....

das begin unterm begin hat gefehlt....

warum ich delphi nehm? weil ich muss +gg+
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Day

Zitat von: "Doomhammer"
warum ich delphi nehm? weil ich muss +gg+

tja schulen spinnen

unser lerher wollt doch tatsächlich das jeder das visualstudio.net drauftut + die ganzen erweiterungen

zum glück haben wir zum halbjahr den lehrer gewechselt

weild er typ is so ein schwachkopf und checkt selbst eh nur die simplsten dinge... also hätten wir dort vl taschenrechner aufbaut oder was weiß ich...g gg :roll:

Mipak

Zitat von: "Day"
tja schulen spinnen

Exakt!
Ok, als ich noch in der Schule war, waren die Schulen ziemlich schlecht ausgerüstet und von daher war Turbo Pascal und Basic schon ne gute Wahl und verständlich, aber ich hab schon damals die Umstellung auf Delphi mit Windows nicht verstanden!
Hinsichtlich der Zukunft nach der Schule gibts meiner Meinung nach bessere Alternativen zu Delphi, z.B.:

ASM:
Wenn man sich schon dem programmieren widmen will, also mit dem Computer unterhalten will, dann hat man sich gefälligst recht weit auf sein Niveau herabzulassen  :lol:
Ok für Schüler und die Lehrkräfte zu schwer/abstrakt und nich wirklich brauchbar als durchschnitts Schülter.  :roll:

C/C++:
Lange Zeit der unumstrittene Standard in Sachen Programmierung, aber wurde schon damals in der Schule als einsteigerunfreundlich abgetan, vor allem durch die Objektorientiertheit!
Daher trifft es im Vergleich zu Basic/Pascal zu, aber im Vergleich zu Delphi nich, da es ein erweitertes, objektorientiertes(!!!) Pascal darstellt.

Basic/Pascal:
Die Einstiegsklassiker!
Ideal zum Einstieg,
Ideal für so kleine Anfängerprogramme,
weil der ganze Objektscheiss entfällt und nur das wesentliche zählt!!
Im Hinblick auf späteren Umstieg eher Pascal, da man dort im Gegensatz zu Basic lernt die Variablen vorweg zu definieren, wie es sich heutzutage bei den meisten Sprachen ziemt.
Neagtivpunkt in den heutigen Windoofzeiten: Laufen unter MS-Dos!

Visual Basic:
Die beste Wahl in Hinsicht auf Anwendung, zukünftige Benutzung und Verfügbarkeit... kenn zumindest keinen Windoofrechner ohne Excel ;)
Von der Schwierigkeit her liegt es zwischen Pascal und Delphi!
Grosser Vorteil ist die Kopplung mit Excel.

Meiner Meinung nach wäre von Anfang an VB ideal !
Die Einbindung von Excel macht die Datenverwaltung/-wiedergabe einfach und übersichtlich. Die Möglichkeiten zur Fehlersuche sind ideal.
Wenigstens etwas, wo MS, neben Basic und MS-Dos, was brauchbares abgeliefert hat  :shock:

[edit]
Um mal nen Vergleich mit einer nicht objektorientierten Sprache zu ziehen, hab ich mal Basic gesucht und das obige Problem schnell geschrieben.. dass ganze Programm sieht dann so aus:

10 CLS  (nur da, um Bildschirm zu leeren, weils ja nich zu schäbig aussehen soll:P)
20 Print "Grundkapital:"
30 Input KAPITAL%
40 IF KAPITAL%> 1000 GOTO 100
50 IF KAPITAL%=1000 GOTO 100
60 IF KAPITAL%<1000 GOTO 70
70 KAPITAL%=KAPITAL%+KAPITAL%*0.038
80 LAUFZEIT%=LAUFZEIT%+1
90 GOTO 40
100 PRINT LAUFZEIT%
110 END

PS: Basic kennt keine WHILE-Schleife... hat aber dafür den praktischen GOTO-Befehl ;)

Doomhammer

naja, ich hab unsren lehrer gefragt wieso wir das eigentlich machen, und er meinte, dass eben alle sprachen irgendwie verwandt sind, und dass von einem info tec schüler verlangt wird, dass er mind. eine sprache beherrscht...

ps: ich MUSS in delphi maturieren +kotz+
**The poster of this message takes no responsibility for any deaths, sicknesses, annoyances, pains or pregnancies as a result of this post.**

Mipak

Da hat er grösstenteils Recht, wobei eine Verwandtschaft von Assembler mit den heutigen Sprachen nur sehr schwer nachvollziehbar ist  :roll:

Wobei er ja nicht auf die eigentliche Frage geantwortet hat, wieso DAS und nicht ne andere Sprache.
Sicherlich mögen sie alle miteinander verwandt sein, aber dennoch sind die Unterschiede zwischen Delphi und VB und C dennoch nicht zu verachten... mir kommt es so vor, als wenn ein Beamter gesagt hat beim Upgrade auf Windows:

Vorher haben wir Pascal gehabt, also nehmen wir nu Delphi.

Ohne sich wirklich Gedanken zu machen, ob es jetzt was sinnnvolleres gibt und alle anderen sind blind hinterher gedackelt.