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

Ответы 1

  • 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.503423532.5034(8)=10074.6318359375(10)
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years