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;
- function EnterValue(Num: Integer) : Integer;
- begin
- try
- Readln(Num);
- except
- Writeln('Error, try again');
- 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;
- 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: Extended) : Integer;
- var
- i: Integer;
- begin
- i := 1;
- repeat
- Num := Num / 10;
- Inc(i);
- until(Num / 10 = 0);
- CheckCapacity := i;
- end;
- function BitComperison(Num1, Num2: Integer) : Boolean;
- begin
- if CheckCapacity(Num1) <> CheckCapacity(Num2) then
- begin
- Writeln('Not eq');
- BitComperison := False;
- end;
- BitComperison := True;
- end;
- function ArraySplit(Arr: MyArr; Num: Integer): MyArr;
- var
- i: Integer;
- begin
- for i := 0 to High(Arr) - 1 do
- begin
- Arr[i] := Num mod 10;
- Num := Num div 10;
- ArraySplit := Arr;
- end;
- end;
- procedure PrintArray(Msg: String; Arr: array of Integer);
- var
- i: Integer;
- begin
- Writeln(Msg);
- for i := High(Arr) - 1 to 0 do
- begin
- if i <> High(Arr) - 1 then
- Writeln(', ');
- Writeln(Arr[i]);
- end;
- end;
- var
- FirstNum, SecondNum, i, MaxValue, MinValue: Integer;
- IsCorrect: Boolean;
- ArrOf1, ArrOf2: MyArr;
- begin
- MaxValue := 9999999;
- MinValue := 100;
- repeat
- FirstNum := EnterCheckValue(MaxValue, MinValue, FirstNum, 'Enter first num');
- SecondNum := EnterCheckValue(MaxValue, MinValue, SecondNum, 'Enter second num');
- IsCorrect := BitComperison(FirstNum, SecondNum);
- until (IsCorrect);
- SetLength(ArrOf1, CheckCapacity(FirstNum));
- SetLength(ArrOf2, CheckCapacity(SecondNum));
- ArrOf1 := ArraySplit(ArrOf1, FirstNum);
- ArrOf2 := ArraySplit(ArrOf2, FirstNum);
- for i := 0 to High(ArrOf1) - 1 do
- begin
- ArrOf1[i] := ArrOf1[i] - ArrOf2[i];
- end;
- for i := 0 to 5 do
- Writeln(ArrOf1[1]);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement