Дано одновимірний масив цілих чисел. скласти програму сортування елементів одновимірного масиву.сортування елементів масиву за спаданням методом вставки.
Екі өлшемді суреттерді жасаудың механизмі 1860 жылдары ұсынылды. Механизм зоотроп, мутоскоп, праксиноскоп деп аталатын құрылғылардан тұрады. Бұл құрылғылар көрермендердің қабылдау инерциясы деп аталатын құбылысты жасады. Ол қозғалатын суреттерді әсерлі етіп жасау үшін жеткілікті үлкен жылдамдықпен көрсетілетін стопкадрлардың тізбегінен тұрды. Целлулоид пленкалардың немесе стоп-кадрлардың дамуы нақты уақыт режимінде дененің қозғалысын жазу мүмкіндігін берді. Кино-камералардың, кинопроекторлар мен көшіру пленкаларының дамуы нәтижесінде кескіндерді үлкейту және оны көрермендер үшін үлкен экранда көрсету мүмкіндігі болды, ол катушкадағы жеке омега компоненттерді жазу және сақтау арқылы іске асырылды
type maze = array [1..k, 1..k] of integer; var l : maze; n, m: integer; i, j: integer; c: char; t: text; w: integer; x0, y0: integer; x1, y1: integer;
procedure ways(a,b,r:integer); begin if (w = 0) or (r < w) then {нет смысла идти дальше, если текущий путь уже превосходит найденный} if (l[a,b] <> -2) then if (r < l[a,b]) or (l[a,b] = -1) then {нет смысла идти, если текущая клетка уже была достигнута за меньшее число шагов} begin l[a,b] := r; if (a = x1) and (b = y1) then w := r else begin if a <> 1 then ways(a - 1, b, r + 1); if b <> 1 then ways(a, b - 1, r + 1); if a <> n then ways(a + 1, b, r + 1); if b <> m then ways(a, b + 1, r + 1); end end; end; begin assign(t, 'input.txt'); reset(t); w := 0; readln(t, n, m); readln(t, x0, y0); readln(t, x1, y1); for i := 1 to n do begin for j := 1 to m do begin read(t, c); case c of '.' : l[i,j] := -1; {будем считать, что если клетка отмечена как -1, то путь к ней еще не найден} 'X' : l[i,j] := -2; {-2, если клетка непроходима} end; end; readln(t) end; close(t); if (l[x0,y0] <> -2) and (l[x1,y1] <> -2) then begin l[x0,y0] := 1; {просто трюк, чтобы пройти проверку на (r < l[x0,y0])} ways(x0, y0, 0); end else l[x1,y1] := -1; writeln(l[x1,y1]) end.
Екі өлшемді суреттерді жасаудың механизмі 1860 жылдары ұсынылды. Механизм зоотроп, мутоскоп, праксиноскоп деп аталатын құрылғылардан тұрады. Бұл құрылғылар көрермендердің қабылдау инерциясы деп аталатын құбылысты жасады. Ол қозғалатын суреттерді әсерлі етіп жасау үшін жеткілікті үлкен жылдамдықпен көрсетілетін стопкадрлардың тізбегінен тұрды. Целлулоид пленкалардың немесе стоп-кадрлардың дамуы нақты уақыт режимінде дененің қозғалысын жазу мүмкіндігін берді. Кино-камералардың, кинопроекторлар мен көшіру пленкаларының дамуы нәтижесінде кескіндерді үлкейту және оны көрермендер үшін үлкен экранда көрсету мүмкіндігі болды, ол катушкадағы жеке омега компоненттерді жазу және сақтау арқылы іске асырылды
Объяснение:
const
k = 100;
type
maze = array [1..k, 1..k] of integer;
var
l : maze;
n, m: integer;
i, j: integer;
c: char;
t: text;
w: integer;
x0, y0: integer;
x1, y1: integer;
procedure ways(a,b,r:integer);
begin
if (w = 0) or (r < w) then {нет смысла идти дальше, если текущий путь уже превосходит найденный}
if (l[a,b] <> -2) then
if (r < l[a,b]) or (l[a,b] = -1) then {нет смысла идти, если текущая клетка уже была достигнута за меньшее число шагов}
begin
l[a,b] := r;
if (a = x1) and (b = y1) then
w := r
else
begin
if a <> 1 then ways(a - 1, b, r + 1);
if b <> 1 then ways(a, b - 1, r + 1);
if a <> n then ways(a + 1, b, r + 1);
if b <> m then ways(a, b + 1, r + 1);
end
end;
end;
begin
assign(t, 'input.txt');
reset(t);
w := 0;
readln(t, n, m);
readln(t, x0, y0);
readln(t, x1, y1);
for i := 1 to n do
begin
for j := 1 to m do
begin
read(t, c);
case c of
'.' : l[i,j] := -1; {будем считать, что если клетка отмечена как -1, то путь к ней еще не найден}
'X' : l[i,j] := -2; {-2, если клетка непроходима}
end;
end;
readln(t)
end;
close(t);
if (l[x0,y0] <> -2) and (l[x1,y1] <> -2) then
begin
l[x0,y0] := 1; {просто трюк, чтобы пройти проверку на (r < l[x0,y0])}
ways(x0, y0, 0);
end
else
l[x1,y1] := -1;
writeln(l[x1,y1])
end.