PascalCheckTest
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
<code id="4d23b0252e549">
function computerraten(zahl, max: integer): integer;
var anz: integer;
function suche(li, z, re: integer): integer;
var mi: integer;
begin
anz:=anz+1;
mi:=(re+li) div 2;
if z=mi then result:=anz
else
if z<mi then result:=suche(li, z, mi)
else
result:=suche(mi, z, re);
end;
begin
anz:=0;
result:=suche(1, zahl, max+1);
end;
</code>
<check>
function computerraten_lsg(zahl, max: integer): integer;
var anz: integer;
function suche(li, z, re: integer): integer;
var mi: integer;
begin
anz:=anz+1;
mi:=(re+li) div 2;
if z=mi then result:=anz
else
if z<mi then result:=suche(li, z, mi)
else
result:=suche(mi, z, re);
end;
begin
anz:=0;
result:=suche(1, zahl, max+1);
end;
result:=(abs(computerraten(47, 100)-computerraten_lsg(47, 100))<3) and
(abs(computerraten(2345, 7777)-computerraten_lsg(2345, 7777))<3);
</check>
<eval id="4d2406db48016">
function check_box_result:boolean;
begin
function computerraten_lsg(zahl, max: integer): integer;
var anz: integer;
function suche(li, z, re: integer): integer;
var mi: integer;
begin
anz:=anz+1;
mi:=(re+li) div 2;
if z=mi then result:=anz
else
if z<mi then result:=suche(li, z, mi)
else
result:=suche(mi, z, re);
end;
begin
anz:=0;
result:=suche(1, zahl, max+1);
end;
result:=(abs(computerraten(47, 100)-computerraten_lsg(47, 100))<3) and
(abs(computerraten(2345, 7777)-computerraten_lsg(2345, 7777))<3);
end;
BEGIN
if (check_box_result) then write('check_box_result::->true') else write('check_box_result::->false');
END.
</eval>