<?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=Miclus</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=Miclus"/>
	<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/Miclus"/>
	<updated>2026-04-18T13:38:32Z</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=1978</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=1978"/>
		<updated>2010-12-04T20:46:08Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Стандартные задачи на циклы ==&lt;br /&gt;
=== [[Стандартные задачи на циклы|Программы]] ===&lt;br /&gt;
==== [[Стандартные задачи на циклы#Простейшие алгоритмы|Простейшие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№1. Сумма вводимых целых чисел|Сумма вводимых целых чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№2. Произведение целых чисел|Произведение целых чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)|Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№4. Сколько нечетных среди n введенных|Сколько нечетных среди n введенных]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№5. Защита от неверного ввода|Защита от неверного ввода]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей|Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№6a. Решение, использующее while. Погрешность округления и вычислительная погрешность|Решение, использующее while. Погрешность округления и вычислительная погрешность]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Рекуррентные соотношения|Рекуррентные соотношения]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№7. Вывод 10 первых степеней двойки|Вывод 10 первых степеней двойки]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№8. Вывод всех двухзначных чисел, кратных 5|Вывод всех двухзначных чисел, кратных 5]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№9. Вывод n первых чисел Фибоначчи|Вывод n первых чисел Фибоначчи]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№10. Найти НОД(A,B), используя алгоритм Евклида:|Найти НОД(A,B), используя алгоритм Евклида]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№11. Найти сумму цифр целого положительного числа m|Найти сумму цифр целого положительного числа m]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Максимумы и минимумы|Максимумы и минимумы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№12. Найти max из введенных чисел|Найти max из введенных чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№12a. Найти min, удовлетворяющее условию p(x)|Найти min, удовлетворяющее условию p(x)]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Суммирование рядов (конечных и бесконечных)|Суммирование рядов (конечных и бесконечных)]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№13. Вычислить Σ(i=1..n) a^i/i!|Вычислить Σ(i=1..n) a^i/i!]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i!|Вычислить Σ(i=1..∞) (-1)^i * a^i/i!]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Поиск значения|Поиск значения]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№14. Есть ли среди введенных число k?|Есть ли среди введенных число k?]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№14b. Есть ли среди введенных число k? (то же с использованием while)|Есть ли среди введенных число k? (то же с использованием while)]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№15. Является ли число N&amp;gt;0 простым?|Является ли число N&amp;gt;0 простым?]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Другие алгоритмы|Другие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№16. Разложение числа на простые множители|Разложение числа на простые множители]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№17. Вычисление значения многочлена в точке x по схеме Горнера|Вычисление значения многочлена в точке x по схеме Горнера]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления|Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Стандартные задачи на одномерные массивы ==&lt;br /&gt;
=== [[Стандартные задачи на одномерные массивы|Программы]] ===&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Простейшие алгоритмы|Простейшие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№1. Вывод массива|Вывод массива]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№2. Заполнение массива случайными числами|Заполнение массива случайными числами]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№3. Инвертирование массива|Инвертирование массива]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№4. Поиск элемента по заданному значению|Поиск элемента по заданному значению]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№4a. Поиск с барьером|Поиск с барьером]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№5. Минимальный элемент и его индекс|Минимальный элемент и его индекс]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Сдвиги, вставка, удаление|Сдвиги, вставка, удаление]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№6. Сдвиг влево|Сдвиг влево]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№7. Сдвиг вправо|Сдвиг вправо]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№8. Циклический сдвиг вправо|Циклический сдвиг вправо]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№9. Удаление k-того|Удаление k-того]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№10. Вставка на k-тое место|Вставка на k-тое место]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Слияние упорядоченных и бинарный поиск в упорядоченном массиве|Слияние упорядоченных и бинарный поиск в упорядоченном массиве]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№11. Слияние двух упорядоченных в один упорядоченный|Слияние двух упорядоченных в один упорядоченный]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№12. Поиск в упорядоченном массиве|Поиск в упорядоченном массиве]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Сортировка массивов|Сортировка массивов]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№13. Сортировка выбором|Сортировка выбором]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№14. Пузырьковая сортировка|Пузырьковая сортировка]]&lt;br /&gt;
## [[Стандартные задачи на одномерные массивы#Способ №1|Способ №1]]&lt;br /&gt;
## [[Стандартные задачи на одномерные массивы#Способ №2(оптимизация)|Способ №2]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№15. Сортировка вставками|Сортировка вставками]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Использование процедурных типов в задачах на массивы|Использование процедурных типов в задачах на массивы]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№16. Поиск по условию|Поиск по условию]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№17. Количество по условию|Количество по условию]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№18. Условный минимум|Условный минимум]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№19. Удаление по условию|Удаление по условию]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</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=1967</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=1967"/>
		<updated>2010-12-02T14:34:24Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Стандартные задачи на циклы ==&lt;br /&gt;
=== [[Стандартные задачи на циклы|Программы]] ===&lt;br /&gt;
==== [[Стандартные задачи на циклы#Простейшие алгоритмы|Простейшие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№1. Сумма вводимых целых чисел|Сумма вводимых целых чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№2. Произведение целых чисел|Произведение целых чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)|Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№4. Сколько нечетных среди n введенных|Сколько нечетных среди n введенных]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№5. Защита от неверного ввода|Защита от неверного ввода]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей|Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№6a. Решение, использующее while. Погрешность округления и вычислительная погрешность|Решение, использующее while. Погрешность округления и вычислительная погрешность]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Рекуррентные соотношения|Рекуррентные соотношения]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№7. Вывод 10 первых степеней двойки|Вывод 10 первых степеней двойки]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№8. Вывод всех двухзначных чисел, кратных 5|Вывод всех двухзначных чисел, кратных 5]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№9. Вывод n первых чисел Фибоначчи|Вывод n первых чисел Фибоначчи]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№10. Найти НОД(A,B), используя алгоритм Евклида:|Найти НОД(A,B), используя алгоритм Евклида]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№11. Найти сумму цифр целого положительного числа m|Найти сумму цифр целого положительного числа m]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Максимумы и минимумы|Максимумы и минимумы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№12. Найти max из введенных чисел|Найти max из введенных чисел]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№12a. Найти min, удовлетворяющее условию p(x)|Найти min, удовлетворяющее условию p(x)]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Суммирование рядов (конечных и бесконечных)|Суммирование рядов (конечных и бесконечных)]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№13. Вычислить Σ(i=1..n) a^i/i!|Вычислить Σ(i=1..n) a^i/i!]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i!|Вычислить Σ(i=1..∞) (-1)^i * a^i/i!]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Поиск значения|Поиск значения]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№14. Есть ли среди введенных число k?|Есть ли среди введенных число k?]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№14b. Есть ли среди введенных число k? (то же с использованием while)|Есть ли среди введенных число k? (то же с использованием while)]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№15. Является ли число N&amp;gt;0 простым?|Является ли число N&amp;gt;0 простым?]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на циклы#Другие алгоритмы|Другие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на циклы#№16. Разложение числа на простые множители|Разложение числа на простые множители]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№17. Вычисление значения многочлена в точке x по схеме Горнера|Вычисление значения многочлена в точке x по схеме Горнера]]&lt;br /&gt;
# [[Стандартные задачи на циклы#№18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления|Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Стандартные задачи на одномерные массивы ==&lt;br /&gt;
=== [[Стандартные задачи на одномерные массивы|Программы]] ===&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Простейшие алгоритмы|Простейшие алгоритмы]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№1. Вывод массива|Вывод массива]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№2. Заполнение массива случайными числами|Заполнение массива случайными числами]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№3. Инвертирование массива|Инвертирование массива]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№4. Поиск элемента по заданному значению|Поиск элемента по заданному значению]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№4a. Поиск с барьером|Поиск с барьером]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№5. Минимальный элемент и его индекс|Минимальный элемент и его индекс]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Сдвиги, вставка, удаление|Сдвиги, вставка, удаление]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№6. Сдвиг влево|Сдвиг влево]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№7. Сдвиг вправо|Сдвиг вправо]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№8. Циклический сдвиг вправо|Циклический сдвиг вправо]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№9. Удаление k-того|Удаление k-того]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№10. Вставка на k-тое место|Вставка на k-тое место]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Слияние упорядоченных и бинарный поиск в упорядоченном массиве|Слияние упорядоченных и бинарный поиск в упорядоченном массиве]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№11. Слияние двух упорядоченных в один упорядоченный|Слияние двух упорядоченных в один упорядоченный]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№12. Поиск в упорядоченном массиве|Поиск в упорядоченном массиве]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Сортировка массивов|Сортировка массивов]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№13. Сортировка выбором|Сортировка выбором]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№14. Пузырьковая сортировка|Пузырьковая сортировка]]&lt;br /&gt;
## [[Стандартные задачи на одномерные массивы#Способ №1|Способ №1]]&lt;br /&gt;
## [[Стандартные задачи на одномерные массивы#Способ №2|Способ №2]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№15. Сортировка вставками|Сортировка вставками]]&lt;br /&gt;
&lt;br /&gt;
==== [[Стандартные задачи на одномерные массивы#Использование процедурных типов в задачах на массивы|Использование процедурных типов в задачах на массивы]] ====&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№16. Поиск по условию|Поиск по условию]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№17. Количество по условию|Количество по условию]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№18. Условный минимум|Условный минимум]]&lt;br /&gt;
# [[Стандартные задачи на одномерные массивы#№19. Удаление по условию|Удаление по условию]]&lt;br /&gt;
(Прошу, делайте господа)&lt;/div&gt;</summary>
		<author><name>Miclus</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1966</id>
		<title>Стандартные задачи на одномерные массивы</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1966"/>
		<updated>2010-12-02T14:33:30Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4a. Поиск с барьером ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
==Сдвиги, вставка, удаление==&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&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))&lt;br /&gt;
  Assert((0&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;
=== №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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&lt;br /&gt;
  end;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
====Способ №1====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
====Способ №2====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14_2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
type IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
// Примеры предикатов&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) 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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/17_CountWithCond.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&lt;br /&gt;
    end;&lt;br /&gt;
end; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/18_CondMin.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/19_DeleteWithCond.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1965</id>
		<title>Стандартные задачи на одномерные массивы</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1965"/>
		<updated>2010-12-02T13:02:18Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4a. Поиск с барьером ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
==Сдвиги, вставка, удаление==&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&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))&lt;br /&gt;
  Assert((0&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;
=== №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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&lt;br /&gt;
  end;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
====Способ №1====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
====Способ №2====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14_2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
type IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
// Примеры предикатов&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) 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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/17_CountWithCond.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&lt;br /&gt;
    end;&lt;br /&gt;
end; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/18_CondMin.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/19_DeleteWithCond.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1964</id>
		<title>Стандартные задачи на одномерные массивы</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1964"/>
		<updated>2010-12-02T12:48:57Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4a. Поиск с барьером ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
==Сдвиги, вставка, удаление==&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&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))&lt;br /&gt;
  Assert((0&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;
=== №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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&lt;br /&gt;
  end;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
====Способ №1====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
====Способ №2====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14_2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
type IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
// Примеры предикатов&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) 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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/17_CountWithCond.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&lt;br /&gt;
    end;&lt;br /&gt;
end; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/ArraysWithPredicate/18_CondMin.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1963</id>
		<title>Стандартные задачи на одномерные массивы</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B&amp;diff=1963"/>
		<updated>2010-12-02T12:39:06Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure CreateRandomArray(var a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №4a. Поиск с барьером ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
==Сдвиги, вставка, удаление==&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&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))&lt;br /&gt;
  Assert((0&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;
=== №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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&lt;br /&gt;
  end;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
====Способ №1====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
====Способ №2====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_14_2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
type IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
// Примеры предикатов&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) 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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=vikvez/alg_for_students/alg_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/Использование предикатов в задачах на массивы/17_CountWithCond.pas]&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&lt;br /&gt;
    end;&lt;br /&gt;
end; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=Miklus/Использование предикатов в задачах на массивы/18_CondMin.pas]&lt;br /&gt;
&lt;br /&gt;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</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=1863</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=1863"/>
		<updated>2010-11-29T17:20:05Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на циклы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Сумма вводимых целых чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var s := 0;&lt;br /&gt;
  writeln('Введите число слагаемых');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    writeln('Введите слагаемое');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма слагаемых равна ',s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_01_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №2. Произведение целых чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var p := 1;&lt;br /&gt;
  writeln('Введите число множителей');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      writeln('Введите множитель');&lt;br /&gt;
      readln(x);&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
  writeln('Произведение равно ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_02_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var p := 1;&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  writeln('Введите n');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  while x&amp;gt;=2 do&lt;br /&gt;
  begin&lt;br /&gt;
    p *= x;&lt;br /&gt;
    x -= 2;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Двойной факториал равен ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_03_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №4. Сколько нечетных среди n введенных ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  writeln('Введите n');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Введите целое число');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x mod 2 &amp;lt;&amp;gt; 0 then&lt;br /&gt;
      c += 1;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Количество нечетных равно ', c);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_04_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №5. Защита от неверного ввода ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 var x : real;&lt;br /&gt;
 repeat&lt;br /&gt;
  write('Введите x&amp;gt;0 ');&lt;br /&gt;
  read(x);&lt;br /&gt;
  if x&amp;lt;=0 then&lt;br /&gt;
    writeln('Неверный ввод');&lt;br /&gt;
  until x&amp;gt;0;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_05_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6. Табулирование функции f(x) на [a,b] в точках, разбивающих [a,b] на N частей ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x : real): real;&lt;br /&gt;
begin&lt;br /&gt;
//Введите любую функцию&lt;br /&gt;
  result := sin(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  var a , b : real;&lt;br /&gt;
  writeln('Введите N');&lt;br /&gt;
  readln(N);&lt;br /&gt;
  writeln('Введите a и b');&lt;br /&gt;
  read(a,b);&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  for var i:=0 to N do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Значение икса равно ',x);&lt;br /&gt;
    writeln('Значение функции равно ', f(x):10:4);&lt;br /&gt;
    x += h;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_06_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x : real): real;&lt;br /&gt;
begin&lt;br /&gt;
//Введите любую функцию&lt;br /&gt;
  result := sin(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  var a , b : real;&lt;br /&gt;
  writeln('Введите N');&lt;br /&gt;
  readln(N);&lt;br /&gt;
  writeln('Введите a и b');&lt;br /&gt;
  read(a,b);&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  while x &amp;lt;= b+h/2 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Значение икса равно ',x:5:2,' Значение функции ', f(x):10:4);&lt;br /&gt;
    x += h;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_06a_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
== Рекуррентные соотношения ==&lt;br /&gt;
&lt;br /&gt;
=== №7. Вывод 10 первых степеней двойки ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x := 2;&lt;br /&gt;
  for var i := 1 to 10 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln(i:2,x:5);&lt;br /&gt;
    x *= 2;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_07.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №8. Вывод всех двухзначных чисел, кратных 5 ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x := 10;&lt;br /&gt;
  while x &amp;lt; 100 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln(x:3);&lt;br /&gt;
    x += 5;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_08.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  var a := 1;&lt;br /&gt;
  var b := 1;&lt;br /&gt;
  write(1, ' ', 1, ' ');&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var c := a + b;&lt;br /&gt;
    write(c, ' ');&lt;br /&gt;
    a := b;&lt;br /&gt;
    b := c;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_09.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №10. Найти НОД(A,B), используя алгоритм Евклида: ===&lt;br /&gt;
&lt;br /&gt;
НОД(A,B) = НОД(B,A mod B);    НОД(A,0) = A&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&lt;br /&gt;
  var A,B,C : integer;&lt;br /&gt;
  readln(A,B);&lt;br /&gt;
  repeat&lt;br /&gt;
    C := A mod B;&lt;br /&gt;
    A := B;&lt;br /&gt;
    B := C;&lt;br /&gt;
  until C = 0;&lt;br /&gt;
  write('НОД(A,B) = ', A);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_10.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №11. Найти сумму цифр целого положительного числа m ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое положительное число m: ');&lt;br /&gt;
  var m : integer;&lt;br /&gt;
  readln(m);&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
  var s := 0;&lt;br /&gt;
  while m &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m mod 10;&lt;br /&gt;
    m := m div 10;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_11.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Максимумы и минимумы ==&lt;br /&gt;
&lt;br /&gt;
=== №12. Найти max из введенных чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x : real;&lt;br /&gt;
  readln(x);&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_12.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №12a. Найти min, удовлетворяющее условию p(x) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// Условие взятое как пример (Если число положительное, то условие p(x) возвращает true, иначе false)&lt;br /&gt;
function p(x : real) : boolean;&lt;br /&gt;
begin&lt;br /&gt;
  if x &amp;gt; 0 then&lt;br /&gt;
    Result := true&lt;br /&gt;
  else&lt;br /&gt;
    Result := false;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x : real;&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел удовлетворяющих условию (являющихся положительными)')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Минимальное из введенных чисел и удовлетворяющее условию (являющееся положительным): ', min);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_12a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Суммирование рядов (конечных и бесконечных) ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите число a и n (n&amp;gt;0): ');&lt;br /&gt;
  var a : real;&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(a,n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var x := a;&lt;br /&gt;
  var s := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x *= a / i;&lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма ',chrunicode(931),'(i=1..n) a^i/i! равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите число a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  var a : real;&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
  var eps := 0.0001;&lt;br /&gt;
  var i := 1;&lt;br /&gt;
  var s := 0.0;&lt;br /&gt;
  var y := -a;&lt;br /&gt;
  repeat&lt;br /&gt;
    s += y / i;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    y *= -a;&lt;br /&gt;
  until abs(y/i) &amp;lt; eps;&lt;br /&gt;
  writeln('Сумма ',chrunicode(931),'(i=1..',chrunicode(8734),') (-1)^i * a^i/i! равна ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_13a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поиск значения ==&lt;br /&gt;
&lt;br /&gt;
=== №14. Есть ли среди введенных число k? ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №14a. Есть ли среди введенных число k? (то же с использованием break) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x = k then&lt;br /&gt;
    begin&lt;br /&gt;
      Exists := true;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №14b. Есть ли среди введенных число k? (то же с использованием while) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  var i := 1;&lt;br /&gt;
  while (i &amp;lt;= n) and not Exists do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14b.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;0 простым? ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число N (N&amp;gt;0): ');&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  readln(N);&lt;br /&gt;
  assert(N&amp;gt;0);&lt;br /&gt;
  var IsSimple := true;&lt;br /&gt;
  // for var i := 2 to N-1 do&lt;br /&gt;
  for var i := 2 to round(sqrt(N)) do&lt;br /&gt;
    if N mod i = 0 then&lt;br /&gt;
    begin&lt;br /&gt;
      IsSimple := false;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
  if IsSimple then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', N, ' не является простым');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №16. Разложение числа на простые множители ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  var x : integer;&lt;br /&gt;
  readln(x);&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
  var i := 2;&lt;br /&gt;
  write(x, ' = 1');&lt;br /&gt;
  repeat&lt;br /&gt;
    if x mod i = 0 then&lt;br /&gt;
    begin&lt;br /&gt;
      write(' * ', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
      i += 1;&lt;br /&gt;
  until x = 1;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите значение x, значение старшей степени x - n (n&amp;gt;=0) и коэффициент при старшей степени x - a_{1}: ');&lt;br /&gt;
  var x,a : real;&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(x,n,a);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  var s := a;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите a_{', i+1,'}: ');&lt;br /&gt;
    readln(a);&lt;br /&gt;
    s := s*x + a;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Значение многочлена p(x) = a_{1}*x^n + a_{2}*x^(n-1) + ... + a_{n}*x + a_{n+1} в точке x = ', x, ' равно ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_17.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №18. Дана непрерывная на [a,b] функция f(x), имеющая на [a,b] ровно один корень (f(a)*f(b)&amp;lt;=0). Найти его методом половинного деления ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// В качестве примера взяты eps = 0.0001 и функция f(x) = sin(x)&lt;br /&gt;
const eps = 0.0001;&lt;br /&gt;
const f = sin;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  var a,b : real;&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
  var fa := f(a);&lt;br /&gt;
  var fb := f(b);&lt;br /&gt;
  assert(fb*fa&amp;lt;0);&lt;br /&gt;
  while (b-a) &amp;gt; eps do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := (b+a)/2;&lt;br /&gt;
    var fx := f(x);&lt;br /&gt;
    if fa*fx &amp;lt;= 0 then&lt;br /&gt;
      b := x&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      a := x;&lt;br /&gt;
      fa := fx;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_18.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
// №4a. Поиск с барьером&lt;br /&gt;
function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/Delete.pas Ссылка на алгоритм в среде WDE]&lt;br /&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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов. Использование предикатов в задачах на массивы ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&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;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&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;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) do &lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i = n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else &lt;br /&gt;
    Result := i;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&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;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
by Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</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=1862</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=1862"/>
		<updated>2010-11-29T17:06:52Z</updated>

		<summary type="html">&lt;p&gt;Miclus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Стандартные задачи на циклы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Сумма вводимых целых чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var s := 0;&lt;br /&gt;
  writeln('Введите число слагаемых');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    writeln('Введите слагаемое');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма слагаемых равна ',s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_01_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №2. Произведение целых чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var p := 1;&lt;br /&gt;
  writeln('Введите число множителей');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      writeln('Введите множитель');&lt;br /&gt;
      readln(x);&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
  writeln('Произведение равно ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_02_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var p := 1;&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  writeln('Введите n');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  while x&amp;gt;=2 do&lt;br /&gt;
  begin&lt;br /&gt;
    p *= x;&lt;br /&gt;
    x -= 2;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Двойной факториал равен ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_03_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №4. Сколько нечетных среди n введенных ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x , n : integer;&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  writeln('Введите n');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Введите целое число');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x mod 2 &amp;lt;&amp;gt; 0 then&lt;br /&gt;
      c += 1;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Количество нечетных равно ', c);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_04_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №5. Защита от неверного ввода ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 var x : real;&lt;br /&gt;
 repeat&lt;br /&gt;
  write('Введите x&amp;gt;0 ');&lt;br /&gt;
  read(x);&lt;br /&gt;
  if x&amp;lt;=0 then&lt;br /&gt;
    writeln('Неверный ввод');&lt;br /&gt;
  until x&amp;gt;0;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_05_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6. Табулирование функции f(x) на [a,b] в точках, разбивающих [a,b] на N частей ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x : real): real;&lt;br /&gt;
begin&lt;br /&gt;
//Введите любую функцию&lt;br /&gt;
  result := sin(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  var a , b : real;&lt;br /&gt;
  writeln('Введите N');&lt;br /&gt;
  readln(N);&lt;br /&gt;
  writeln('Введите a и b');&lt;br /&gt;
  read(a,b);&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  for var i:=0 to N do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Значение икса равно ',x);&lt;br /&gt;
    writeln('Значение функции равно ', f(x):10:4);&lt;br /&gt;
    x += h;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_06_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x : real): real;&lt;br /&gt;
begin&lt;br /&gt;
//Введите любую функцию&lt;br /&gt;
  result := sin(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  var a , b : real;&lt;br /&gt;
  writeln('Введите N');&lt;br /&gt;
  readln(N);&lt;br /&gt;
  writeln('Введите a и b');&lt;br /&gt;
  read(a,b);&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  while x &amp;lt;= b+h/2 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln('Значение икса равно ',x:5:2,' Значение функции ', f(x):10:4);&lt;br /&gt;
    x += h;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_06a_Kazik.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
== Рекуррентные соотношения ==&lt;br /&gt;
&lt;br /&gt;
=== №7. Вывод 10 первых степеней двойки ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x := 2;&lt;br /&gt;
  for var i := 1 to 10 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln(i:2,x:5);&lt;br /&gt;
    x *= 2;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_07.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №8. Вывод всех двухзначных чисел, кратных 5 ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var x := 10;&lt;br /&gt;
  while x &amp;lt; 100 do&lt;br /&gt;
  begin&lt;br /&gt;
    writeln(x:3);&lt;br /&gt;
    x += 5;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_08.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  var a := 1;&lt;br /&gt;
  var b := 1;&lt;br /&gt;
  write(1, ' ', 1, ' ');&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var c := a + b;&lt;br /&gt;
    write(c, ' ');&lt;br /&gt;
    a := b;&lt;br /&gt;
    b := c;&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_09.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №10. Найти НОД(A,B), используя алгоритм Евклида: ===&lt;br /&gt;
&lt;br /&gt;
НОД(A,B) = НОД(B,A mod B);    НОД(A,0) = A&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&lt;br /&gt;
  var A,B,C : integer;&lt;br /&gt;
  readln(A,B);&lt;br /&gt;
  repeat&lt;br /&gt;
    C := A mod B;&lt;br /&gt;
    A := B;&lt;br /&gt;
    B := C;&lt;br /&gt;
  until C = 0;&lt;br /&gt;
  write('НОД(A,B) = ', A);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_10.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №11. Найти сумму цифр целого положительного числа m ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое положительное число m: ');&lt;br /&gt;
  var m : integer;&lt;br /&gt;
  readln(m);&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
  var s := 0;&lt;br /&gt;
  while m &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m mod 10;&lt;br /&gt;
    m := m div 10;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_11.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Максимумы и минимумы ==&lt;br /&gt;
&lt;br /&gt;
=== №12. Найти max из введенных чисел ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x : real;&lt;br /&gt;
  readln(x);&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_12.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №12a. Найти min, удовлетворяющее условию p(x) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// Условие взятое как пример (Если число положительное, то условие p(x) возвращает true, иначе false)&lt;br /&gt;
function p(x : real) : boolean;&lt;br /&gt;
begin&lt;br /&gt;
  if x &amp;gt; 0 then&lt;br /&gt;
    Result := true&lt;br /&gt;
  else&lt;br /&gt;
    Result := false;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x : real;&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел удовлетворяющих условию (являющихся положительными)')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Минимальное из введенных чисел и удовлетворяющее условию (являющееся положительным): ', min);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_12a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Суммирование рядов (конечных и бесконечных) ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите число a и n (n&amp;gt;0): ');&lt;br /&gt;
  var a : real;&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(a,n);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var x := a;&lt;br /&gt;
  var s := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x *= a / i;&lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Сумма ',chrunicode(931),'(i=1..n) a^i/i! равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_13.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите число a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  var a : real;&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
  var eps := 0.0001;&lt;br /&gt;
  var i := 1;&lt;br /&gt;
  var s := 0.0;&lt;br /&gt;
  var y := -a;&lt;br /&gt;
  repeat&lt;br /&gt;
    s += y / i;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    y *= -a;&lt;br /&gt;
  until abs(y/i) &amp;lt; eps;&lt;br /&gt;
  writeln('Сумма ',chrunicode(931),'(i=1..',chrunicode(8734),') (-1)^i * a^i/i! равна ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_13a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поиск значения ==&lt;br /&gt;
&lt;br /&gt;
=== №14. Есть ли среди введенных число k? ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №14a. Есть ли среди введенных число k? (то же с использованием break) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    if x = k then&lt;br /&gt;
    begin&lt;br /&gt;
      Exists := true;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14a.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №14b. Есть ли среди введенных число k? (то же с использованием while) ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  var n,k : integer;&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
  var Exists := false;&lt;br /&gt;
  var i := 1;&lt;br /&gt;
  while (i &amp;lt;= n) and not Exists do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' целое число: ');&lt;br /&gt;
    var x : integer;&lt;br /&gt;
    readln(x);&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_14b.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;0 простым? ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число N (N&amp;gt;0): ');&lt;br /&gt;
  var N : integer;&lt;br /&gt;
  readln(N);&lt;br /&gt;
  assert(N&amp;gt;0);&lt;br /&gt;
  var IsSimple := true;&lt;br /&gt;
  // for var i := 2 to N-1 do&lt;br /&gt;
  for var i := 2 to round(sqrt(N)) do&lt;br /&gt;
    if N mod i = 0 then&lt;br /&gt;
    begin&lt;br /&gt;
      IsSimple := false;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
  if IsSimple then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else&lt;br /&gt;
    writeln('Число ', N, ' не является простым');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_15.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №16. Разложение числа на простые множители ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  var x : integer;&lt;br /&gt;
  readln(x);&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
  var i := 2;&lt;br /&gt;
  write(x, ' = 1');&lt;br /&gt;
  repeat&lt;br /&gt;
    if x mod i = 0 then&lt;br /&gt;
    begin&lt;br /&gt;
      write(' * ', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
      i += 1;&lt;br /&gt;
  until x = 1;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_16.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите значение x, значение старшей степени x - n (n&amp;gt;=0) и коэффициент при старшей степени x - a_{1}: ');&lt;br /&gt;
  var x,a : real;&lt;br /&gt;
  var n : integer;&lt;br /&gt;
  readln(x,n,a);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  var s := a;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите a_{', i+1,'}: ');&lt;br /&gt;
    readln(a);&lt;br /&gt;
    s := s*x + a;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Значение многочлена p(x) = a_{1}*x^n + a_{2}*x^(n-1) + ... + a_{n}*x + a_{n+1} в точке x = ', x, ' равно ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_17.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №18. Дана непрерывная на [a,b] функция f(x), имеющая на [a,b] ровно один корень (f(a)*f(b)&amp;lt;=0). Найти его методом половинного деления ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
// В качестве примера взяты eps = 0.0001 и функция f(x) = sin(x)&lt;br /&gt;
const eps = 0.0001;&lt;br /&gt;
const f = sin;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  var a,b : real;&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
  var fa := f(a);&lt;br /&gt;
  var fb := f(b);&lt;br /&gt;
  assert(fb*fa&amp;lt;0);&lt;br /&gt;
  while (b-a) &amp;gt; eps do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := (b+a)/2;&lt;br /&gt;
    var fx := f(x);&lt;br /&gt;
    if fa*fx &amp;lt;= 0 then&lt;br /&gt;
      b := x&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      a := x;&lt;br /&gt;
      fa := fx;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=UnREAL/Algoritm_18.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Стандартные задачи на одномерные массивы =&lt;br /&gt;
&lt;br /&gt;
== Простейшие алгоритмы ==&lt;br /&gt;
&lt;br /&gt;
=== №1. Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/1.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №2. Заполнение массива случайными числами ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/2.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №3. Инвертирование массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/3.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №4. Поиск элемента по заданному значению ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
// №4a. Поиск с барьером&lt;br /&gt;
function FindWithBarrier&amp;lt;T&amp;gt;(a: array of T; n: integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/4.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №5. Минимальный элемент и его индекс ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure MinElem(a: array of integer; 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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/5.pas Ссылка на алгоритм в среде WDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №6. Сдвиг влево ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&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;
[http://pascalabc.net/WDE/?shared=DaZzz/Arrays/6.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/ShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/CycleShiftRight.pas Ссылка на алгоритм в среде WDE]&lt;br /&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;
[http://pascalabc.net/WDE/?shared=PacVlad/Delete.pas Ссылка на алгоритм в среде WDE]&lt;br /&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; 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 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;
=== №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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сортировка массивов. Использование предикатов в задачах на массивы ==&lt;br /&gt;
&lt;br /&gt;
=== №13. Сортировка выбором ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&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;
=== №14. Пузырьковая сортировка ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== №15. Сортировка вставками ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&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;
=== №16. Поиск по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) do &lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i = n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else &lt;br /&gt;
    Result := i;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №17. Количество по условию ===&lt;br /&gt;
function CountPred(a: array of integer; pred: IPredicate): integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
  for var i := 0 to a.Length - 1 do&lt;br /&gt;
    if pred(a[i]) then&lt;br /&gt;
      Result += 1;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
=== №18. Условный минимум ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&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;
=== №19. Удаление по условию ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
by Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>Miclus</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=1850</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=1850"/>
		<updated>2010-11-29T16:13:05Z</updated>

		<summary type="html">&lt;p&gt;Miclus: добавлены 16, 18 и 19 алгоритмы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Вывод массива ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;procedure Println&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;
  writeln;&lt;br /&gt;
end;&lt;br /&gt;
&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; 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; 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;
=== Сдвиг вправо ===&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; 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 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 real; na,nb: integer): array of real;&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; na) and (na &amp;lt; a.Length));&lt;br /&gt;
  Assert((0 &amp;lt; nb) and (nb &amp;lt; b.Length));&lt;br /&gt;
  a[na] := real.MaxValue;&lt;br /&gt;
  b[nb] := real.MaxValue;&lt;br /&gt;
  var c := new integer[na + nb];&lt;br /&gt;
  var ia := 0;&lt;br /&gt;
  var ib := 0;&lt;br /&gt;
  for var ic := 0 to na + nb - 1 do&lt;br /&gt;
    if a[ia]&amp;lt;b[ib] then&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := a[ia];&lt;br /&gt;
      ia += 1;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      c[ic] := b[ib];&lt;br /&gt;
      ib += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  Result := c;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;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 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 Result := -1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;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 SortByChoice(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 0 to a.Length - 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    var min := a[i];&lt;br /&gt;
    var imin := i;&lt;br /&gt;
    for var j := i + 1 to a.Length - 1 do&lt;br /&gt;
      if a[j] &amp;lt; min then&lt;br /&gt;
      begin&lt;br /&gt;
        min := a[i];&lt;br /&gt;
        imin := j;&lt;br /&gt;
      end;&lt;br /&gt;
    a[imin] := a[i];&lt;br /&gt;
    a[i] := min;&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;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure BubbleSort(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var n := a.Length;&lt;br /&gt;
  for var i := 0 to n - 2 do&lt;br /&gt;
    for var j := n - 1 downto i + 1 do&lt;br /&gt;
      if a[j] &amp;lt; a[j - 1] then&lt;br /&gt;
        Swap(a[j], a[j - 1]);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure BubbleSort2(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  var i := a.Length - 1;&lt;br /&gt;
  var q: boolean;&lt;br /&gt;
  repeat&lt;br /&gt;
    q := true;&lt;br /&gt;
    for var j := 0 to i - 1 do&lt;br /&gt;
      if a[j + 1] &amp;lt; a[j] then&lt;br /&gt;
      begin&lt;br /&gt;
        Swap(a[j + 1], a[j]);&lt;br /&gt;
        q := false;&lt;br /&gt;
      end;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
  until q;  &lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;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 SortByInsert(a: array of integer);&lt;br /&gt;
begin&lt;br /&gt;
  for var i := 1 to a.Length - 1 do &lt;br /&gt;
  begin&lt;br /&gt;
    var x := a[i];&lt;br /&gt;
    var j := i - 1;&lt;br /&gt;
    while (j &amp;gt;= 0) and (x &amp;lt; a[j]) do&lt;br /&gt;
    begin&lt;br /&gt;
      a[j + 1] := a[j];&lt;br /&gt;
      j -= 1;&lt;br /&gt;
    end;&lt;br /&gt;
    a[j + 1] := x;&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;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  IPredicate = function(x: integer): boolean;&lt;br /&gt;
&lt;br /&gt;
function Even(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  result := not odd(x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function IsPositive(x: integer): boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Result := x &amp;gt; 0;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function FindPred(a: array of integer; pred: IPredicate): 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 not pred(a[i]) do &lt;br /&gt;
    i += 1;&lt;br /&gt;
  if i = n then&lt;br /&gt;
    Result := -1&lt;br /&gt;
  else &lt;br /&gt;
    Result := i;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;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 MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer);&lt;br /&gt;
begin&lt;br /&gt;
  min := Integer.MaxValue;&lt;br /&gt;
  imin := -1;&lt;br /&gt;
  for var i := 1 to a.length - 1 do &lt;br /&gt;
    if pred(a[i]) and (a[i] &amp;lt; min) then&lt;br /&gt;
    begin&lt;br /&gt;
      min := a[i];&lt;br /&gt;
      imin := i;&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;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate);&lt;br /&gt;
begin&lt;br /&gt;
  Assert((0 &amp;lt; n) and (n &amp;lt;= a.Length));&lt;br /&gt;
  var j := 0;&lt;br /&gt;
  for var i := 0 to n - 1 do&lt;br /&gt;
    if not pred(a[i]) then&lt;br /&gt;
    begin&lt;br /&gt;
      a[j] := a[i];&lt;br /&gt;
      j += 1;&lt;br /&gt;
    end;&lt;br /&gt;
  n := j;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Miclus</name></author>
	</entry>
</feed>