і графовой формах. Правильність програми була доведена за допомогою математичної індукції. Побудована мережа Петрі і здійснений аналіз показав, що програма правильна, мережа є живучою і обмеженою. br/>
Коротка теорія
Головна діагональ - діагональ квадратної матриці, що йде з верхнього лівого кута матриці у правий нижній.
Програмна реалізація
Код програми:
// ---------------------------------------- -----------------------------------
# include
# pragma hdrstop
# include "Unit1.h"
# include "Unit2.h"
# include
// ---------------------------------------- -----------------------------------
# pragma package (smart_init)
# pragma resource "*. dfm" * Form1; n, maxindex = -10;
// ---------------------------------------- -----------------------------------
__fastcall TForm1 :: TForm1 (TComponent * Owner)
: TForm (Owner)
{
}
{-> RowCount = 0; -> ColCount = 0; -> RowCount = 0; -> ColCount = 0; (CompareText (Form1-> Edit1-> Text, "") == 0) {}
{(StrToInt (Form1-> Edit1-> Text)> 1000)
{> MessageBoxA;;
} {n = StrToInt (Form1-> Edit1-> Text);} (...)
{> MessageBox;;
}
} (int i = 0; i RowCount; i + +) Form1-> StringGrid1-> Rows [i] -> Clear (); (int i = 0 ; i RowCount; i + +) = False; = -10;
}
{(); -> StringGrid1-> Visible = true; i, j; (CompareText (Form1-> Edit1-> Text, "") == 0) { Application-> MessageBoxA}
{-> StringGrid1-> ColCount = n; -> StringGrid1-> RowCount = n; -> StringGrid2-> ColCount = 2 * n - 1; -> StringGrid2 -> RowCount = 2; (i = 0; i
{(j = 0; j StringGrid1-> Cells [i] [j] = n - random (2 * n);
} -> Button1-> Enabled = true;
} -> Edit2-> Clear (); -> Edit3-> Clear (); (n == 0)
{-> Button1-> Enabled = false; -> StringGrid2-> Visible = false;
} (n == 1)
{-> Button1-> Enabled = false; -> Edit2-> Text = Form1-> StringGrid1-> Cells [0] [0]; -> Edit3- > Text = 0; -> StringGrid2-> Visible =
}
}
{