В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Fateev20067
Fateev20067
08.03.2020 08:38 •  Информатика

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

Показать ответ
Ответ:
Умару11
Умару11
09.07.2020 20:43
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)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота