Witam,
mam program do konwertowania liczby dziesiętnej na dowolny system. Ale robi tylko to na całkowitych.
[code]program NaDowolnySystemm;
uses
crt;
const
SYSTEmM='0123456789ABCDEFGHIJKLMNOPRSTUWXYZ';
var
wynik:string;
NaSystem,JakaLiczba:integer;
begin
repeat
write('Na jaki system chcesz zamienic (max 34): ');
readln(NaSystem);
until NaSystem in [2..34];
write('Podaj jaka liczbe dzesietna chcesz zamienic: ');
readln(JakaLiczba);
repeat
wynik:=SYSTEmM[JakaLiczba mod NaSystem+1] + wynik;
JakaLiczba:=JakaLiczba div NaSystem;
until JakaLiczba=0;
writeln('Wynik: ',wynik);
readln;
end.[/code]
Czy ktoś wie jak wstawić do tego i w którym miejscu konwertowanie ułamków?
Czy coś takiego dobrze wykombinowałem?
[code]repeat
wynik:=SYSTEmM[JakaLiczba mod (Pow(NaSystem,-1):8:7)] + wynik;
JakaLiczba:=JakaLiczba div NaSystem;
until JakaLiczba=0;
writeln('Wynik: ',wynik);
readln;[/code]
Jak to kompiluje to mi nie rozpoznaje tego Pow, a to przecież jest potęga.
albo takie coś:
[code]repeat
if Jakaliczba / Nasystem >= 1
then n:=Jakaliczba div Nasystem
else n:=-(Jakaliczba div Nasystem);
repeat
if Jakaliczba:=Jakaliczba mod (Pow(Nasystem :n))=1 (tu nie wiem jak zrobić z tym n żeby się zmniejszało przy następnym kroku, bo n to ma być ta potega np 2-1, 2-2, itd)
then Jakaliczba - Pow(Nasystem:n)
else Jakaliczba:=Jakaliczba mod (Pow(nasystem:n-1))[/code]
Można coś z tego zrobić?