Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx57 / Курсовая С .docx
Скачиваний:
56
Добавлен:
01.08.2013
Размер:
48.61 Кб
Скачать

Глава II

§ 2.1. Программа

Для начала опишем программу, не расписывая подробно подпрограммы.

#include <iostream> //подключаем стандартную библиотеку

#include <cmath> //подключаем математическую библиотеку

#include <string> //подключаем библиотеку для работы со строками

using namespace std;

class mn //дали имя классу

{ int a[256];

int n; int k;

public:

void Nul(); //обнуление

mn operator +(mn c); //сложение

mn operator -(mn c); // вычитание

mn operator *(mn c); //умножение

mn operator /(mn c); //деление с остатком

mn operator =(mn c); // Присваивание

mn operator ^(int c); // возведение в натуральную степень k

mn operator ==(mn c); //проверка на равенство многочленов

void vvod(); //ввод многочлена

void Print(); //вывод многочлена на экран

void proizvodnaya(); //производная многочлена

void vtochkex0(); //значение многочлена в точке x0

};

int main ()

{ mn a, b, c; int k;

srand(time(0)); //генератор случайных чисел

a.vvod(); //заполняем первый многочлен

a.Print(); //выводим первый многочлен

cout<<endl;

b.vvod(); //заполняем второй многочлен

b.Print(); //выводим второй многочлен

a.vtochkex0(); //ищем значение первого многочлена в точке x0

cout<<endl;

a.proizvodnaya(); //ищем производную первого многочлена

cout<<endl;

cout<<"Vvedite stepen: ";

cin>>k;//вводим степень

cout<<"A ^ "<<k;

c=a^k; //возводим в степень первый многочлен

c.Print(); //выводим на экран результат возведения в степень

cout<<endl;

cout<<"A + B : ";

c=a+b; //складываем первый и второй многочлены

c.Print(); //выводим сумму первого и второго многочленов

cout<<"A * B : ";

c=a*b; //умножаем первый и второй многочлены

c.Print(); //выводим произведение первого и второго многочленов

cout<<"A / B : ";

c=a/b; //делим с остатком первый многочлен на второй

c.Print(); //выводим деление с остатком первого многочлена на второй

cout<<"A - B : ";

c=a-b; //вычитаем из первого многочлена второй многочлен

c.Print(); //выводим разность первого и второго многочленов

cout<<"A <> B : ";

a==b; //сравниваем два многочлена

cout<<endl;

system ("PAUSE");

return 0;

}

Далее рассмотрю и опишу отдельно каждую подпрограмму.

§ 2.2. Операция обнуления

void mn :: Nul()

{ for (int i=n;i>0;i--) a[i]=0;} //присваиваем всем элементам многочлена значение 0

§ 2.3. Операция сложения

mn mn :: operator +(mn c)

{ mn d; int i; int max;

max=0; //переменная для хранения максимальной длины многочлена

d.n=n; //присваиваем результативному многочлену длину

if (n>c.n) //находим максимальную длину многочлена из двух данных, если первый больше, то:

{for (i=c.n+1; i<n+1; i++) //увеличиваем длину второго многочлена до длины первого многочлена

c.a[i]=0; //добавляем недостающие элементы во второй многочлен, задавая им значение 0

max=n;} //заносим в переменную максимальную длину многочлена

else if (c.n>n) //если второй многочлен больше, то:

{for (i=n+1; i<c.n; i++) //увеличиваем длину первого многочлена до длины второго многочлена

a[i]=0; //добавляем недостающие элементы в первый многочлен, задавая им значение 0

max=c.n;} //заносим в переменную максимальную длину многочлена

else max=n; //заносим в переменную максимальную длину многочлена

for (i=max; i>0; i--)

d.a[i]=a[i]+c.a[i]; //пробегая оба многочлена, заносим в результативный сумму элементов каждого

cout<<endl;

d.n=max; //длину результативного многочлена приравниваем значению переменной

return d;} // возвращаем результативный многочлен

Соседние файлы в папке docx57