===== PascalABC.NET =====
procedure SortShell<T>(a: array of T);
where T: IComparable<T>;
// сортировка по Шеллу
begin
var n := a.Length;
var d := n div 2;
while d > 0 do
var k := True;
while k do
k := False;
for var i := 0 to n - d - 1 do
if a[i].CompareTo(a[i + d]) > 0 then begin
Swap(a[i], a[i + d]);
k := True
end
end;
d := d div 2
var a := ArrRandom(10, -20, 20); a.Println;
SortShell(a); a.Println
end.
не знаю под чем ты подразумеваешь алгоритм, если это программа на паскаль то вот, нет ну тут уже сами справитесь, тут уж все разжевано
Объяснение:
program my;
var
i:integer;
bil:longint;
a:array [1..6] of integer;
write('Введите номер билета');
readln (bil);
if (bil>999999) or (bil<100000) then begin
writeln('Введён неправильный номер');
else
for i:=1 to 6 do
a[i]:=bil mod 10;
bil:=bil div 10;
writeln(a[i]);
if (a[1]+a[2]+a[3])=(a[4]+a[5]+a[6]) then writeln('Вы выиграли')
writeln('Вы проиграли');
===== PascalABC.NET =====
procedure SortShell<T>(a: array of T);
where T: IComparable<T>;
// сортировка по Шеллу
begin
var n := a.Length;
var d := n div 2;
while d > 0 do
begin
var k := True;
while k do
begin
k := False;
for var i := 0 to n - d - 1 do
if a[i].CompareTo(a[i + d]) > 0 then begin
Swap(a[i], a[i + d]);
k := True
end
end;
d := d div 2
end
end;
begin
var a := ArrRandom(10, -20, 20); a.Println;
SortShell(a); a.Println
end.
не знаю под чем ты подразумеваешь алгоритм, если это программа на паскаль то вот, нет ну тут уже сами справитесь, тут уж все разжевано
Объяснение:
program my;
var
i:integer;
bil:longint;
a:array [1..6] of integer;
begin
write('Введите номер билета');
readln (bil);
if (bil>999999) or (bil<100000) then begin
writeln('Введён неправильный номер');
end
else
for i:=1 to 6 do
begin
a[i]:=bil mod 10;
bil:=bil div 10;
writeln(a[i]);
end;
if (a[1]+a[2]+a[3])=(a[4]+a[5]+a[6]) then writeln('Вы выиграли')
else
writeln('Вы проиграли');
end.