Попробуй Program PascalGuru; var s:string; f,t:text; function preobr(s:string):string;var i,j,p,n,sered:integer; gl,zp,slovo:string; m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи'; p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; for i:=1 to n do begin s:=m[i]; if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s); sered:=(p div 2)+1; if (not odd(p)) or (p<3) then continue; if pos(s[1],gl)=0 then continue; if pos(s[sered],gl)=0 then continue; if pos(s[p],gl)=0 then continue; s[1]:=UpCase(s[1]); s[sered]:=UpCase(s[sered]); s[p]:=UpCase(s[p]); m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')'; end; s:=''; for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end; beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do begin readln(f,s); writeln(t, preobr(s) ); end; writeln('Файл успешно записан...'); close(f);close(t);readln;end.
1) 56(10) ⇒ х(2) Для перевода целого числа из десятичной системы в двоичную выполняем его целочисленное деление на два с сохранением остатка. Если частное больше единицы, делим его на два, снова сохраняем остаток и т.д. Как только частное станет равным 1 или 0, записываем его, а затем приписываем к нему слева остатки в порядке, обратном их получению. 56 / 2 = 28 (остаток 0) 28 / 2 - 14 (остаток 0) 14 / 2 = 7 (остаток 0) 7 / 2 = 3 (остаток 1) 3 / 2 = 1 (остаток 1) Записываем результат. 56(10) = 111000(2)
Переводы в десятичную систему счисления выполняются путем записи числа в расширенном виде по основанию системы счисления, в которой представлено число. А далее операции выполняются в десятичной системе.
Переводы чисел между системами счисления по основаниям, кратным степеням двойки (2,4,8,16) выполняется через двоичную систему счисления, как через промежуточную. Например, при переходе от восьмеричной системы к шестнадцатиричной, мы учитываем, что , каждую восьмеричную цифру заменяем тремя двоичными (триадой) и получаем двоичное число. А затем, зная что , мы группируем двоичные разряды справа налево по четыре, получая тетрады. И, наконец, каждую тетраду мы заменяем соответствующей шестнадцатиричной цифрой. Описывать этот процесс долго, а перевод делается быстро. 3) 77(8) = 111 111(2) = 11 1111(2) = 3F(16) 4) 57(8) = 101 111(2) = 101111(2) 5) 9A(16) = 1001 1010(2) = 10011010(2) 7) 10011(2) = 010 011(2) = 23(8) 8) 101011(2) = 0010 1011(2) = 2B(16)