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

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

Показать ответ
Ответ:
ANGEL7777771
ANGEL7777771
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-бота