Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program zamiana_systemow;
- uses crt;
- var
- liczba: string;
- liczba_dec: integer;
- wynik:string;
- i:integer;
- potega:integer;
- dlugosc:integer;
- podstawa1,podstawa2:integer;
- const
- znaki:string='0123456789ABCDEF';
- begin
- //program zamienia systemy do max. podstawy 16
- writeln('Podaj podstawe systemu liczby ktora chcesz zamienic');
- readln(podstawa1);
- writeln('Podaj podstawe systemu na ktory chcesz zamienic swoja liczbe (max. 16)');
- readln(podstawa2);
- writeln('Podaj liczbe (tylko cyfry i duze litery od A do F)');
- readln(liczba);
- // pierwsza część zamienia z dowolnego systemu na system dziesiętny
- potega:=1;
- liczba_dec:=0;
- dlugosc:=length(liczba);
- i:=dlugosc;
- repeat
- if (integer(liczba[i])>=65) then // sytuacja kiedy w naszej wczytanej liczbie pojawiają się litery
- begin
- liczba_dec:=liczba_dec+(integer(liczba[i])-55)*potega;
- end else // sytuacja kiedy nasza liczba składa sie tylko z liczb
- liczba_dec:=liczba_dec+(integer(liczba[i])-48)*potega;
- potega:=potega*podstawa1;
- i:=i-1;
- until i=0;
- // druga część zamienia z systemu dziesiętnego na dowolny
- liczba:='';
- repeat
- liczba:=znaki[(liczba_dec mod podstawa2)+1] + liczba; // w nawiasie kwadratowym dodajemy 1 ponieważ w stringu adres komórki 0 jest równy 1, 1 jest równy 2 itd.
- liczba_dec:=liczba_dec div podstawa2; // pozbywamy się ostaniej cyfry liczby
- until liczba_dec=0;
- write('Liczba po zamianie wynosi:');
- writeln(liczba);
- readkey;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement