Advertisement
Vladislav8653

контрольная

Oct 28th, 2022 (edited)
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.59 KB | None | 0 0
  1. Program LR3;
  2. Uses
  3.     System.SysUtils;
  4. Function ArrayRazmer () : Integer;
  5.     Var
  6.         N : Integer;
  7.     Begin
  8.         Writeln  ('Размерность массива: ');
  9.         Readln(N);
  10.         ArrayRazmer := N;
  11.     End;
  12. Type
  13.     TMatrix = Array of Array of Integer;
  14. Function Massiv (N: Integer) : TMatrix;
  15. Var
  16.     I,J : Integer;
  17.     Arr : TMatrix;
  18.     Begin
  19.         SetLength (Arr, N, N);
  20.         Writeln('Введите элементы матрицы: ');
  21.         For I := 0 to N-1 do
  22.             For J := 0 to N-1 do
  23.                 Readln(Arr[I,J]);
  24.         Massiv := Arr;
  25.     End;
  26.  
  27.  
  28. Function ZeroExist (N: Integer; Arr: TMatrix) : Boolean;
  29.     Var
  30.         DoesZeroExist : Boolean;
  31.         I,J : Integer;
  32.     Begin
  33.         DoesZeroExist := False;
  34.         For I := 0 to N-1 do
  35.             For J := 0 to N-1 do
  36.                 If (Arr[I,J] = 0) then
  37.                     DoesZeroExist := True;
  38.         ZeroExist := DoesZeroExist;
  39.     End;
  40. Function SumTillZero ( DoesZeroExist : Boolean; Arr: TMatrix; N: integer) : Integer;
  41.     Var
  42.         Sum1 : Integer;
  43.         I,J, ZeroI, ZeroJ : Integer;
  44.         Istrue : Boolean;
  45.         Begin
  46.             If (DoesZeroExist = true) then
  47.                 Begin
  48.                     IsTrue := False;
  49.                     for I := 0 to N -1 do
  50.                         for J := 0 to N -1 do
  51.                             if ((Arr[I,J] = 0) and (IsTrue = False)) then
  52.                               Begin
  53.                                 ZeroI := I;
  54.                                 ZeroJ := J;
  55.                                 IsTrue := True;
  56.                               End;
  57.                 End
  58.             Else
  59.                 Writeln ('Нет нулей');
  60.             Sum1 := 0;
  61.             For I:= 0 To ZeroI Do
  62.                 For J:= 0 To ZeroJ Do
  63.                     Sum1:= Sum1 + Arr[I,J];
  64.             Writeln ('Сумма до нуля: ', Sum1);
  65.             SumtillZero := Sum1;
  66.         End;
  67. Function Matrix (N:Integer; Arr: TMatrix) : Integer;
  68.     Var
  69.         I, j, Sum2 : integer;
  70.     Begin
  71.         Sum2 := 0;
  72.         For I := 0 to N-1 do
  73.             For J := 0 to N-1 do
  74.                If ( I + J > N - 1)  Then
  75.                     Sum2 := Sum2 + Arr[I,J];
  76.         Writeln ('Под побочной диагональю: ', Sum2);
  77.         Matrix := Sum2;
  78.     End;
  79.  
  80. Var
  81.     Arr : TMatrix;
  82.     N, Sum1, Sum2 : Integer;
  83.     Zero : Boolean;
  84. Begin
  85.     N := ArrayRazmer ();
  86.     Arr := Massiv(N);
  87.     Zero := ZeroExist(N,Arr);
  88.     Sum1 := SumTillZero (Zero, Arr, N);
  89.     Sum2 := Matrix (N, Arr);
  90.     Readln;
  91. End.
  92.  
  93.  
  94.  
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement