Не работает часть кода - PascalABC.NET
Формулировка задачи:
Должен переводить из любой (от 2 до 16-ой) системы в 10.
Прошу указать только место или места ошибок!
Решение задачи: «Не работает часть кода»
textual
Листинг программы
const digit:string[16]='0123456789ABCDEF';
var cs,k,i:byte;
st:string;
m:integer;
begin
repeat
writeln('Введите из какой сс от 2 до 16');
readln(cs);
until cs in [2..16];
repeat
writeln('Введите число в соответствии с сс');
readln(st);
k:=0;
i:=1;
while(i<=length(st))and(k=0) do
if pos(st[i],copy(digit,1,cs))=0 then k:=1
else inc(i);
if k=1 then write('Число введено неверно, повторите')
until k=0;
m:=0;
for i:=1 to length(st) do
m:=m*cs+pos(st[i],digit)-1;
writeln('Число в СС 10=',m);
end.
Объяснение кода листинга программы
- В коде используется язык программирования PascalABC.Net.
- Задачей программы является проверка введенного числа на соответствие системе счисления (СС).
- В первой части кода пользователю предлагается ввести номер СС от 2 до 16 и само число в соответствии с выбранной СС.
- Затем происходит проверка введенного числа на соответствие выбранной СС.
- Если число введено неверно, пользователю предлагается повторить ввод.
- В случае правильного ввода числа, программа вычисляет его значение в СС 10 и выводит результат на экран.