
- •Глава 1. Проектирование программы
- •1.1 Разработка внутренних структур данных и определение пользовательского интерфейса программного приложения
- •1.2 Выбор технологии, языка и среды программирования
- •1.3 Проектирование структуры программы и взаимодействия модулей
- •Глава 2. Описание и функциональные возможности программы
- •2.1 Особенности построения и работы алгоритма
- •Глава 3. Тестирование
- •3.1 Выбор стратегии тестирования и разработка тестов
- •5. Требования к программной документации
- •6. Технико-экономические показатели
- •7. Стадии и этапы разработки
- •8. Порядок контроля и приемки
8. Порядок контроля и приемки
Приемка осуществляется в соответствии с Техническим заданием.
Приложение B
Интересный код программы
function sudInLine(s:TSudoku;p:TPoint;v:integer):boolean;{проверяем можно ли цифру подставить на данное место}
var
i:1..9;
begin
Result:=True;
for i:=1 to 9 do
if p.y<>i then {есть ли данное значение в строке}
if s[p.X,i]=v then Exit;
Result:=False;
end;
function sudInRow(s:TSudoku;p:TPoint;v:integer):boolean;
var
i:1..9;
begin
Result:=True;
for i:=1 to 9 do
if p.x<>i then {есть ли данное значение в столбце}
if s[i,p.Y]=v then Exit;
Result:=False;
end;
function sudInSq(s:TSudoku;p:TPoint;v:integer):boolean;
var
ix,iy:0..8;
lx,ly:0..8;
begin
lx:=0; ly:=0;
if p.x in [1,2,3] then lx:=1; {есть ли данное значение в квадрате}
if p.x in [4,5,6] then lx:=4;
if p.x in [7,8,9] then lx:=7;
lx:=lx-1;
if p.y in [1,2,3] then ly:=1;
if p.y in [4,5,6] then ly:=4;
if p.y in [7,8,9] then ly:=7;
ly:=ly-1;
Result:=True;
for ix:=1 to 3 do
for iy:=1 to 3 do
if (p.x<>lx+ix) and (p.y<>ly+iy) then
if s[lx+ix,ly+iy]=v then Exit;
Result:=False;
end;
function sudInAny(s:TSudoku;p:TPoint;v:integer):boolean; {если цифра есть в линии, столбце или квадрате, то мы ее не берем}
begin
Result:=sudInLine(s,p,v) or sudInRow(s,p,v) or sudInSq(s,p,v);
end;