Archiv verlassen und diese Seite im Standarddesign anzeigen : Potenzieren mit TurboPascal
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
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;
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.
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