ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
