Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВАТАУ л1 (Автосохраненный).docx
Скачиваний:
4
Добавлен:
10.07.2019
Размер:
144.7 Кб
Скачать

Московский государственный авиационный институт

(технический университет)

МАИ

кафедра 301

Лабораторная работа по курсу ВАТАУ №1

«Вычислительные операции с многочленами и передаточными функциями».

Подготовил: Филатов Д.

Группа:03-405

Москва, 2011

Перечень вычислительных задач.

1. Ввести вывести многочлен.

2. Сложить два многочлена.

3. Умножить два многочлена.

4. Умножить многочлен на число.

5. Вычислить передаточную функцию по заданной структурной схеме представленной на рисунке 1.

Рисунок 1. Структурная схема.

Передаточная функция такой структуры будет иметь вид

W1/(1+W2W1+W1W3)

Или, если представить передаточные функции в виде: a1/b1, a2/b2, a3/b3

a1b2b3/(b2b1b3+a2a1b3+a1a3b2).

Задача №1.

Структурные данные на входе и входе.

Входными данными служат:

- n – целое {порядок многочлена};

-а[0:n] массив действительных {коэффициенты многочлена};

Выходными данными служат:

- n – целое {порядок многочлена};

-а[0:n] массив действительных {коэффициенты многочлена};

Алгоритм решения задачи.

Начало

Ввод порядка многочлена вида аnS^n +аn-1S^n-1 +…+a0 (ввод n)

Для i от 0 до n:

Ввод коэффициентов многочлена а[i].

Для i от n до 1:

Вывести а[i]

Вывести n.

Конец.

Текст программы.

program vatayl11;

uses crt;

var i,n:integer;

var a:array[0..10] of real;

begin

clrscr;

writeln('vvedi poradok mnogochlena an*S^n+..+a0');

read(n);

for i:=0 to n do

begin

writeln('vvedi koefficient a', i);

read(a[i]);

end;

for i:=0 to n do

begin

writeln('a',i,'=',a[n-i]:2:1);

end;

writeln('poradok mnogochlena=',n);

read(n);

end.

Типовой пример

Примеры работы программы приведены на рисунках 2 и 3

Рисунок 2. Пример работы программы решения задачи №1

Рисунок 3. Пример работы программы решения задачи №1

Задача №2

Структурные данные на входе и входе.

Входными данными служат:

- nа – целое {порядок первого многочлена};

-а[0:nа] массив действительных {коэффициенты первого многочлена};

- nb – целое {порядок второго многочлена};

-b[0:nb] массив действительных {коэффициенты второго многочлена};

Выходными данными служат:

- nс – целое {порядок полученного многочлена};

-c[0:nc] массив действительных {коэффициенты полученного многочлена};

Алгоритм решения задачи.

Начало

Ввод порядка многочлена вида аnS^n +аn-1S^n-1 +…+a0 (ввод nа)

Для i от 0 до nа:

Ввод коэффициентов многочлена а[i].

Ввод порядка многочлена вида bnS^n +bn-1S^n-1 +…+b0 (ввод nb)

Для i от 0 до nb:

Ввод коэффициентов многочлена b[i].

Если na>nb то

Для i от 0 до na

c[i]=а[i]

Для i от 0 до nb

c[i]=c[i]+b[i]

Вывести порядок полученного многочлена na.

Для i от n до na:

Вывести c[i]

Иначе

Для i от 0 до nb

c[i]=b[i]

Для i от 0 до na

c[i]=с[i]+а[i]

Вывести порядок полученного многочлена nb

Для i от n до nb:

Вывести c[i]

Конец.

Текст программы.

program vatayl12;

uses crt;

var i,na,nb:integer;

var c, a, b: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 poradok mnogochlena bn*S^n+..+b0');

read(nb);

for i:=0 to nb do

begin

writeln('vvedi koefficient b', i);

read(b[i]);

end;

if na>nb then

begin

for i:=0 to na do

c[i]:=a[i];

for i:=0 to nb do

c[i]:=c[i]+b[i];

writeln('poradok mnogochlena cn*S^n+..+c0=',na);

for i:=0 to na do

writeln('c',i,'=',c[i]:2:1);

end

else

begin

for i:=0 to nb do

c[i]:=b[i];

for i:=0 to na do

c[i]:=c[i]+a[i];

writeln('poradok mnogochlena cn*S^n+..+c0=',nb);

for i:=0 to nb do

writeln('c',i,'=',c[i]:2:1);

end;

read(na);

end.

Типовой пример

Примеры работы программы приведены на рисунках 4 и 5

Рисунок 4. Пример работы программы решения задачи №2

Рисунок 5. Пример работы программы решения задачи №2

Произведем сложение вручную

Задача 3

Структурные данные на входе и входе.

Входными данными служат:

- nа – целое {порядок первого многочлена};

-а[0:nа] массив действительных {коэффициенты первого многочлена};

- nb – целое {порядок второго многочлена};

-b[0:nb] массив действительных {коэффициенты второго многочлена};

Выходными данными служат:

- nс – целое {порядок полученного многочлена};

-а[0:nc] массив действительных {коэффициенты полученного многочлена};

Алгоритм решения задачи.

Начало

Ввод порядка многочлена вида аnS^n +аn-1S^n-1 +…+a0 (ввод nа)

Для i от 0 до nа:

Ввод коэффициентов многочлена а[i].

Ввод порядка многочлена вида bnS^n +bn-1S^n-1 +…+b0 (ввод nb)

Для i от 0 до nb:

Ввод коэффициентов многочлена b[i].

Для i от 0 до na

Для j от 0 до nb

k=i+j

с[k]=a[i]b[i]+c[k]

Вывести порядок полученного многочлена k

Для i от 0 до nb+na:

Вывести c[i]

Конец.

Текст программы.

program vatayl12;

uses crt;

var i,j,k,na,nb:integer;

var c, a, b: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 poradok mnogochlena bn*S^n+..+b0');

read(nb);

for i:=0 to nb do

begin

writeln('vvedi koefficient b', i);

read(b[i]);

end;

for j:=0 to nb do

for i:=0 to na do

begin

k:=j+i;

c[k]:=a[i]*b[j]+c[k];

end;

writeln('poradok mnogochlena cn*S^n+..+c0', k);

for i:=0 to na*nb do

writeln('c',i,'=',c[i]:2:1);

read(na);

end.Типовой пример

Примеры работы программы приведены на рисунках 6 и 7

Рисунок 6. Пример работы программы решения задачи №3

Рисунок 7. Пример работы программы решения задачи №3

Произведем умножение вручную