Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - log10 bilden und ausgeben


me_Max - Mo 09.12.02 00:42
Titel: log10 bilden und ausgeben

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var  i,j,log10:extended ;

begin
  Writeln('Gib eine Zahl ein!');
  Readln(i);
  Writeln('Gib eine zweite Zahl ein!');
  Readln(j);
  { Das Programm soll von jeder Zahl -angefangen bei j- bis zur Zahl i den
  Logarithmus berechnen und speichern, den letzten Wert soll es ausgeben, damit
  man weiß, dass es fertig ist. Soll zur Rechnengeschwindkeitsberechnung dienen.
  Was tun?}
  i:=log10(i);
  writeln('',i,'');
  readln;
end.


(09.12. 08:32 Tino) Code-Tags hinzugefügt.


LCS - Mo 09.12.02 09:36
Titel: Re: log10 bilden und ausgeben
me_Max hat folgendes geschrieben:
...Was tun?

Da gibts mehrere Möglichkeiten:
[LästerMode]
- Im Unterricht besser aufpassen
- In der Delphi-Hilfe unter Schleifen nachschauen
[/LästerMode] :mrgreen:

Gruss Lothar


Tino - Mo 09.12.02 09:37

Hallo,

das was in Deinem Programm noch fehlt ist die FOR-NEXT-Schleife um den Log für einen ganzen Breich zu berechnen. Zur Zeit machst Du das ja nur für eine Zahl.

Die FOR-NEXT-Schleife müsste ungefähr so implementiert werden:

Quelltext
1:
2:
3:
4:
5:
6:
Var
  x: Integer;
For x := i To j Do
  Begin
    { Hier die Berechnungen und die Ausgabe auf dem Bildschirm. } 
  End;

Schau Dir auch mal die Beispiele in der Delphi-Hilfe zum Thema For-Next an!

Gruß
TINO


me_Max - Mo 09.12.02 15:38

Lcs, ich glaube deine dummen Bemerkungen sind hier unangebracht! Zumal sie nicht mal treffend sind! Weiterhin habe ich schon alles nachgeshen was es gibt, bin aber nicht dahintergekommen, wie es funktioniert!
Danke an Tino, werde es mal versuchen!

Max


Wolff68 - Mo 09.12.02 22:15

Wenn Du übrigends die reine Rechenzeit erfassen willst würde ich davon abraten jedes Ergebnis anzuzeigen. Diese Zeit ist nämlich um einiges größer als die Berechnung selbst...
Aber das hattest Du ja auch vor. :wink:

Hier mal ein Beispiel inklusive Zeiterfassung:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
  Start, Ende : TDateTime;
  Von, Bis, i : Integer;
  Ergebnis : Real;
begin
  Von := StrToIntDef(Edit1.Text,1);
  Bis := StrToIntDef(Edit2.Text,1000000);
  Start := Now;
  For i := Von to Bis do
    Ergebnis := Log10(i);
  Ende := Now;
  Edit3.Text := FloatToStr(Ergebnis);
  Edit4.Text := FloatToStr((Ende-Start)*86400)+' Sekunden';
end;
Ach ja: wundere Dich nicht, wenn immer 0 Sekunden da stehen. Du wirst schon mindestens 100000 Berechnungen machen müssen, bis da mal was rauskommt...


LCS - Mi 11.12.02 09:41

Hi
me_Max hat folgendes geschrieben:
Lcs, ich glaube deine dummen Bemerkungen sind hier unangebracht!

Ok, sorry. Das nächstemal werde ich gross drüberschreiben: Achtung Sarkasmus - Nicht ganz ernst zu nehmen.
Allerdings bin ich der Meinung, dass das aus meinen Posting eindeutig hervorgeht. Sollte dich das so sehr getroffen haben, tut's mir leid und ich entschuldige mich dafür, aber so'n klein bisschen Sinn für Frotzeleien wäre schon angebracht.

me_Max hat folgendes geschrieben:

Zumal sie nicht mal treffend sind! Weiterhin habe ich schon alles nachgeshen was es gibt, bin aber nicht dahintergekommen, wie es funktioniert!

Meiner Meinung nach schon. Es sieht nämlich aus wie die typische Übungsaufgabe aus der Schule. Hättest du tatsächlich unter Schleifen nachgesehen, wärst du genau auf das gestossen was Tino gepostet hat. Und wenn's dann geklappt hätte (wovon ich ausgehe, weil ich dich schliesslich nicht für dumm halte), hättest du dich noch wesentlich besser gefühlt.

Gruss Lothar