PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Potenzieren mit TurboPascal



Teuk3
14.01.2001, 10:47
Hi!
Weiss jemand wie ich in TP potenzieren kann?Dabei muss muss der exponent eine variable sein,die ich veraendern kann.

danke schon in voraus

mfg

Teuk

14.01.2001, 12:35
Jo, machs dir nich so kompliziert... kannst doch ne ganz einfach for schleife machen
also: a ist die variable (exponent) b ist die basis und i is einfach nur nen Laufindex


for i:= 1 to a do
begin
b := b * b;
end;

MaXimuS
14.01.2001, 15:06
Das von Lazarus funktioniert aber nur mit ganzen Zahlen das folgende Programm geht mit "Komma-Zahlen":


program XhochY;

uses crt;

var rB, rEround, rEround2, rE, rErgebnis : real;

function Erg(rE, rB : real) : real;
begin
if rB = 0 then
begin
rErgebnis := 0;
end
else
begin
if rB < 0 then
begin
rB := rB * -1;
rEround := rE / 2;
rEround2 := round (re / 2);
if rE < 0 then
begin
rErgebnis := rErgebnis * -1;
end;
if rEround2 = rEround then
begin
end
else
begin
rErgebnis := rErgebnis * -1;
end;
end;
rErgebnis := (rErgebnis) * (Exp(rE * ln(rb)));
end;
Erg := rErgebnis;
end;

begin
rergebnis := 1;
clrscr;
write('Basis eingeben: ');
readln(rB);
writeln;
write('Exponent eingeben: ');
readln(rE);
erg(rE, rB);
writeln;
writeln('Ergebnis: ' , rErgebnis:10:5);
readln;
end.

Teuk3
15.01.2001, 15:25
Hi!
erst mal danke!
@--== Lazarus ==--
es kann sein das ich nen denkfehler gemacht hab(niemand ist perfekt)aber wenn du in ersten schleifen durchlauf b:=b*b hast,dann hast du doch im 2ten b²*b² und das ist nicht gleich b³.
allerdings hat mich das mit der schleife weiter gebracht:

begin
write('Basis : ');readln(a);
write('Potenz: ');readln(p);
b:=1;
i:=0;
while i < p do
begin
inc(i);
b:=(a*b);
end;
writeln(b);
end.

@MaXimuS
danke das du dir so viel mühe gemacht hast,aber ich brauche das potenziern vorerst für ganze zahlen und das ist die schleife hier oben etwas kürzer.beim nächsten mal werd ich versuchen mich genauer auszudrückern.

mfg

Teuk