Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program laba2_2;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- type MyArr = array of Integer;
- Const
- MaxValue = 9999999;
- MinValue = 100;
- FNum = 'Enter first num';
- SNum = 'Enter second num';
- NotEq = 'Not equal, try again';
- Err = 'Error, try again';
- function EnterValue(Num: Integer) : Integer;
- begin
- try
- Readln(Num);
- except
- Writeln(Err);
- EnterValue := EnterValue(Num);
- end;
- EnterValue := Num;
- end;
- function CheckValue(Max, Min, Num: Integer) : Boolean;
- begin
- if (Max < Num) or (Num < Min) then
- begin
- Writeln('Ur value is not belongs[' , Min , ' ; ' , Max , ']');
- CheckValue := False;
- end
- else
- CheckValue := True;
- end;
- function EnterCheckValue(Max, Min, Num: Integer; msg: String) : Integer;
- begin
- repeat
- Writeln(msg);
- Num := EnterValue(Num)
- until(CheckValue(Max, Min, Num));
- EnterCheckValue := Num;
- end;
- function CheckCapacity(Num: Integer) : Integer;
- var
- i: Integer;
- begin
- i := 1;
- repeat
- Num := Num div 10;
- Inc(i);
- until(Num div 10 = 0);
- CheckCapacity := i;
- end;
- function BitComperison(Num1, Num2: Integer) : Boolean;
- begin
- if CheckCapacity(Num1) <> CheckCapacity(Num2) then
- begin
- Writeln(NotEq);
- BitComperison := False;
- end
- else
- BitComperison := True;
- end;
- function ArraySplit(Arr: MyArr; Num: Integer): MyArr;
- var
- i: Integer;
- begin
- for i := 0 to High(Arr) do
- begin
- Arr[i] := Num mod 10;
- Num := Num div 10;
- end;
- ArraySplit := Arr;
- end;
- procedure PrintArray(Msg: String; Arr: array of Integer);
- var
- i: Integer;
- begin
- Writeln(Msg);
- for i := High(Arr) downto 0 do
- begin
- if i <> High(Arr) then
- Write(', ');
- Write(Arr[i]);
- end;
- end;
- var
- FirstNum, SecondNum, i: Integer;
- IsCorrect: Boolean;
- ArrOf1, ArrOf2: MyArr;
- begin
- repeat
- FirstNum := EnterCheckValue(MaxValue, MinValue, FirstNum, FNum);
- SecondNum := EnterCheckValue(MaxValue, MinValue, SecondNum, SNum);
- IsCorrect := BitComperison(FirstNum, SecondNum);
- until (IsCorrect);
- SetLength(ArrOf1, CheckCapacity(FirstNum));
- SetLength(ArrOf2, CheckCapacity(SecondNum));
- ArrOf1 := ArraySplit(ArrOf1, FirstNum);
- ArrOf2 := ArraySplit(ArrOf2, SecondNum);
- for i := 0 to High(ArrOf1) do
- ArrOf1[i] := ArrOf1[i] - ArrOf2[i];
- printArray('Final nums', ArrOf1);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement