ВУЗ:
Составители:
Рубрика:
166
j:=j-1;
i:=i+1
end;
if odd(n) then b[n]:=a[j].
Можно решить пример 11.27, перебирая элементы исходного массива. В этом
случае индекс выходного массива будет изменяться с шагом 2. Сначала этот
индекс должен быть четным и возрастать, так как начальные элементы массива а
располагаются на четных местах в порядке возрастания. После того, как индекс
выходного массива превысит n, он должен принять нечетное
значение и
уменьшаться с шагом 2 до 1. Соответствующая программа приведена ниже.
k:=2;
h:=2; {шаг изменения индекса выходного массива}
for i:=1 to n do
begin b[k]:=a[i];
k:=k+h;
if k>n then begin
if n mod 2=0
then k:=n-1
else k:=n;
h:=-2
end
end.
Упражнение. Постройте программу на основе перебора элементов исходного
массива, но выбрав схему перебора по одному элементу от последнего к первому.
Пример 11.28. Многочлен степени n a
n
x
n
+a
n-1
x
n-1
+...+a
1
x+a
0
от одной
переменной можно представить одномерным массивом коэффициентов этого
многочлена, описанным следующим образом:
const nn=100; { максимальная степень многочлена равна 100 }
type polinom=array [0..nn] of real;
var a,b:polinom; { a и b многочлены, свободные члены хранятся в
элементах a[0] и b[0], a[i] и b[i] - коэффициенты при x в i-той степени}
n:integer; { степень многочлена }
Массивом а задан многочлен степени n. Массивом b задан многочлен степени
m. Получить в массиве с результат
умножения заданных многочленов.
Например, заданы многочлены: n=2, 3x
2
+2x-1 и m=3, 4x
3
-5x
2
+6x-7. Их
произведение является многочленом степени n+m=2+3=5. Его можно получить
следующим образом:
(3x
2
+2x-1)(4x
3
-5x
2
+6x-7)=
=12x
5
-15x
4
+18x
3
-21x
2
+
+ 8x
4
-10x
3
+12x
2
-14x +
- 4x
3
+ 5x
2
- 6x +7 =
=12x
5
- 7x
4
+ 4x
3
- 4x
2
-20x +7 .
Для получения произведения нужно каждый одночлен первого многочлена
(обозначим его i) умножить на каждый одночлен второго многочлена (обозначим
его j). В результате получится одночлен, в котором неизвестная будет в степени i+j.
Останется привести подобные члены и получится результат. Подобные можно
166 j:=j-1; i:=i+1 end; if odd(n) then b[n]:=a[j]. Можно решить пример 11.27, перебирая элементы исходного массива. В этом случае индекс выходного массива будет изменяться с шагом 2. Сначала этот индекс должен быть четным и возрастать, так как начальные элементы массива а располагаются на четных местах в порядке возрастания. После того, как индекс выходного массива превысит n, он должен принять нечетное значение и уменьшаться с шагом 2 до 1. Соответствующая программа приведена ниже. k:=2; h:=2; {шаг изменения индекса выходного массива} for i:=1 to n do begin b[k]:=a[i]; k:=k+h; if k>n then begin if n mod 2=0 then k:=n-1 else k:=n; h:=-2 end end. Упражнение. Постройте программу на основе перебора элементов исходного массива, но выбрав схему перебора по одному элементу от последнего к первому. Пример 11.28. Многочлен степени n anxn+an-1xn-1+...+a1x+a0 от одной переменной можно представить одномерным массивом коэффициентов этого многочлена, описанным следующим образом: const nn=100; { максимальная степень многочлена равна 100 } type polinom=array [0..nn] of real; var a,b:polinom; { a и b многочлены, свободные члены хранятся в элементах a[0] и b[0], a[i] и b[i] - коэффициенты при x в i-той степени} n:integer; { степень многочлена } Массивом а задан многочлен степени n. Массивом b задан многочлен степени m. Получить в массиве с результат умножения заданных многочленов. Например, заданы многочлены: n=2, 3x2+2x-1 и m=3, 4x3-5x2+6x-7. Их произведение является многочленом степени n+m=2+3=5. Его можно получить следующим образом: (3x2+2x-1)(4x3-5x2+6x-7)= =12x5 -15x4 +18x3 -21x2 + + 8x4 -10x3 +12x2 -14x + - 4x3 + 5x2 - 6x +7 = 5 4 3 2 =12x - 7x + 4x - 4x -20x +7 . Для получения произведения нужно каждый одночлен первого многочлена (обозначим его i) умножить на каждый одночлен второго многочлена (обозначим его j). В результате получится одночлен, в котором неизвестная будет в степени i+j. Останется привести подобные члены и получится результат. Подобные можно
Страницы
- « первая
- ‹ предыдущая
- …
- 162
- 163
- 164
- 165
- 166
- …
- следующая ›
- последняя »