Tysiulec, piszesz że jesteś dobra z matmy, więc z drugim zadaniem powinnaś sobie poradzić bez problemu. Wystarczy tylko wiedzieć, jak się dzieli pod kreską. Na pewno było w podstawówce!
Poniżej masz kod, niestety trochę ocenzurowany
program Project2;
var Dzielna, Dzielnik, Iloraz, Reszta, i: Integer;
Rozwiniecie, TempString: string;
begin
Dzielna:= 7;
Dzielnik:= 13;
Rozwiniecie:= '';
Write(Dzielna, '/', Dzielnik ,' = ');
for i:= 1 to 156 do begin {156, aby otrzymać 155 cyfrę po przecinku}
Iloraz:= {Uwaga: dzielenie liczb całkowitych!}
Reszta:=
{Zamień Iloraz na łańcuch znakowy (procedura Str)}
{Powiększ Rozwiniecie o Iloraz (oczywiście zamieniony na łańcuch znakowy)}
Dzielna:= {Tu się kłania dzielenie pod kreską}
if i = 1 then {Wstaw przecinek do rozwinięcia}
end;
Writeln(Rozwiniecie);
Readln;
end.
A wynik działania programu jest taki: 7/13 = 0,53846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846153846
co można oczywiście zapisać krócej 7/13 = 0,(538461)
PS. Pochwal się działającym programem, to może uwierzymy, że chcesz to sama napisać. Piszę "może", bo nie mogę wypowiadać się za innych.
PS.2
20 grudnia 2010 o godz. 18:00 zniesiono cenzurę ;)
program Project2;
var Dzielna, Dzielnik, Iloraz, Reszta, i: Integer;
Rozwiniecie, TempString: string;
begin
Dzielna:= 7;
Dzielnik:= 13;
Rozwiniecie:= '';
Write(Dzielna, '/', Dzielnik, ' = ');
for i:= 1 to 156 do begin
Iloraz:= Dzielna div Dzielnik;
Reszta:= Dzielna mod Dzielnik;
Str(Iloraz, TempString);
Rozwiniecie:= Rozwiniecie + TempString;
Dzielna:= (Dzielna - Dzielnik*Iloraz)*10; {Dopisywanie zera}
if i = 1 then Rozwiniecie:= Rozwiniecie + ',';
end;
Writeln(Rozwiniecie);
Readln;
end.