Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Potenzen, Formatierungen und Tabellen (https://www.delphipraxis.net/8816-potenzen-formatierungen-und-tabellen.html)

Carbrögen 12. Sep 2003 13:37


Potenzen, Formatierungen und Tabellen
 
Servus

1. Ich habe hier eine Formel. Sie lautet 2^n-1 (^steht für den Exponenten).
In Delphi gibt es ja die Super geile Funktion

Delphi-Quellcode:
[I]variable[/I] := Exp([I]?[/I]);
Das Fragezeichen Interressiert mich, wie schreib ich mit der Funktion die Formel 2^n-1?

2. Formatierungen... ich möchte das ergebnis aus 1 mit Tausender Trennzeichen bei der Ausgabe ausstatten.
Dies soll im Format %10n darstellen. Muss ich dann nach der berechnung der Potenz (speichern wir die potenz in die Variable x) eine neue Variable nehmen (z.B. y) und sagen

Delphi-Quellcode:
 y := Format('%10n',[x]);
Oder ganz anderster?

3. Ich möchte meine ausgegeben Daten in einer Tabelle wiedergeben.
Ich habe aber 3 Spalten. Also muss ich einen String Grid nehmen aber wie Funktioniert der!?

4. Das ist jetz rein Mathematisch glaube ich aber ich find keine lösung:
Ich hab diese 3 Spalten: Generation, Zeit, Bakterienanzahl.
Generation würde ich so lösen: In die Spalte "generation" schreibe ich jeweils i aus der For Schleife rein.
Zeit: Alle 20min Teilen sich die Bakterien. Ich habe eine Zeile schon da stehen, in der Steht "0h 00min". In Zeile 2 soll stehen "0h 20min" und so weiter... wie soll ich das machen!?
Bakterienzahl: Joa siehe 1

ich hoffe ich konnte mich klar genug ausdrücken :angle2: ... habs nich so mittem erklären sorry

Ich danke im vorraus

Mfg

Nimoee 12. Sep 2003 13:49

Re: Potenzen, Formatierungen und Tabellen
 
Hallo,
die Potenz zu einer beliebigen Basis berechnet sich so:
function Power(Base, Exponent: Extended): Extended;
z.B. a:=power(2,n-1);
exp(n-1) berechnet die Funktion e^(n-1)

Dsa steht aber alles auch ganz ausführlich in der Delphi Hilfe!!

nimoee

Nimoee 12. Sep 2003 13:50

Re: Potenzen, Formatierungen und Tabellen
 
Hallo,
die Potenz zu einer beliebigen Basis berechnet sich so:
function Power(Base, Exponent: Extended): Extended;
z.B. a:=power(2,n-1);
exp(n-1) berechnet die Funktion e^(n-1)

Das steht aber alles auch ganz ausführlich in der Delphi Hilfe!!

nimoee

negaH 12. Sep 2003 13:53

Re: Potenzen, Formatierungen und Tabellen
 
2^n = 1 shl n
2^(n-1) = 1 shl (n -1)
2^n-1 = 1 shl n -1

2^8 = 256
2^(8-1) = 128
2^8-1 = 255

Gruß Hagen

Carbrögen 12. Sep 2003 14:04

Re: Potenzen, Formatierungen und Tabellen
 
Ph shit Hagen hat mich grad darauf gebracht das 2^n-1 falsch ist ... scheiße...

2^n ist die Formel. n Ist die Genartion die ich aus dem Wer i aus der For Schleife Raus hole. Allerdings: Wenn ich Generation 50 haben möchte muss ich 2^49 rechnenn...

Also müsste ich die For Schleife so aufbauen oder?
Delphi-Quellcode:
// Interface:
Function anzahl(2,n): Extended;

// Bei Button Click
var s := Word
s := Edit1.text;

For i := 2 to s do
begin
n := i-1;
x := anzahl(2,n);
For i:=1 to s do
begin Memo1.AddLine(x);
end;
end;
Wenn das richtig is bin ich stolz auf mich :mrgreen: .

Ich sag nur eins: Scheiß bazillen ... scheiß bio sonderhausaufgabe :wall: :kotz: lol

axelf98 12. Sep 2003 14:13

Re: Potenzen, Formatierungen und Tabellen
 
Zitat:

Zitat von Carbrögen
4. Das ist jetz rein Mathematisch glaube ich aber ich find keine lösung:
Ich hab diese 3 Spalten: Generation, Zeit, Bakterienanzahl.
Generation würde ich so lösen: In die Spalte "generation" schreibe ich jeweils i aus der For Schleife rein.
Zeit: Alle 20min Teilen sich die Bakterien. Ich habe eine Zeile schon da stehen, in der Steht "0h 00min". In Zeile 2 soll stehen "0h 20min" und so weiter... wie soll ich das machen!?


Damit kann man die Zeit im Format Xh XXmin ausgeben:
Eingangszahl ist eine real-Zahl: (20/60) wären 20 Minuten, einfach mit i malnehmen und in die Funktion schicken:
Listbox3.items.add( Zeitausgeben((1/3)*i));

Delphi-Quellcode:
function Zeitausgeben(Zeit:real) : String;
var
H,M : integer;
begin
 H := trunc(Zeit);
 M := round((Zeit - H)*60);
 if M < 10 then
 result := inttostr(H)+'h 0'+inttostr(M)+'min' ELSE
 result := inttostr(H)+'h '+inttostr(M)+'min';
end;

Carbrögen 12. Sep 2003 14:23

Re: Potenzen, Formatierungen und Tabellen
 
Da kommt dann

oh oomin
oh 20min
0h 40min
1h 00min

raus?


also da is ja keine for schleife drin also keine auomation

negaH 12. Sep 2003 14:26

Re: Potenzen, Formatierungen und Tabellen
 
Mal einfach ausgedrückt, nach jeder Generation verdoppelt sich die Anzahl der Baktierchen -> deswegen sind Bakterien auch Tiere :)

Warum dann nicht einfach auch so vorgehen ??

Delphi-Quellcode:
var
  Anzahl: Extended;
begin
  Anzahl := 1;
  for I := 1 to N -1 do
  begin
    ... Print
    Anzahl := 2 * Anzahl;
   
    if Anzahl <> 1 shl I then ;
  end;
end;
fertig :)

Gruß Hagen

Carbrögen 12. Sep 2003 14:29

Re: Potenzen, Formatierungen und Tabellen
 
Weil ich dachte dasses schneller geht vom programm

axelf98 12. Sep 2003 15:38

Re: Potenzen, Formatierungen und Tabellen
 
Das Ganze in einer Schleife:

Delphi-Quellcode:
for i := 0 to 900000 do
Listbox3.items.add( Zeitausgeben((1/3)*i));


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz