Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

745 / Л.Р.№4 / lab4_var_6

.PAS
Скачиваний:
4
Добавлен:
22.02.2016
Размер:
3 Кб
Скачать
PROGRAM LABA_4;
var
a,b,c,d,n,m,i,l,r,e:integer;
s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s_ogo,s_ika,s_cha:string;
procedure zsuv;
  var
    sa,sb,sc:string;
  var
   a,b,c,p:integer;
  begin
    a:=pos('1',s_ogo);
    b:=pos('1',s_ika);
    b:=b-a;
    delete(s_ika,1,b);
    for i:=1 to b do
      s_ika:=s_ika+'0';
  end;
function minus(sa,sb:string):boolean;
  var
  j,i,k,l,m:integer;
  sc,sd:string;
  begin
    sc:='uuuuuuuuuuuuuuuu';
    sd:='0000000000000000';
    for j:=length(sa) downto 1 do
        begin
          if sb[j]='0' then sc[j]:=sa[j]
          else
            if sa[j]=sb[j] then sc[j]:='0'
            else
              begin
                sc[j]:='1';
                k:=j-1;
                repeat
                  if sa[k]='1' then
                  begin
                  sa[j]:='1';
                  sa[k]:='0'; end
                  else sa[k]:='1';
                  k:=k-1;
                until (sa[j]='1') or (k=0);
                end;
        end;
      s_ogo:=sc;
  end;
procedure plus(var s_ogo:string);
        var
           a,b,c,d,e,i,k:integer;
        var
          s3,s4,s5:string;
        begin
          k:=0;
          s5:='';
          c:=0;
          for i:=16 downto 1 do
            begin
              val(s_ika[i],a,e); val(s_ogo[i],b,e);
              c:=a+b+k;
              if c= 0 then begin c:=0; k:=0; end else
              if c= 1 then begin c:=1; k:=0; end else
              if c= 2 then begin c:=0; k:=1; end else
              if c= 3 then begin c:=1; k:=1; end;
              str(c,s4);
              s5:=copy(s4,1,1)+s5;
            end;
            S3:=COPY(S5,1,16);
            s_ogo:=s3;
        end;
BeGIN
writeln('vvedite dilene Ta dil`nuk  16 simvolov!!!');
readln(s_ogo);
readln(s_ika);
if length(s_ogo)<> 16 then writeln('error 1');
if length(s_ika)<> 16 then writeln('error 1');
s_cha:='0000000000000000';
s:='0000000000000000';
val(s_ogo[1],l,e); val(s_ika[1],r,e);
writeln(l,r);
s_ika[1]:='0';
s_ogo[1]:='0';
writeln('    Dil`ne             Dil`nuk             chastka');
write(s_ogo,' | ');
write(s_ika,' | ');
write(s_cha);
writeln;
    a:=pos('1',s_ogo);
    b:=pos('1',s_ika);
    b:=b-a;
    n:=b+1;
zsuv;
repeat
writeln;
minus(s_ogo,s_ika);
if s_ogo[1]='1' then
begin
  delete(s_cha,1,1);
  s_cha:=s_cha+'0';
  plus(s_ogo);
  delete(s_ika,16,1);
  s_ika:='0'+s_ika;
end
else
  begin
  delete(s_cha,1,1);
  s_cha:=s_cha+'1';
  delete(s_ika,16,1);
  s_ika:='0'+s_ika;
  end;
n:=n-1;
until n=0;
if (l=1) or (r=1) then
s_cha[1]:='1';
writeln(s_ogo,' | ',s_ika,' | ',s_cha);
s5:=s_ogo;
s6:=s_ika;
s7:=s_cha;
READLN;
END.
Соседние файлы в папке Л.Р.№4