Hey,
in Informatik sollten wir eine Funktion schreiben mit Basis und Exponent und diese Funktion soll einem das passende Ergebnis zurückgeben.
So sieht mein "Quelltext" aus:
program HochFunktion;
//////////////////////////Globale Variablen//////////////////////////////
var x, n, erg: Extended;
////////////////////////////////Funktion/////////////////////////////////
function hoch(x,n: Extended): Extended;
var z: Double;
begin
if n = 0 then
begin
hoch := 1;
end;
z := x;
if n > 0 then
begin
n := n - 1;
while n > 0 do
begin
z := z * x;
hoch := z;
n := n - 1;
end;
end
else
if (n = -1) then
begin
hoch := x/x/x;
end;
if (n < 0) and (n <> -1) then
begin
n := n + 1;
while n < 0 do
begin
z := z * x;
n := n + 1;
end;
hoch := x/x/x;
end;
end;
/////////////////////////////Hauptprogramm///////////////////////////////
begin
WriteLn('Was soll die Basis sein?');
ReadLn(x);
WriteLn;
WriteLn('Was soll der Exponent sein?');
ReadLn(n);
WriteLn;
WriteLn;
erg := hoch(x,n);
WriteLn(erg);
ReadLn;
end.
.
Die Funktion läuft auch ordentlich.
Nur wenn ich beispielsweise als Basis (x) den Wert 10 nehme und als Exponenten (n) den Wert -3, dann kommt bei mit raus:
1.0000000000000E-0001 ---> 0,1
Weiß jemand warum da 0,1 rauskommt und nicht wie geplant 0,01?
Ich kann da auf Anhieb nämlich keine Fehler entdecken.
Vielen Dank im Vorraus.
Peter