Скачали: 11 раз
.'9']; { возможные клавиши }
If y=1 Then Kon:=2 else Kon:=16; { присвоение системы исчисления результата }
end;
2,5 : begin
Isx:= 2;
Keys:=['0','1']; { определение клавиш которые можно будет нажимать }
If y=2 Then Kon:=10 else Kon:=16; { присвоение системы исчисления результата }
end;
4,6 : begin
isx:=16;
keys:=['0'..'9','A'..'F']; { определение клавиш которые можно будет нажимать }
if y=4 then kon:=10 else kon:=2; { присвоение системы исчисления результата }
end;
end;
Repeat { основной цикл для перевода }
Write('? '); Promeg:=0; Kol:=0; Otv:=''; { подготовительные действия }
Repeat { цикл для ввода числа }
klav:=ReadKey; { чтение клавиши }
if UpCase(Klav) in Keys then begin { если клавиша допустимая }
kol:=kol+1; { количество символов в исходном числе }
a[kol]:=UpCase(Klav); { запоминание введенного символа }
Write (a[kol]); { вывод нажатого символа }
end;
if (Ord(Klav)=8) and (Kol>0) then begin { если клавиша ЗАБОЙ }
kol:=kol-1;
GoToXY(WhereX-1,WhereY);
ClrEol;
end;
Until (Ord(klav)=13) or (Ord(klav)=27); { пока не нажата ВВОД или ESC }
if Ord(klav)=13 then begin { если клавиша ВВОД - начало обработки результата }
for i:=1 to kol do begin { перевода введенного числа в десятеричную систему}
if a[i]<'A' then Znach:=Ord(a[i])-48
else Znach:=Ord(a[i])-55;
promeg:=promeg+Znach*Stepen(isx,kol-i);
end;
i:=0;
Repeat { определение максимального порядка результата }
i:=i+1;
Chast:=Trunc(Promeg/Stepen(Kon,i));
Until Chast<Kon;
For j:=i downto 0 do begin { перевод в нужную систему исчисления }
Help:=Trunc(Promeg/Stepen(Kon,j));
If Help>9 Then Pom:=Chr(55+Help)
Else Str(Help,Pom);
Otv:=Otv+Pom;
Promeg:=Promeg-Help*Stepen(Kon,j);
end;
WriteLn(' = ',Otv); { вывод результата }
end; { конец обработки результата }
Until Ord(Klav)=27; { если нажата ESC то выход в основное меню }
Zast; { вывод заставки }
end;
Until (Ord(Klav)=13) and (y=7); { если в меню нажали ESC или ВВОД на выходе }
ClrScr { очистить экран }
end.
Скачали: 11 раз
