Составьте программу на паскале переводящую дробное не десятичное число с основанием р(2-9) в десятичную систему счисления

Составьте программу на паскале переводящую дробное не десятичное число с основанием р(2-9) в десятичную систему счисления
Гость
Ответ(ы) на вопрос:
Гость
const   k = 50; var   s, si, sf: string;   powm, n10i: longint;   i, j, m, ls, err, ni, nf: integer;   a: double; begin   Write('Введите основание системы счисления (2..9): ');   Readln(m);   if not (m in [2..9]) then Writeln('Ну-ну...')   else begin     Write('Введите положительное число в этой системе счисления: ');     Readln(s);     ls := Length(Trim(s));     i := pos('.', s);     if i > 0 then begin       ni := i - 1; si := Copy(s, 1, ni);       nf := ls - i; sf := Copy(s, i + 1, nf)     end     else begin si := s; ni := ls; sf := ''; nf := 0 end;     powm := 1; n10i := 0;     for i := ni downto 1 do     begin       Val(si[i], j, err);       n10i := n10i + j * powm;       powm := powm * m     end;     powm := m; a := 0;     for i := 1 to nf do     begin       Val(sf[i], j, err);       a := a + j / powm;       powm := powm * m     end;     a := a + n10i;     Writeln(s, '(', m, ')=', a, '(10)')   end; end. Тестовое решение: Введите основание системы счисления (2..9): 8 Введите положительное число в этой системе счисления: 23532.5034 23532.5034(8)=10074.6318359375(10)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы