Advertisement
nikitaxe132

Untitled

Oct 21st, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.19 KB | None | 0 0
  1. program laba_2_2;
  2. uses
  3.   System.SysUtils;
  4.  
  5. function enter(Min, Max : Integer): Byte;
  6. var
  7.    Temp : Integer;
  8.    Iscorrect : Boolean;
  9. begin
  10.    repeat
  11.       try
  12.          Read(Temp);
  13.          if (Temp > Max) or (Temp < Min) then
  14.          begin
  15.             IsCorrect := False;
  16.             WriteLn('This is a mistake. Please enter again!');
  17.          end
  18.          else
  19.             IsCorrect := True
  20.       except
  21.          WriteLn('This is a mistake. Please enter again!');
  22.          IsCorrect:=False;
  23.       end;
  24.    until(IsCorrect) ;
  25.    result := Temp;
  26. end;
  27. function transfer(J, N, Num : Integer) : Integer;
  28. var
  29.    Res, Temp, I : Integer;
  30. begin
  31.    Res := 0;
  32.    Temp := 1;
  33.    N := N - 1;
  34.    for I := J to N do
  35.       Temp := Temp * 10;
  36.    Res := Res + (Num * Temp);
  37.    result := Res;
  38. end;
  39. function subtraction(J, N, Num : Integer) : Integer;
  40. var
  41.    Res, Temp, I : Integer;
  42. begin
  43.    Res := 0;
  44.    Temp := 1;
  45.    N := N - 1;
  46.    Temp := Temp * 10;
  47.    Res := Res + (Num mod Temp);
  48.    result := Res;
  49. end;
  50. var I, N, Num1, Num2 : Integer;
  51.     Numb1 : array [0..10] of Integer;
  52.     Numb2 : array [0..10] of Integer;
  53.     Res : array [0..10] of Integer;
  54. begin
  55.    WriteLn('Enter the number of numb (n > 0 and n < 10)');
  56.    N := enter(0,10);
  57.    N := N - 1;
  58.    for I := 0 to N do
  59.    begin
  60.       WriteLn('Enter the ', (I + 1), ' digit of the first number(digit > 0 and digit < 10)');
  61.       Numb1[I] := enter(0, 10);
  62.    end;
  63.    for I := 0 to N do
  64.    begin
  65.       WriteLn('Enter the ', (I + 1), ' digit of the second number(digit > 0 and digit < 10)');
  66.       Numb2[I] := enter(0,10);
  67.    end;
  68.    for I := N downto 0 do
  69.    begin
  70.       Num1 := Num1 + transfer(I, N, Numb1[I]);
  71.       Num2 := Num2 + transfer(I, N, Numb2[I]);
  72.    end;
  73.    Num1 := Num1 - Num2;
  74.    if Num1 < 0 then
  75.    begin
  76.       Num1 := abs(Num1);
  77.       for I := N downto 0 do
  78.       begin
  79.          Res[I] := subtraction(I, N, Num1);
  80.          Num1 := Num1 div 10;
  81.       end;
  82.       Res[0] := Res[0] * (-1);
  83.    end
  84.    else
  85.    begin
  86.       for I := N downto 0 do
  87.       begin
  88.          Res[I] := subtraction(I, N, Num1);
  89.          Num1 := Num1 div 10;
  90.       end;
  91.    end;
  92.    for I := 0 to N do
  93.       Write(Res[I]);
  94.    ReadLn;
  95. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement