Рефераты. Виконання символьних операцій з многочленами

Головним файлом пакету є файл kurs.pas. Його текст приведений в додатку 1.

В цьому файлі конструюються вже описані змінні zero i od. Тут же реалізований інтерфейс користувача, який розроблений у вигляді меню. Управління роботою пакету здійснюється через ввід числа, яке відповідає одному із запропонованих режимів роботи. До складу файлу входить директива компілятора $M, яка збільшує розмір стеку до максимально можливого.

5. Виконання контрольного прикладу

Додавання многочленiв

Доданки

4.00x^ 2+ 3.00x

2.00x^ 4-1.00x^ 3+ 3.00x^ 2+ 4.50x+ 5.00

4.00x^ 3-1.00x^ 2+ 0.40x

Результат

2.00x^ 4+ 3.00x^ 3+ 6.00x^ 2+ 7.90x+ 5.00

Множення многочленiв

Множники

2.00x^ 3-1.00x^ 2+ 2.00x+ 1.00

1.00x^ 2+ 1.00

-1.00x^ 2+ 0.50x+ 0.50

Результат

-2.00x^ 7+ 2.00x^ 6-3.50x^ 5+ 1.50x^ 4+ 1.50x+ 0.50

пiднесення многочлена до степеня

многочлен 1.00x^ 3-2.00x^ 2+ 2.00x_1.00

Піднесений до степеня 3

1.00x^9-6.00x^ 8+18.00x^7-35.00x^ 6+48.00x^5-48.00x^4+35.00x^3-18.00x^2+ 6.00x_1.00

Многочлен від многочлена

Внутрішній многочлен 1.00x^ 2+ 1.00x+ 1.00

Зовнішній многочлен 1.00x^ 2+ 1.00x+ 1.00

Результат 1.00x^ 4+ 2.00x^ 3+ 4.00x^ 2+ 3.00x+ 3.00

Ділення многочленiв

Ділене 1.00x^ 5+ 2.00x^ 4-1.00x^ 3+ 2.00x^ 2+ 1.00x+ 5.00

Дільник 1.00x^ 2+ 1.00x+ 1.00

Частка 1.00x^ 3+ 1.00x^ 2-3.00x+ 4.00

Остача 1.00

знаходження похідної від многочлена

многочлен 1.00x^ 4-1.00x^ 3+ 2.00x^ 2+ 3.00x+ 1.00

Похідна 2_го порядку

12.00x^ 2-6.00x+ 4.00

знаходження невизначеного інтеграла від многочлена

без врахування констант

многочлен

12.00x^ 2-6.00x+ 4.00

Інтеграл 2_го порядку

1.00x^ 4-1.00x^ 3+ 2.00x^ 2

6. Інструкція користувачу про роботу з програмним забезпеченням

До складу пакету входять файли вихідних текстів kurs.pas i bibl.pas, а також відкомпільовані файли kurs.exe та bibl.tpu.

Робота пакету можлива як у інтегрованому середовищі Turbo-Pascal, так і безпосередньо з операційної системи, запускаючи на виконання файл kurs.exe.

Ввести число для вибору потрібного режиму роботи.

Після вибору режиму роботи з'являється вікно вводу, де користувачу надається можливість послідовно вводити потрібні для роботи дані після виводу відповідного повідомлення. Зокрема, коефіцієнти многочлена вводяться, починаючи від коефіцієнта при максимальному степеню невідомого, і після появи відповідного степеня. Коефіцієнтами многочленів є дійсні числа.

Після вводу всіх необхідних даних з'являється вікно, у якому приведені умова задачі та результат роботи програми. Для повернення до режиму меню слід натиснути довільну клавішу.

Для виходу з пакету в режимі меню ввести число 0.

Висновки

В даній роботі реалізована задача «Виконання символьних операцій з многочленами». Здійснено математичний опис задачі, постановку задачі та розробку програмного пакету згідно з постановкою. Роботу пакету перевірено на контрольному прикладі, одержано результати, що співпадають з теоретичними.

Дальшим розвитком теми може бути створення «формульного редактора», який спрощував би довільні математичні вирази, до складу яких входять многочлени.

Додаток

Вихідні тексти програм

Файл kurs.pas

program kurs;

{$M 65520,0,655360}

Uses Crt, bibl;

label 1;

{початок програми}

var i, m, menu:integer;

n:array [1..20] of integer;

a:maspoli; c, c1:poli;

nb:integer; b:poli;

na:integer; ba:poli;

roz1, roz2:integer;

begin

{створення кiльцевого нуля zero i кiльцевої одиницi od}

for i:=0 to 100 do begin zero[i]:=0.00; od[i]:=0 end;

od[0]:=1;

while true do begin

clrscr;

TextBackground(LightMagenta);

TextColor(Yellow);

roz1:=25; roz2:=10;

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Сума m многочленiв 1');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Добуток m многочленiв 2');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Многочлен в степенi m 3');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Многочлен вiд многочлена 4');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Дiлення многочленiв 5');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Диференцiювання многочлена 6');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Iнтегрування многочлена 7');

gotoxy (roz1, roz2);

roz2:=roz2+1;

writeln ('Вихiд 0');

roz2:=roz2+1;

gotoxy (roz1+10, roz2); readln(menu);

if (menu=0) then goto 1;

TextBackground(LightBlue);

TextColor(Yellow);

{*************додавання*************************}

if (menu=1) then

begin

Clrscr;

riv (zero, c);

write ('число многочленiв ');

read(m);

for i:=1 to m do

begin

writeln ('степiнь многочлена ');

read (n[i]);

vvid (n[i], a[i]);

end;

nsuma (a, m, c);

Clrscr;

writeln ('Додавання многочленiв');

write('Доданки');

for i:=1 to m do vyvid (a[i]);

writeln;

write('Результат');

vyvid(c);

repeat until keypressed;

end;

{********************множення******************}

if (menu=2) then

begin

Clrscr;

write ('число многочленiв ');

read(m);

for i:=1 to m do

begin

writeln ('степiнь многочлена ');

read (n[i]);

vvid (n[i], a[i]);

end;

ndobutok (a, m, c);

Clrscr;

writeln ('Множення многочленiв');

write('Множники');

for i:=1 to m do vyvid (a[i]);

writeln;

write('Результат');

vyvid(c);

repeat until keypressed;

end;

{*********************пiднесення многочлена до степеня******}

if (menu=3) then begin

clrscr;

riv (zero, c);

writeln ('пiднесення многочлена до степеня');

writeln ('степiнь многочлена ');

read(nb);

vvid (nb, b);

writeln;

write ('До якого степеня пiднести ');

read(m);

mpoli (b, m, c);

clrscr;

writeln ('пiднесення многочлена до степеня');

write('многочлен');

vyvid(b);

writeln;

write ('Пiднесений до степеня ', m:2);

vyvid(c);

repeat until keypressed;

end;

{***************знаходження многочлена вiд многочлена******}

if (menu=4) then

begin

riv (zero, c);

clrscr;

writeln ('Знаходження многочлена вiд многочлена ');

writeln ('Внутрiшнiй многочлен');

writeln ('степiнь многочлена ');

read(nb);

vvid (nb, b);

writeln;

writeln ('Зовнiшнiй многочлен');

writeln ('степiнь многочлена ');

read(na);

vvid (na, ba);

writeln;

clrscr;

writeln ('Многочлен вiд многочлена');

write ('Внутрiшнiй многочлен');

vyvid(b);

writeln;

write ('Зовнiшнiй многочлен');

vyvid(ba);

polipoli (b, ba, c);

writeln;

write('Результат');

vyvid(c);

repeat until keypressed;

end;

{**************************дiлення многочленiв****}

if (menu=5) then

begin

riv (zero, c);

riv (zero, c1);

clrscr;

writeln ('Дiлення многочленiв ');

writeln('Дiлене');

writeln ('степiнь многочлена ');

read(nb);

vvid (nb, b);

writeln;

writeln ('Дiльник ');

writeln ('степiнь многочлена ');

read(na);

vvid (na, ba);

writeln;

clrscr;

dilen (b, ba, c, c1);

clrscr;

writeln ('Дiлення многочленiв');

write('Дiлене');

vyvid(b);

writeln;

write('Дiльник');

vyvid(ba);

writeln;

write('Частка');

vyvid(c);

writeln;

write('Остача');

vyvid(c1);

repeat until keypressed;

end;

{************диференцiювання многочленiв************}

if (menu=6) then

begin

clrscr;

writeln ('похiдна вiд многочлена');

writeln ('Порядок похiдноi');

read(m);

writeln ('степiнь многочлена ');

read(nb);

vvid (nb, b);

writeln;

riv (b, c);

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.