profile
Размещено 5 лет назад по предмету Информатика от Santa2015

Всех приветствую! Если Вам не сложно, то хотел бы попросить помочь. Задачу необходимо решить на ЯП Pascal с использованием подпрограмм, если можно, то с комментариями переменных и некоторых функций. Системы счисления: 2, 8, 10 и 16. Типа real чтобы число можно было записать с десятичной дробью пример:(2.25) . Заранее спасибо.

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    // PascalABC.NET 3.3.5, сборка 1644 от 23.03.2018
    // Внимание! Если программа не работает, обновите версию!

    function aToDec(n:string;k:integer):string;
    // Перевод из системы по основанию k в десятичную
    begin
      var s:='0123456789ABCDEF';
      Result:='';
      var PointPos:=Pos('.',n);
      if PointPos>0 then begin // есть дробная часть
        var sFracPart:=n[PointPos+1:];
        var r:=0.0;
        var p:=k;
        foreach var c in sFracPart do begin
          r+=(Pos(c,s)-1)/p;
          p*=k;
          end;
        Result:=r.ToString[2:]
        end
      else PointPos:=n.Length+1;
      var pa:=1;
      n:=n[:PointPos];
      var p:=0;
      foreach var c in n.Reverse do begin
        p+=pa*(Pos(c,s)-1);
        pa*=k
        end;
      Result:=p.ToString+Result
    end;

    function DecToa(n:string;k:integer):string;
    // Перевод из десятичной системы в систему по основанию k
    begin
      var s:='0123456789ABCDEF';
      Result:='';
      var PointPos:=Pos('.',n);
      var IntPart:integer;
      if PointPos>0 then begin // есть дробная часть
        var FracPart:=Frac(n.ToReal);
        var m:=0;
        while True do begin
          var r:=FracPart*k;
          Result+=s[Trunc(r)+1];
          FracPart:=Frac(r);
          m+=1;
          if (m=15) or (FracPart=0) then break
          end;
        IntPart:=n[:PointPos].ToInteger;
        end
      else IntPart:=n.ToInteger;
      if Result<>'' then Result:='.'+Result;
      while IntPart>0 do begin
        Result:=s[IntPart mod k+1]+Result;
        IntPart:=IntPart div k
        end;
      if Result='' then Result:='0';
      if Result[1]='.' then Result:='0'+Result
    end;

    function AtoB(s:string;A,B:integer):string;
    // Перевод из системы по основанию A в систему по основанию B
    begin
      if A=10 then Result:=DecToa(s,B)
      else
        if B=10 then Result:=aToDec(s,A)
        else Result:=DecToa(aToDec(s,A),B)
    end;
       
    begin
      var n:=ReadlnString('Какое число перевести?');
      var (a,b):=ReadInteger2('Исходное и результирующее основания:');
      Writeln(n,'(',a,') = ',AtoB(n,a,b),'(',b,')');
    end.


    Пример
    Какое число перевести? 345.653
    Исходное и результирующее основания: 8 16
    345.653(8) = E5.D58(16)

    1. Ответ на вопрос
      Ответ на вопрос дан Santa2015
      не работает
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Бессмысленное заявление. Что именно не работает? что происходит? Что делали? Что вводили?
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.