<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://pascalabc.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psihopat</id>
	<title>Вики проекта PascalABC.NET - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://pascalabc.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psihopat"/>
	<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Psihopat"/>
	<updated>2026-04-18T21:52:28Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82%D0%BE%D0%B2&amp;diff=1819</id>
		<title>Алгоритмы для студентов</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82%D0%BE%D0%B2&amp;diff=1819"/>
		<updated>2010-11-28T11:14:30Z</updated>

		<summary type="html">&lt;p&gt;Psihopat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Здесь будет ряд алгоритмов из курса лекций &amp;quot;Основы программирования&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure Print&amp;lt;T&amp;gt;(a: array of T; delim: string := ' ');&lt;br /&gt;
begin&lt;br /&gt;
  foreach x: T in a do&lt;br /&gt;
    write(x, delim);&lt;br /&gt;
end;    &lt;br /&gt;
&lt;br /&gt;
// С переходом на следующую строку&lt;br /&gt;
procedure Println&amp;lt;T&amp;gt;(a: array of T; delim: string := ' ');&lt;br /&gt;
begin &lt;br /&gt;
  Print(a, delim);&lt;br /&gt;
  writeln;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; &lt;br /&gt;
  n: integer);&lt;br /&gt;
begin&lt;br /&gt;
  SetLength(a,n);&lt;br /&gt;
  for var i:=0 to n-1 do&lt;br /&gt;
    a[i] := random(100);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure Invert&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i:=0 to n div 2 - 1 do&lt;br /&gt;
    Swap(a[i],a[n-i-1]);&lt;br /&gt;
end; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;// С помощью for&lt;br /&gt;
function Find&amp;lt;T&amp;gt;(a: array of T; x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := -1;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if a[i] = x then&lt;br /&gt;
    begin&lt;br /&gt;
      Result := i;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// С помощью while&lt;br /&gt;
function FindWhile&amp;lt;T&amp;gt;(a: array of T; x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  while (i&amp;lt;n) and (a[i]&amp;lt;&amp;gt;x) do&lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i=n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else Result := i;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// Поиск с барьером&lt;br /&gt;
function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; &lt;br /&gt;
  x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt; a.Length));&lt;br /&gt;
  a[n] := x;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  while a[i]&amp;lt;&amp;gt;x do&lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i=n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else Result := i;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure MinElem(a: array of integer; &lt;br /&gt;
  var min: integer; var minind: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := a[0]; &lt;br /&gt;
  minind := 0;&lt;br /&gt;
  for var i:=1 to a.Length-1 do&lt;br /&gt;
    if a[i]&amp;lt;min then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      minind := i;&lt;br /&gt;
    end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure ShiftLeft&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  for var i:=0 to a.Length-2 do&lt;br /&gt;
    a[i] := a[i+1];&lt;br /&gt;
  a[a.Length-1] := default(T);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Сдвиг вправо ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure ShiftRight&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := a.Length-1 downto 1 do&lt;br /&gt;
    a[i] := a[i-1];&lt;br /&gt;
  a[0] := default(T);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== Циклический сдвиг вправо ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure CycleShiftRight&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  var v := a[a.Length-1];&lt;br /&gt;
  for var i := a.Length downto 1 do&lt;br /&gt;
    a[i] := a[i-1];&lt;br /&gt;
  a[0] := v;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== Удаление k-того ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure Delete&amp;lt;T&amp;gt;(a: array of T; var n: integer; k: integer);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0&amp;lt;=k) and (k&amp;lt;n) and (n&amp;lt;=a.Length));&lt;br /&gt;
  for var i := k to n-2 do&lt;br /&gt;
    a[i] := a[i+1];&lt;br /&gt;
  a[n-1] := default(T);&lt;br /&gt;
  n -= 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=PacVlad/Delete.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== Вставка на k-тое место ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure Insert&amp;lt;T&amp;gt;(a: array of T; var n: integer; var k: integer; value: T);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0&amp;lt;=k) and (k&amp;lt;=n) and (n&amp;lt;a.Length));&lt;br /&gt;
  for var i := n-1 downto k+1 do&lt;br /&gt;
    a[i+1] := a[i];&lt;br /&gt;
  a[k] := value;&lt;br /&gt;
  n += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=PacVlad/Insert.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== Слияние двух упорядоченных в один упорядоченный ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// a,b упорядочены по возрастанию&lt;br /&gt;
function Merge(a,b: array of integer; n,m: integer): array of integer;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; m) and (m &amp;lt; b.Length));&lt;br /&gt;
  a[n] := integer.MaxValue;&lt;br /&gt;
  b[m] := integer.MaxValue;&lt;br /&gt;
  SetLength(Result,m+n);&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ir := 0 to n+m-1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      Result[ir] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      Result[ir] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Поиск в упорядоченном массиве ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function BinarySearch(a: array of integer; x: integer): integer;&lt;br /&gt;
begin&lt;br /&gt;
  var k: integer;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  var j := a.Length-1;&lt;br /&gt;
  repeat&lt;br /&gt;
    k := (i+j) div 2;&lt;br /&gt;
    if x&amp;gt;a[k] then&lt;br /&gt;
      i := k+1&lt;br /&gt;
    else&lt;br /&gt;
      j := k - 1;&lt;br /&gt;
  until (a[k]=x) or (i&amp;gt;j);&lt;br /&gt;
  if a[k]=x then&lt;br /&gt;
    Result := k&lt;br /&gt;
  else &lt;br /&gt;
    Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Psihopat</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82%D0%BE%D0%B2&amp;diff=1814</id>
		<title>Алгоритмы для студентов</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82%D0%BE%D0%B2&amp;diff=1814"/>
		<updated>2010-11-27T21:11:42Z</updated>

		<summary type="html">&lt;p&gt;Psihopat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Здесь будет ряд алгоритмов из курса лекций &amp;quot;Основы программирования&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure Print&amp;lt;T&amp;gt;(a: array of T; delim: string := ' ');&lt;br /&gt;
begin&lt;br /&gt;
  foreach x: T in a do&lt;br /&gt;
    write(x, delim);&lt;br /&gt;
end;    &lt;br /&gt;
&lt;br /&gt;
// С переходом на следующую строку&lt;br /&gt;
procedure Println&amp;lt;T&amp;gt;(a: array of T; delim: string := ' ');&lt;br /&gt;
begin &lt;br /&gt;
  Print(a, delim);&lt;br /&gt;
  writeln;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; &lt;br /&gt;
  n: integer);&lt;br /&gt;
begin&lt;br /&gt;
  SetLength(a,n);&lt;br /&gt;
  for var i:=0 to n-1 do&lt;br /&gt;
    a[i] := random(100);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure Invert&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i:=0 to n div 2 - 1 do&lt;br /&gt;
    Swap(a[i],a[n-i-1]);&lt;br /&gt;
end; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;// С помощью for&lt;br /&gt;
function Find&amp;lt;T&amp;gt;(a: array of T; x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := -1;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if a[i] = x then&lt;br /&gt;
    begin&lt;br /&gt;
      Result := i;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// С помощью while&lt;br /&gt;
function FindWhile&amp;lt;T&amp;gt;(a: array of T; x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  while (i&amp;lt;n) and (a[i]&amp;lt;&amp;gt;x) do&lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i=n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else Result := i;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// Поиск с барьером&lt;br /&gt;
function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; &lt;br /&gt;
  x: T): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt; a.Length));&lt;br /&gt;
  a[n] := x;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  while a[i]&amp;lt;&amp;gt;x do&lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i=n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else Result := i;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure MinElem(a: array of integer; &lt;br /&gt;
  var min: integer; var minind: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := a[0]; &lt;br /&gt;
  minind := 0;&lt;br /&gt;
  for var i:=1 to a.Length-1 do&lt;br /&gt;
    if a[i]&amp;lt;min then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      minind := i;&lt;br /&gt;
    end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure ShiftLeft&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  for var i:=0 to a.Length-2 do&lt;br /&gt;
    a[i] := a[i+1];&lt;br /&gt;
  a[a.Length-1] := default(T);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№7. Сдвиг вправо'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure ShiftRight&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := a.Length-1 downto 1 do&lt;br /&gt;
    a[i] := a[i-1];&lt;br /&gt;
  a[0] := default(T);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№8. Циклический сдвиг вправо'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure CycleShiftRight&amp;lt;T&amp;gt;(a: array of T);&lt;br /&gt;
begin&lt;br /&gt;
  var v := a[a.Length-1];&lt;br /&gt;
  for var i := a.Length downto 1 do&lt;br /&gt;
    a[i] := a[i-1];&lt;br /&gt;
  a[0] := v;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№9. Удаление k-того'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure Delete&amp;lt;T&amp;gt;(a: array of T; var n: integer; k: integer);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0&amp;lt;=k) and (k&amp;lt;n) and (n&amp;lt;=a.Length));&lt;br /&gt;
  for var i := k to n-2 do&lt;br /&gt;
    a[i] := a[i+1];&lt;br /&gt;
  a[n-1] := default(T);&lt;br /&gt;
  n -= 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№10. Вставка на k-тое место'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure Insert&amp;lt;T&amp;gt;(a: array of T; var n: integer; var k: integer; value: T);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0&amp;lt;=k) and (k&amp;lt;=n) and (n&amp;lt;a.Length));&lt;br /&gt;
  for var i := n-1 downto k+1 do&lt;br /&gt;
    a[i+1] := a[i];&lt;br /&gt;
  a[k] := value;&lt;br /&gt;
  n += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№11. Слияние двух упорядоченных в один упорядоченный'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// a,b упорядочены по возрастанию&lt;br /&gt;
function Merge(a,b: array of integer; n,m: integer): array of integer;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; m) and (m &amp;lt; b.Length));&lt;br /&gt;
  a[n] := integer.MaxValue;&lt;br /&gt;
  b[m] := integer.MaxValue;&lt;br /&gt;
  SetLength(Result,m+n);&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ir := 0 to n+m-1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      Result[ir] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      Result[ir] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''№12. Поиск в упорядоченном массиве'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function BinarySearch(a: array of integer; x: integer): integer;&lt;br /&gt;
begin&lt;br /&gt;
  var k: integer;&lt;br /&gt;
  var i := 0;&lt;br /&gt;
  var j := a.Length-1;&lt;br /&gt;
  repeat&lt;br /&gt;
    k := (i+j) div 2;&lt;br /&gt;
    if x&amp;gt;a[k] then&lt;br /&gt;
      i := k+1&lt;br /&gt;
    else&lt;br /&gt;
      j := k - 1;&lt;br /&gt;
  until (a[k]=x) or (i&amp;gt;j);&lt;br /&gt;
  if a[k]=x then&lt;br /&gt;
    Result := k&lt;br /&gt;
  else &lt;br /&gt;
    Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Psihopat</name></author>
	</entry>
</feed>