<?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=VFixer</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=VFixer"/>
	<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/VFixer"/>
	<updated>2026-04-18T08:34:04Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2847</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2847"/>
		<updated>2019-12-12T21:19:04Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &lt;br /&gt;
  var x := ReadReal('Введите 1 число: ');&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  Println($'Максимальное из введенных чисел: {max}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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:=x &amp;gt; 0;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &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 := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    println('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else println($'Минимальное из введенных чисел, удовлетворяющее условию: {min}');&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. Вычислить Σ(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;
  var a:=ReadReal('Введите a: ');&lt;br /&gt;
  var n:=ReadInteger('Введите n (n&amp;gt;0): ');&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;
  Println($'Сумма = {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var a:=ReadReal('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
 &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;
 &lt;br /&gt;
  Println($'Сумма = {s}');   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2846</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2846"/>
		<updated>2019-12-12T21:11:00Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №13. Вычислить Σ(i=1..n) a^i/i! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &lt;br /&gt;
  var x := ReadReal('Введите 1 число: ');&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  Println($'Максимальное из введенных чисел: {max}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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:=x &amp;gt; 0;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &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 := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    println('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else println($'Минимальное из введенных чисел, удовлетворяющее условию: {min}');&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. Вычислить Σ(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;
  var a:=ReadReal('Введите a: ');&lt;br /&gt;
  var n:=ReadInteger('Введите n (n&amp;gt;0): ');&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;
  Println($'Сумма = {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var a:=ReadReal('Введите a: ');&lt;br /&gt;
  var n:=ReadInteger('Введите n (n&amp;gt;0): ');&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;
  Println($'Сумма = {s}');&lt;br /&gt;
end. //Привет&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2845</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2845"/>
		<updated>2019-12-12T21:05:48Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &lt;br /&gt;
  var x := ReadReal('Введите 1 число: ');&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  Println($'Максимальное из введенных чисел: {max}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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:=x &amp;gt; 0;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &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 := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    println('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else println($'Минимальное из введенных чисел, удовлетворяющее условию: {min}');&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var a:=ReadReal('Введите a: ');&lt;br /&gt;
  var n:=ReadInteger('Введите n (n&amp;gt;0): ');&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;
  Println($'Сумма = {s}');&lt;br /&gt;
end. //Привет&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2844</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2844"/>
		<updated>2019-12-12T20:54:24Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №12a. Найти min, удовлетворяющее условию p(x) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &lt;br /&gt;
  var x := ReadReal('Введите 1 число: ');&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  Println($'Максимальное из введенных чисел: {max}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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:=x &amp;gt; 0;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &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 := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    println('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else println($'Минимальное из введенных чисел, удовлетворяющее условию: {min}');&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2843</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2843"/>
		<updated>2019-12-12T20:48:42Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №12. Найти max из введенных чисел */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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;
  var n := ReadInteger('Введите целое число n (n&amp;gt;0): ');&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
 &lt;br /&gt;
  var x := ReadReal('Введите 1 число: ');&lt;br /&gt;
  var max := x;&lt;br /&gt;
  for var i := 2 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    x := ReadReal($'Введите {i} число: ');&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  Println($'Максимальное из введенных чисел: {max}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2842</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2842"/>
		<updated>2019-12-12T20:40:39Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №11. Найти сумму цифр целого положительного числа m */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var m := ReadInteger('Введите целое число m: ');&lt;br /&gt;
 &lt;br /&gt;
  var (s,m1) := (0,abs(m));&lt;br /&gt;
  while m1 &amp;gt; 0 do&lt;br /&gt;
  begin&lt;br /&gt;
    s += m1 mod 10;&lt;br /&gt;
    m1 := m1 div 10;&lt;br /&gt;
  end;&lt;br /&gt;
 &lt;br /&gt;
  println($'Сумма цифр числа {m} равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для работы с отрицательными числами в алгоритме используется стандартная функция abs(x) возвращающая модуль от x.&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2841</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2841"/>
		<updated>2019-12-12T20:29:07Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №9. Вывод n первых чисел Фибоначчи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются кортежи. В момент переприсваивания в цикле создаются буферные переменные, что позволяет нам избежать их объявления вручную.&lt;br /&gt;
&lt;br /&gt;
=== №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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2840</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2840"/>
		<updated>2019-12-12T20:21:49Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №10. Найти НОД(A,B), используя алгоритм Евклида: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var (a,b):=ReadInteger2('Введите целые числа A и B: ');&lt;br /&gt;
  while b&amp;lt;&amp;gt;0 do&lt;br /&gt;
    (A,B):=(B,A mod B);&lt;br /&gt;
  println($'НОД(A,B) = {A}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2839</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2839"/>
		<updated>2019-12-12T20:09:04Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №9. Вывод n первых чисел Фибоначчи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №9. Вывод n первых чисел Фибоначчи ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  var n := ReadInteger('Введите целое число n (n &amp;gt; 1): ');&lt;br /&gt;
  assert(n&amp;gt;1);&lt;br /&gt;
  var (a,b) := (1,1);&lt;br /&gt;
  print(a,b);&lt;br /&gt;
  for var i := 3 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    (a,b):=(b,a+b);&lt;br /&gt;
    Print(b);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2838</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2838"/>
		<updated>2019-12-12T20:01:04Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadReal('Введите множитель: ');&lt;br /&gt;
    p *= x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  Println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      Println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real) := sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N := ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b) := ReadReal2('Введите a и b: ');&lt;br /&gt;
&lt;br /&gt;
  var h := (b-a)/N;&lt;br /&gt;
  var x := a;&lt;br /&gt;
  loop N+1 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;
=== №6a. Решение, использующее while. Погрешность округления и вычислительная погрешность ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function f(x: real): real:= sin(x)*x;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  var N:=ReadInteger('Введите N: ');&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  var (a,b):=ReadReal2('Введите a и b: ');&lt;br /&gt;
 &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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2830</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2830"/>
		<updated>2019-11-23T22:16:52Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №5. Защита от неверного ввода */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      var x := ReadReal('Введите множитель: ');&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
    x := ReadReal('Введите x&amp;gt;0: ');&lt;br /&gt;
    if x&amp;lt;=0 then&lt;br /&gt;
      println('Неверный ввод');&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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: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;
=== №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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2829</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2829"/>
		<updated>2019-11-23T22:13:06Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №4. Сколько нечетных среди n введенных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      var x := ReadReal('Введите множитель: ');&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 n := ReadInteger('Введите n: ');&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    var x := ReadInteger('Введите целое число: ');&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;
&lt;br /&gt;
  println($'Количество нечетных равно {c}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var x: real;&lt;br /&gt;
begin&lt;br /&gt;
  repeat&lt;br /&gt;
    write('Введите x&amp;gt;0: ');&lt;br /&gt;
    x := ReadReal;&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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: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;
=== №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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2828</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2828"/>
		<updated>2019-11-23T22:09:00Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      var x := ReadReal('Введите множитель: ');&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 x := ReadInteger('Введите x: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  println($'Двойной факториал равен {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  write('Введите n: ');&lt;br /&gt;
  var n := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write ('Введите целое число: ');&lt;br /&gt;
    var x := ReadInteger;&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;
&lt;br /&gt;
  writeln('Количество нечетных равно ', c);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var x: real;&lt;br /&gt;
begin&lt;br /&gt;
  repeat&lt;br /&gt;
    write('Введите x&amp;gt;0: ');&lt;br /&gt;
    x := ReadReal;&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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: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;
=== №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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2827</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2827"/>
		<updated>2019-11-23T22:05:22Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №2. Произведение целых чисел */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых:'); &lt;br /&gt;
&lt;br /&gt;
  var s := 0.0; &lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}:'); &lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В алгоритме используются ''интерполированные'' строки вида $'Сумма равна {s}'.&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 n := ReadInteger('Введите число множителей: ');&lt;br /&gt;
&lt;br /&gt;
  var p := 1.0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      var x := ReadReal('Введите множитель: ');&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  println($'Произведение равно {p}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  write('Введите x: ');&lt;br /&gt;
  var x := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  writeln('Двойной факториал равен ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  write('Введите n: ');&lt;br /&gt;
  var n := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write ('Введите целое число: ');&lt;br /&gt;
    var x := ReadInteger;&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;
&lt;br /&gt;
  writeln('Количество нечетных равно ', c);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var x: real;&lt;br /&gt;
begin&lt;br /&gt;
  repeat&lt;br /&gt;
    write('Введите x&amp;gt;0: ');&lt;br /&gt;
    x := ReadReal;&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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: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;
=== №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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  var x := ReadInteger('Введите целое число x (x&amp;gt;1): ');&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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;
      Print('*', i);&lt;br /&gt;
      x := x div i;&lt;br /&gt;
    end&lt;br /&gt;
    else 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2821</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_%D1%86%D0%B8%D0%BA%D0%BB%D1%8B&amp;diff=2821"/>
		<updated>2019-11-22T21:01:00Z</updated>

		<summary type="html">&lt;p&gt;VFixer: /* №1. Сумма вводимых целых чисел */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&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 n := ReadInteger('Введите число слагаемых: ');//Таким образом мы выведем описание переменной и считаем её&lt;br /&gt;
&lt;br /&gt;
  var s := Real.Epsilon; //Тип переменной выводится автоматически (Real), можно инициализировать значением 0.0 (Real)&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin &lt;br /&gt;
    var x := ReadReal($'Введите слагаемое №{i}: ');//Здесь используется интерполированная строка&lt;br /&gt;
    s += x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Println($'Сумма слагаемых равна {s}');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var p: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите число множителей: ');&lt;br /&gt;
  var n := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  p := 1;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      write('Введите множитель: ');&lt;br /&gt;
      x := ReadReal;&lt;br /&gt;
      p *= x;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Произведение равно ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  write('Введите x: ');&lt;br /&gt;
  var x := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  var p := 1;&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;
&lt;br /&gt;
  writeln('Двойной факториал равен ', p);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  write('Введите n: ');&lt;br /&gt;
  var n := ReadInteger;&lt;br /&gt;
&lt;br /&gt;
  var c := 0;&lt;br /&gt;
  for var i:=1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write ('Введите целое число: ');&lt;br /&gt;
    var x := ReadInteger;&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;
&lt;br /&gt;
  writeln('Количество нечетных равно ', c);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var x: real;&lt;br /&gt;
begin&lt;br /&gt;
  repeat&lt;br /&gt;
    write('Введите x&amp;gt;0: ');&lt;br /&gt;
    x := ReadReal;&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;
=== №6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей ===&lt;br /&gt;
Дан отрезок [a,b]&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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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: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;
=== №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;
  result := sin(x)*x;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  N: integer;&lt;br /&gt;
  a, b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите N: ');&lt;br /&gt;
  N := ReadInteger;&lt;br /&gt;
  Assert(N&amp;gt;0);&lt;br /&gt;
  write('Введите a и b: ');&lt;br /&gt;
  a := ReadReal;&lt;br /&gt;
  b := ReadReal;&lt;br /&gt;
&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;
== Рекуррентные соотношения ==&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;
=== №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;
=== №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 := ReadInteger;&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;
    Print(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;
=== №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;
var A,B,C: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа A и B: ');&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;
=== №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 := ReadInteger;&lt;br /&gt;
  assert(m &amp;gt; 0);&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма цифр числа m равна ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  write('Введите 1 число: ');&lt;br /&gt;
  var x := ReadReal;&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;
    x := ReadReal;&lt;br /&gt;
    if max &amp;lt; x then&lt;br /&gt;
      max := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  writeln('Максимальное из введенных чисел: ', max);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
  Result := x &amp;gt; 0;&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 := ReadInteger;&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&lt;br /&gt;
  var min := real.MaxValue;&lt;br /&gt;
  for var i := 1 to n do&lt;br /&gt;
  begin&lt;br /&gt;
    write('Введите ', i, ' число: ');&lt;br /&gt;
    var x := ReadReal;&lt;br /&gt;
    if (x &amp;lt; min) and p(x) then&lt;br /&gt;
      min := x;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if min = real.MaxValue then&lt;br /&gt;
    writeln('Нет чисел, удовлетворяющих условию')&lt;br /&gt;
  else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);&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. Вычислить Σ(i=1..n) a^i/i! ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a и n (n&amp;gt;0): ');&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('Сумма = ', s);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var a: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите a (0 &amp;lt; a &amp;lt; 1): ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
  assert((a&amp;gt;0) and (a&amp;lt;1));&lt;br /&gt;
&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;
&lt;br /&gt;
  writeln('Сумма = ', s);   &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&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;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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;
var n,k: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите целые числа n (n&amp;gt;0) и k: ');&lt;br /&gt;
  readln(n,k);&lt;br /&gt;
  assert(n&amp;gt;0);&lt;br /&gt;
&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 := ReadInteger;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    if x = k then&lt;br /&gt;
      Exists := true;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  if Exists then&lt;br /&gt;
    writeln('Число ', k, ' было введено')&lt;br /&gt;
  else writeln('Число ', k, ' не было введено');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== №15. Является ли число N&amp;gt;1 простым? ===&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 := ReadInteger;&lt;br /&gt;
  assert(N&amp;gt;1);&lt;br /&gt;
&lt;br /&gt;
  var IsPrime := True;&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;
      IsPrime := False;&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
  if IsPrime then&lt;br /&gt;
    writeln('Число ', N, ' является простым')&lt;br /&gt;
  else writeln('Число ', N, ' является составным');&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;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 := ReadInteger;&lt;br /&gt;
  assert(x&amp;gt;1);&lt;br /&gt;
&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 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;
=== №17. Вычисление значения многочлена в точке x по схеме Горнера ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var &lt;br /&gt;
  x,a: real;&lt;br /&gt;
  n: integer;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите x: ');&lt;br /&gt;
  readln(x);&lt;br /&gt;
  write('Введите степень многочлена n (n&amp;gt;0): ');&lt;br /&gt;
  readln(n);&lt;br /&gt;
  assert(n&amp;gt;=0);&lt;br /&gt;
  write('Введите коэффициенты: ');&lt;br /&gt;
  readln(a);&lt;br /&gt;
&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;
&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;
=== №18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления ===&lt;br /&gt;
Дан отрезок [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;
var a,b: real;&lt;br /&gt;
begin&lt;br /&gt;
  write('Введите числа a и b (a&amp;lt;b): ');&lt;br /&gt;
  readln(a,b);&lt;br /&gt;
  assert(a&amp;lt;b);&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
  writeln('Корень функции на [a,b] равен ',(b+a)/2);&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
© Буцев Виктор, Белоусько Тихон, Зуев Семен, Гончаров Владислав, Батраков Михаил, Гаджиев Казанфар, Пак Владислав&lt;/div&gt;</summary>
		<author><name>VFixer</name></author>
	</entry>
</feed>