Задача 4
Структурные данные на входе и входе.
Входными данными служат:
- nа– целое {порядок многочлена};
-а[0:n] массив действительных {коэффициенты многочлена};
Выходными данными служат:
- nс – целое {порядок многочлена};
-с[0:n] массив действительных {коэффициенты многочлена};
Алгоритм решения задачи.
Начало
Ввод порядка многочлена вида аnS^n +аn-1S^n-1 +…+a0 (ввод n)
Для i от 0 до nа:
Ввод коэффициентов многочлена а[i].
Вести число на которое необходимо умножить (ввод k)
Для i от 0 до na:
c[i]=а[i]*k
Вывести порядок полученного многочлена na.
Для i от 0 до na:
Вывести c[i]
Конец.
Текст программы.
program vatayl12;
uses crt;
var i,k,na:integer;
var c, a:array[0..10] of real;
begin
clrscr;
writeln('vvedi poradok mnogochlena an*S^n+..+a0');
read(na);
for i:=0 to na do
begin
writeln('vvedi koefficient a', i);
read(a[i]);
end;
writeln('vvedi chislo dla ymnojenia');
readln(k);
for i:=0 to na do
c[i]:=a[i]*k;
writeln('poradok poluchennogo mnogochlena =', na);
for i:=0 to na do
writeln('c',i,'=',c[i]:3:2);
read(na);
end.
Типовой пример
Примеры работы программы приведены на рисунках 8 и 9.
Рисунок 8. Пример работы программы решения задачи №3
Рисунок 9. Пример работы программы решения задачи №3
Произведем умножение вручную
Задача 5
Структурные данные на входе и входе.
Входными данными служат:
- na1 – целое {порядок многочлена числителя передаточной функции W1};
- nb1 – целое {порядок многочлена знаменателя передаточной функции W1};
-а1[0:n] массив действительных {коэффициенты многочлена числителя передаточной функции W1};
-b1[0:n] массив действительных {коэффициенты многочлена знаменателя передаточной функции W1};
- na2 – целое {порядок многочлена числителя передаточной функции W2};
- nb2 – целое {порядок многочлена знаменателя передаточной функции W2};
-а2[0:n] массив действительных {коэффициенты многочлена числителя передаточной функции W2};
-b2[0:n] массив действительных {коэффициенты многочлена знаменателя передаточной функции W2};
- na3 – целое {порядок многочлена числителя передаточной функции W3};
- nb3 – целое {порядок многочлена знаменателя передаточной функции W3};
-а3[0:n] массив действительных {коэффициенты многочлена числителя передаточной функции W3};
-b3[0:n] массив действительных {коэффициенты многочлена знаменателя передаточной функции W3};
Выходными данными служат:
- nас – целое {порядок многочлена знаменателя полученной передаточной функции};
- nас – целое {порядок многочлена числителя полученной передаточной функции};
-ас[0:n] массив действительных {коэффициенты многочлена числителя передаточной функции};
-bс[0:n] массив действительных {коэффициенты многочлена знаменателя передаточной функции};
Алгоритм решения задачи.
Начало
Ввод порядка многочлена вида а1nS^n +а1n-1S^n-1 +…+a10, который является числителем W1 (ввод nа1)
Для i от 0 до nа1:
Ввод коэффициентов многочлена а1[i].
Ввод порядка многочлена вида b1nS^n +b1n-1S^n-1 +…+b10, который является зеаменателем W1 (ввод nb1)
Для i от 0 до nb1:
Ввод коэффициентов многочлена b1[i].
Ввод порядка многочлена вида а2nS^n +а2n-1S^n-1 +…+a20, который является числителем W2 (ввод nа2)
Для i от 0 до nа2:
Ввод коэффициентов многочлена а2[i].
Ввод порядка многочлена вида b2nS^n +b2n-1S^n-1 +…+b20 который является зеаменателем W2 (ввод nb2)
Для i от 0 до nb2:
Ввод коэффициентов многочлена b2[i].
Ввод порядка многочлена вида а2nS^n +а2n-1S^n-1 +…+a20, который является числителем W3 (ввод nа3)
Для i от 0 до nа3:
Ввод коэффициентов многочлена а3[i].
Ввод порядка многочлена вида b3nS^n +b3n-1S^n-1 +…+b30 который является зеаменателем W3 (ввод nb3)
Для i от 0 до nb3:
Ввод коэффициентов многочлена b3[i].
Для i от 0 до na1
Для j от 0 до nb2
Для q от 0 до nb3
k=i+j+q
aс[k]=a1[i]b2[i]b3[i]+ac[k]
Вывести: порядок многочлена числителя k
Вывести: коэффициенты числителя
Для i от 1 до k:
Вывести: ac[i]
Для i от 0 до nb1
Для j от 0 до nb2
Для q от 0 до nb3
k1=i+j+q
bc1[k1]=b1[i]b2[i]b3[i]+bc1[k1]
Для i от 0 до na1
Для j от 0 до na2
Для q от 0 до nb3
k2=i+j
bс2[k2]=a1[i]a2[i]b3[i]+bc2[k2]
Для i от 0 до na1
Для j от 0 до na2
Для q от 0 до nb2
k3=i+j +q
bс3[k3]=a1[i]a2[i]b2[i]+bc3[k3]
Если k1>k2 то
Если k1>k3 то
Для i от 0 до k1
bc[i]=bc1[i]+bc[i]
Для i от 0 до k2
bc[i]=bc[i]+bc2[i]
Для i от 0 до k3
bc[i]=bc[i]+bc3[i]
Вывести: порядок многочлена знаменателя k1
Вывести: коэффициенты знаменателя
Для i от 1 до k1:
Вывести: bc[i]
Иначе
Для i от 0 до k3
bc[i]=bc[i]+bc3[i]
Для i от 0 до k1
bc[i]=bc1[i]+bc[i]
Для i от 0 до k2
bc[i]=bc[i]+bc2[i]
Вывести: порядок многочлена знаменателя k3
Вывести: коэффициенты знаменателя
Для i от 1 до k3:
Вывести: bc[i]
Иначе
Если k2>k3 то
Для i от 0 до k2
bc[i]=bc[i]+bc2[i]
Для i от 0 до k1
bc[i]=bc1[i]+bc[i]
Для i от 0 до k3
bc[i]=bc[i]+bc3[i]
Вывести: порядок многочлена знаменателя k2
Вывести: коэффициенты знаменателя
Для i от 1 до k2:
Вывести: bc[i]
Иначе
Для i от 0 до k3
bc[i]=bc[i]+bc3[i]
Для i от 0 до k1
bc[i]=bc1[i]+bc[i]
Для i от 0 до k2
bc[i]=bc[i]+bc2[i]
Вывести: порядок многочлена знаменателя k3
Вывести: коэффициенты знаменателя
Для i от 1 до k3:
Вывести: bc[i]
Конец.
Текст программы
program vatayl12;
uses crt;
var k,k1,k2,k3,q,i,j,na1,nb1,na2,nb2,na3,nb3,nac,nbc:integer;
var c, a1,b1,a2,b2,a3,b3,ac,bc,bc1,bc2,bc3:array[0..10] of real;
begin
clrscr;
writeln('vvedi poradok mnogochlena a1n*S^n+..+a10, chislitela W1');
read(na1);
for i:=0 to na1 do
begin
writeln('vvedi koefficient a1', i);
read(a1[i]);
end;
writeln('vvedi poradok mnogochlena b1n*S^n+..+b10, znamenatela W1');
read(nb1);
for i:=0 to nb1 do
begin
writeln('vvedi koefficient b1', i);
read(b1[i]);
end;
writeln('vvedi poradok mnogochlena a2n*S^n+..+a20, chislitela W2');
read(na2);
for i:=0 to na2 do
begin
writeln('vvedi koefficient a2', i);
read(a2[i]);
end;
writeln('vvedi poradok mnogochlena b2n*S^n+..+b20, znamenatela W2');
read(nb2);
for i:=0 to nb2 do
begin
writeln('vvedi koefficient b2', i);
read(b2[i]);
end;
writeln('vvedi poradok mnogochlena a3n*S^n+..+b30, chislitela W3');
read(na3);
for i:=0 to na3 do
begin
writeln('vvedi koefficient a3', i);
read(a3[i]);
end;
writeln('vvedi poradok mnogochlena b3n*S^n+..+b30, znamenatela W3');
read(nb3);
for i:=0 to nb3 do
begin
writeln('vvedi koefficient b3', i);
read(b3[i]);
end;
for i:=0 to na1 do
for j:=0 to nb2 do
for q:=0 to nb3 do
begin
k:=i+j+q;
ac[k]:=a1[i]*b2[i]*b3[i]+ac[k];
end;
writeln('poradok mnogochlena chislitela W:', k);
for i:=0 to k do
write('ac',i,'=',ac[i]:3:2);
for i:=0 to nb1 do
for j:=0 to nb2 do
for q:=0 to nb3 do
begin
k1:=i+j+q;
bc1[k1]:=b1[i]*b2[i]*b3[i]+bc1[k1]
end;
for i:=0 to na1 do
for j:=0 to na2 do
for q:=0 to nb3 do
begin
k2:=i+j+q;
bc2[k2]:=a1[i]*a2[i]*b3[i]+bc2[k2]
end;
for i:=0 to na1 do
for j:=0 to na2 do
for q:=0 to nb2 do
begin
k3:=i+j+q;
bc3[k3]:=a1[i]*a2[i]*b3[i]+bc3[k3]
end;
if k1>k2 then
begin
if k1>k3 then
begin
for i:=0 to k1 do
bc[i]:=bc1[i]+bc[i];
for i:=0 to k2 do
bc[i]:=bc2[i]+bc[i];
for i:=0 to k3 do
bc[i]:=bc3[i]+bc[i];
writeln('poradok znamenatla W=',k1);
For i:=0 to k1 do
write('bc',i,'=',c[i]:3:2);
end
else
begin
for i:=0 to k3 do
bc[i]:=bc3[i]+bc[i];
for i:=0 to k1 do
bc[i]:=bc1[i]+bc[i];
for i:=0 to k2 do
bc[i]:=bc2[i]+bc[i];
writeln('poradok znamenatla W=',k3);
For i:=1 to k3 do
write('bc',i,'=',c[i]:3:2);
end;
end
else
if k2>k3 then
begin
for i:=0 to k2 do
bc[i]:=bc2[i]+bc[i];
for i:=0 to k1 do
bc[i]:=bc1[i]+bc[i];
for i:=0 to k3 do
bc[i]:=bc3[i]+bc[i];
writeln('poradok znamenatla W=',k2);
For i:=1 to k2 do
write('bc',i,'=',c[i]:3:2);;
end
else
begin
for i:=0 to k3 do
bc[i]:=bc3[i]+bc[i];
for i:=0 to k1 do
bc[i]:=bc1[i]+bc[i];
for i:=0 to k2 do
bc[i]:=bc2[i]+bc[i];
writeln('poradok znamenatla W=',k3);
For i:=1 to k3 do
write('bc',i,'=',c[i]:3:2);
end;
read(i);
end.Пример работы программы.
Примеры работы программы приведены на рисунке 10
Рисунок 10. Пример работы программы реализующей решение задачи № 5