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

написать программу для сложения натуральных чисел А и В в троичной системе счисления

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    function Is3Base(s:string):Boolean;
    {
      Возвращает True, если строка представляет натуральное число
      в троичной системе счисления
    }
    const
      Dig3Base=['0'..'2'];
    var
      i,n:integer;
      err:boolean;
    begin
      n:=Length(s);
      if n=0 then Is3Base:=False
      else begin
        i:=n;
        repeat
          err:=not(s[i] in Dig3Base);
          Dec(i);
        until (i=0) or err;
        Is3Base:=not err
      end
    end;

    procedure DigitsAlign(var s1,s2:string);
    {
      Дополняет слева нулями короткое слагаемое до длинного
    }
    var
      i,n,l1,l2:integer;
    begin
      l1:=Length(s1); l2:=Length(s2);
      if l1>l2 then
        for i:=l2+1 to l1 do s2:='0'+s2
      else
        for i:=l1+1 to l2 do s1:='0'+s1
    end;

    function Add3Base(s1,s2:string):string;
    {
      Сложение на строках натуральных чмсел s1 и s2
      в системе счисления по основанию 3
    }
    var
      s:string;
      c0,i,ip,d:integer;
    begin
      c0:=Ord('0');
      If not Is3Base(s1) then Add3Base:=s1+' не троичное'
      else
        if not Is3Base(s2) then Add3Base:=s2+' не троичное'
        else begin
          DigitsAlign(s1,s2);
          ip:=0; s:='';
          for i:=Length(s1) downto 1 do begin
            d:=Ord(s1[i])+Ord(s2[i])-2*c0+ip;
            if d>2 then begin ip:=1; d:=d-3 end
            else ip:=0;
            s:=Chr(d+c0)+s
          end;
          if ip=1 then s:='1'+s;
          Add3Base:=s
          end
    end;
     
    var
      s1,s2,sr:string;
    begin
      Write('Введите первое слагаемое в троичной системе: ');
      Readln(s1);
      Write('Введите второе слагаемое в троичной системе: ');
      Readln(s2);
      Writeln(s1,'(3) + ',s2,'(3) = ',Add3Base(s1,s2),'(3)')
    end.

    Тестовое решение:
    Введите первое слагаемое в троичной системе: 12101120122001
    Введите второе слагаемое в троичной системе: 10020021122
    12101120122001(3) + 10020021122(3) = 12111210220200(3)

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 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) их не спросили

Информация

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