Для табулирования любой функции на любом отрезке с любым шагом и любой точностью. При всевозможных значениях "косметика" (которой в предыдущем ответе вообще нет) не нарушается.
procedure Tabulate(a,b,h:real; f:real->real; k:byte:=2; sp:byte:=3);beginvar w := Seq(a, a+Trunc((b-a)/h)*h).Max(x->x.ToString.Length)+k+1;Writeln(' x'.PadLeft(w), ' '*sp, 'y');repeat Writeln(a:w:k, ' '*sp, f(a):0:k); a+=h until a>bend; beginvar a := ReadInteger('Введите a:');Tabulate(1, 10, 1, x->Cos(x+a))end.
Знакомая формулировка задачи, ЕГЭ-27. Вы пошли по пути наименьшего сопротивления, и решили перебрать все возможные пары элементов. Но в таком случае стоит учитывать, что для любого ряда входных данных, если x1 и x2 образуют пару, то эти же числа в обратном порядке учитывать не надо (При вашем переборе программа проверяла и пару x1-x2 и x2-x1, и считала их уникальными, что и приводило к ошибке)
Что бы перебрать все уникальные пары без повторений, вам следует немного изменить параметры вложенного for:
for i in range(N-1):
for j in range(i, N):
Таким образом, вы точно так же учтете все возможные комбинации элементов, но сможете избежать повторений.
Для табулирования любой функции на любом отрезке с любым шагом и любой точностью. При всевозможных значениях "косметика" (которой в предыдущем ответе вообще нет) не нарушается.
procedure Tabulate(a,b,h:real; f:real->real; k:byte:=2; sp:byte:=3);beginvar w := Seq(a, a+Trunc((b-a)/h)*h).Max(x->x.ToString.Length)+k+1;Writeln(' x'.PadLeft(w), ' '*sp, 'y');repeat Writeln(a:w:k, ' '*sp, f(a):0:k); a+=h until a>bend; beginvar a := ReadInteger('Введите a:');Tabulate(1, 10, 1, x->Cos(x+a))end.Пример работы:
Вы допустили ошибку на строке 7:
for j in range(1, N):
...
Знакомая формулировка задачи, ЕГЭ-27. Вы пошли по пути наименьшего сопротивления, и решили перебрать все возможные пары элементов. Но в таком случае стоит учитывать, что для любого ряда входных данных, если x1 и x2 образуют пару, то эти же числа в обратном порядке учитывать не надо (При вашем переборе программа проверяла и пару x1-x2 и x2-x1, и считала их уникальными, что и приводило к ошибке)
Что бы перебрать все уникальные пары без повторений, вам следует немного изменить параметры вложенного for:
for i in range(N-1):
for j in range(i, N):
Таким образом, вы точно так же учтете все возможные комбинации элементов, но сможете избежать повторений.