Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тесты на нахождение наибольшего общего делителя двух многочленовСодержание книги
Поиск на нашем сайте Возьмем два многочлена, и найдем НОД сами, а затем сверим результат с работой программы. 1. Даны два многочлена А=x3 +3x2 +3x+2 и В=x3+2x2 +2x+1. Применив алгоритм Евклида, получили НОД(А,В)= x2 +x+1; Результаты работы программы:
Первый многочлен: Введите степень многочлена (натуральное число) 3 Введите свободный элемент 2 Введите x в степени 1 3 Введите x в степени 2 3 Введите x в степени 3 1 y=x3+3x2+3x+2
Второй многочлен: Введите степень многочлена (натуральное число) 3 Введите свободный элемент1 Введите x в степени 1 2 Введите x в степени 2 2 Введите x в степени 3 1 y=x3+2x2+2x+1
Наибольший общий делитель двух многочленов: y=1x2+1x+1
Результаты расчетов «вручную» и при помощи программы совпадают.
2. Даны два многочлена А=x2 –x-3 и В=x+1. Применив алгоритм Евклида, получили НОД(А,В)= -1; Результаты работы программы: Первый многочлен: Введите степень многочлена (натуральное число) 2 Введите свободный элемент-3 Введите x в степени 1 -1 Введите x в степени 2 1 y=1x2-x-3
Второй многочлен: Введите степень многочлена (натуральное число) 1 Введите свободный элемент 1 Введите x в степени 1 1 y=x+1
Наибольший общий делитель двух многочленов: y=1
Результаты расчетов «вручную» и при помощи программы совпадают.
3. Даны два многочлена А=x2 –x-3 и В=x+1. Применив алгоритм Евклида, получили НОД(А,В)= -1; Результаты работы программы: Первый многочлен: Введите степень многочлена (натуральное число) 3 Введите свободный элемент -1 Введите x в степени 1 2 Введите x в степени 2 -2 Введите x в степени 3 1 y=1x3-2x2+2x-1
Второй многочлен: Введите степень многочлена (натуральное число) 3 Введите свободный элемент 1 Введите x в степени 1 0 Введите x в степени 2 -1 Введите x в степени 3 1 y=1x3-1x2+1
Наибольший общий делитель двух многочленов: y=-1x2+2x-2
Результаты расчетов «вручную» и при помощи программы совпадают.
Руководство пользователя Открываем программу «Многочлены» двойным щелчком мыши. Затем следуем инструкциям программы. Программа позволяет выполнять основные операции над многочленами. Многочлены представлены в стандартном виде, начиная от большей степени. «^» обозначает, какая степень у данного x. Заключение В данной курсовой работе мы, используя полученные ранее математические знания, написали работоспособную программу, которая может: складывать, вычитать, умножать, делить многочлены натуральной степени, находить значение в указанной точке, производную от многочлена, а так же настроены вывод результатов и ввод данных, который делает «общение» с пользователем более простым и понятным. Данную программу можно использовать для решения и проверки задач средней, а так же старшей школ. Список использованных источников 1. Ю. А. Макарычев Алгебра. 7 класс. Учебник для общеобразовательных учреждений – СПб.: Просвещение, 2007 2. Н. Я. Виленкин Математика. 5 класс. Учебник для общеобразовательных учреждений – СПб.: Мнемозина, 2005 3. И. Г. Семакин, А.П. Шестаков Основы программирования. Среднее профессиональное образование – СПб.: Высшая школа, НМЦ СПО, Мастерство, 2001 Приложения 1. Найти наибольший общий делитель многочленов P(x) и Q(x). #include <iostream>#include <cmath> #include <string> using namespace std; class mnogochlen { int stepen; int koof[100]; public: void sozdanie(); /* создание многочлена */ void vivod(); /* вывод многочлена */ mnogochlen operator +(mnogochlen m); /* сложение многочленов */ mnogochlen operator -(mnogochlen m); /* вычитание многочленов */ mnogochlen operator *(mnogochlen m); /* умножение многочленов */ bool operator ==(mnogochlen m); /* равны ли многочлены? */ bool operator!=(mnogochlen m); /* не равны ли многочлены? */ mnogochlen proizvodnaa(); /* нахождение производной от многочлена */ double znachenie(double x); /* нахождение значения при заданном x */ mnogochlen stepeny(int k); /*возведение многочлена в степень*/ mnogochlen operator /(mnogochlen m); /*деление многочленов */ mnogochlen operator %(mnogochlen m); /*нахождение остатка от деления*/ }; // находжение остатака от деления mnogochlen mnogochlen:: operator %(mnogochlen m){ mnogochlen c,d,g; bool a; int i,l,k; l=stepen-m.stepen; for (i=0;i<100;i++) {c.koof[i]=0; d.koof[i]=0;} while (stepen>=m.stepen){ c.stepen=stepen-m.stepen; c.koof[c.stepen]=koof[stepen]/m.koof[m.stepen]; d=m*c; * this =* this -d; } c.stepen=l; return * this;} //Деление многочленов mnogochlen mnogochlen:: operator /(mnogochlen m){ mnogochlen c,d,g; int i,l,k; l=stepen-m.stepen; for (i=0;i<100;i++) {c.koof[i]=0; d.koof[i]=0;} while (stepen>=m.stepen){ c.stepen=stepen-m.stepen; c.koof[c.stepen]=koof[stepen]/m.koof[m.stepen]; d=m*c; * this =* this -d; } c.stepen=l; return c;} /* Нахождение производной от многочлена */ mnogochlen mnogochlen::proizvodnaa(){mnogochlen c; int i, j; c.stepen=stepen; for (i=1;i<=stepen;i++) {c.koof[i-1]=koof[i]*i;}c.stepen--; return c; } /* Равны ли многочлены? */ bool mnogochlen:: operator ==(mnogochlen m){ bool priznak; int i; if (stepen!=m.stepen){priznak=0;} else { for (i=0;i<=stepen;i++) { if (koof[i]!=m.koof[i]) {priznak=0; break;} else {priznak=1;} } } return priznak; } /* не равны ли многочлены? */ bool mnogochlen:: operator!=(mnogochlen m){ bool priznak; int i; if (stepen!=m.stepen){priznak=0;} else { for (i=0;i<=stepen;i++) { if (koof[i]!=m.koof[i]) {priznak=1; break;} else {priznak=0;} } } return priznak; } /* умножение многочленов */ mnogochlen mnogochlen:: operator *(mnogochlen m) {mnogochlen d; int i,j,k; k=stepen+m.stepen; for (i=0;i<=k;i++) { d.koof[i]=0; } for (i=0;i<=stepen;i++) { for (j=0;j<=m.stepen;j++) { d.koof[i+j]+=koof[i]*m.koof[j]; } } d.stepen=m.stepen+stepen; return d; } /* разность многочленов */ mnogochlen mnogochlen:: operator -(mnogochlen m){mnogochlen d; int i,max; if (stepen>m.stepen) max=stepen; else max=m.stepen; if (stepen>m.stepen) { for (i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for (i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]-m.koof[i]; } d.stepen=max; for (i=max;i>0;i--) { if (d.koof[i]==0){d.stepen--;} else { break;}} return d;} /* нахождение значения многочлена */ double mnogochlen::znachenie(double x){ double y; int i; y=koof[0]; for (i=1;i<=stepen;i++) {y+=pow(x,i)*koof[i];} return y;} /* сложение многочленов */ mnogochlen mnogochlen:: operator +(mnogochlen m){mnogochlen d; int i,max; if (stepen>m.stepen) max=stepen; else max=m.stepen; if (stepen>m.stepen){ for (i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for (i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]+m.koof[i]; } d.stepen=max; for (i=max;i>0;i--) { if (d.koof[i]==0){d.stepen--;} else { break;}} return d; return d;} /* Создание многочлена */ void mnogochlen::sozdanie(){ int i; cout<<”Введите степень многочлена (натуралное число)"<<endl; cin>>stepen; cout<<"Введите свободный элемент"<<endl; cin>>koof[0]; for (i=1;i<=stepen;i++) { cout<<"Введите x в степени "<<i<<" "; cin>>koof[i]; }} /* вывод многочлена */ void mnogochlen::vivod(){ int j,i; cout<<"y="; if (stepen==0){cout<<koof[0];} else { if (koof[stepen]>0) { cout<<koof[stepen]<<"x^"<<stepen; } else { if (koof[stepen]<0) {cout<<koof[stepen]<<"x^"<<stepen;} else {cout<<"";} } j=stepen-1; for (i=j;i>=1;i--) { if (koof[i]>0) { cout<<"+"<<koof[i]<<"x^"<<i;} else { if (koof[i]<0) {cout<<koof[i]<<"x^"<<i;} else {cout<<"";}} } if (koof[0]>0) { cout<<"+"<<koof[0]<<endl;} else { if (koof[0]<0) {cout<<koof[i]<<endl;} else {cout<<endl;} }}} /* возведение многочлена в степень */ mnogochlen mnogochlen::stepeny(int k){ int i; mnogochlen d,c; c.stepen=stepen; for (i=0;i<=stepen;i++) {c.koof[i]=koof[i];} d.stepen=0; d.koof[0]=1; for (i=1;i<=k;i++) {d=d*c; } return d;} int main() { mnogochlen P,Q,c; double s,r; system("chcp 1251"); cout<<"Введите первый многочлен”<<endl; P.sozdanie(); P.vivod(); cout<<"Введите второй многочлен"<<endl; Q.sozdanie(); Q.vivod(); cout<<"Введите степень, в которую следует возвести первый многочлен"<<endl; cin>>s; P=P.stepeny(s); cout<<" Введите степень, в которую следует возвести второй многочлен "<<endl; cin>>r; Q=Q.stepeny(r); cout<<"Результат операций P^s-Q^r"<<endl; c=P-Q; c.vivod(); system ("PAUSE"); return 0; }2. На #include <iostream>#include <cmath> #include <string> using namespace std; class mnogochlen { public: int stepen; int koof[100]; void sozdanie(); void vivod(); mnogochlen operator +(mnogochlen m); /* ñëîæåíèå */ mnogochlen operator -(mnogochlen m); /* âû÷èòàíèå */ mnogochlen operator *(mnogochlen m); /* óìíîæåíèå */ bool operator ==(mnogochlen m); /* ñðàâíåíèå ìíîãî÷ëåíîâ */ bool operator!=(mnogochlen m); /* ñðàâíåíèå ìíîãî÷ëåíîâ */ mnogochlen proizvodnaa(); /* ïðîèçâîäíàÿ */ double znachenie(double x); /* íàõîæäåíèå çíà÷åíèÿ ôóíêöèè*/ mnogochlen stepeny(int k); /*âîçâåäåíèå ìíîãî÷ëåíà â ñòåïåíü*/ mnogochlen operator /(mnogochlen m); /*äåëåíèå ìíîãî÷ëåíà*/ mnogochlen operator %(mnogochlen m); /*îñòàòîê îò äåëåíèÿ ìíîãî÷ëåíîâ*/ mnogochlen NOD(mnogochlen a, mnogochlen b);}; // Остаток от деления mnogochlen mnogochlen:: operator %(mnogochlen m){ mnogochlen c,d,g; bool a; int i,l,k; l=stepen-m.stepen; for (i=0;i<100;i++) {c.koof[i]=0; d.koof[i]=0;} while (stepen>=m.stepen){ c.stepen=stepen-m.stepen; c.koof[c.stepen]=koof[stepen]/m.koof[m.stepen]; d=m*c; * this =* this -d; } c.stepen=l; return * this;} //Деление многочленов mnogochlen mnogochlen:: operator /(mnogochlen m){ mnogochlen c,d,g; int i,l,k; l=stepen-m.stepen; for (i=0;i<100;i++) {c.koof[i]=0; d.koof[i]=0;} while (stepen>=m.stepen){ c.stepen=stepen-m.stepen; c.koof[c.stepen]=koof[stepen]/m.koof[m.stepen]; d=m*c; * this =* this -d; } c.stepen=l; return c;} /* Производная от многочлена */ mnogochlen mnogochlen::proizvodnaa(){mnogochlen c; int i, j; c.stepen=stepen; for (i=1;i<=stepen;i++) {c.koof[i-1]=koof[i]*i;}c.stepen--; return c; } /* Равны ли многочлены? */ bool mnogochlen:: operator ==(mnogochlen m){ bool priznak; int i; if (stepen!=m.stepen){priznak=0;} else { for (i=0;i<=stepen;i++) { if (koof[i]!=m.koof[i]) {priznak=0; break;} else {priznak=1;} } } return priznak; } /* Не равны ли многочлены? */ bool mnogochlen:: operator!=(mnogochlen m){ bool priznak; int i; if (stepen!=m.stepen){priznak=0;} else { for (i=0;i<=stepen;i++) { if (koof[i]!=m.koof[i]) {priznak=1; break;} else {priznak=0;} } } return priznak; } /* Произведение многочленов */ mnogochlen mnogochlen:: operator *(mnogochlen m) {mnogochlen d; int i,j,k; k=stepen+m.stepen; for (i=0;i<=k;i++) { d.koof[i]=0; } for (i=0;i<=stepen;i++) { for (j=0;j<=m.stepen;j++) { d.koof[i+j]+=koof[i]*m.koof[j]; } } d.stepen=m.stepen+stepen; return d; } /* Разность многочленов */ mnogochlen mnogochlen:: operator -(mnogochlen m){mnogochlen d; int i,max; if (stepen>m.stepen) max=stepen; else max=m.stepen; if (stepen>m.stepen) { for (i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for (i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]-m.koof[i]; } d.stepen=max; for (i=max;i>0;i--) { if (d.koof[i]==0){d.stepen--;} else { break;}} return d;} /* нахождение значения значения в точке x0*/ double mnogochlen::znachenie(double x){ double y; int i; y=koof[0]; for (i=1;i<=stepen;i++) {y+=pow(x,i)*koof[i];} return y;} /* сложение многочленов */ mnogochlen mnogochlen:: operator +(mnogochlen m){mnogochlen d; int i,max; if (stepen>m.stepen) max=stepen; else max=m.stepen; if (stepen>m.stepen){ for (i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for (i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]+m.koof[i]; } d.stepen=max; for (i=max;i>0;i--) { if (d.koof[i]==0){d.stepen--;} else { break;}} return d; return d;} /* Создание многочлена */ void mnogochlen::sozdanie(){ int i; cout<<"Введите степень многочлена (натуральное число):"<<endl; cin>>stepen; cout<<"введите свободный элемент"<<endl; cin>>koof[0]; for (i=1;i<=stepen;i++) { cout<<"Введите x в степени "<<i<<" "; cin>>koof[i]; }} /* вывод многочлена */ void mnogochlen::vivod(){ int j,i; cout<<"y="; if (stepen==0){cout<<koof[0];} else { if (koof[stepen]>0) { cout<<koof[stepen]<<"x^"<<stepen; } else { if (koof[stepen]<0) {cout<<koof[stepen]<<"x^"<<stepen;} else {cout<<"";} } j=stepen-1; for (i=j;i>=1;i--) { if (koof[i]>0) { cout<<"+"<<koof[i]<<"x^"<<i;} else { if (koof[i]<0) {cout<<koof[i]<<"x^"<<i;} else {cout<<"";}} } if (koof[0]>0) { cout<<"+"<<koof[0]<<endl;} else { if (koof[0]<0) {cout<<koof[i]<<endl;} else {cout<<endl;} }}} /* возведение многочлена в степень */ mnogochlen mnogochlen::stepeny(int k){ int i; mnogochlen d,c; c.stepen=stepen; for (i=0;i<=stepen;i++) {c.koof[i]=koof[i];} d.stepen=0; d.koof[0]=1; for (i=1;i<=k;i++) {d=d*c; } return d;} /*Нахождение НОД двух многочленов*/ mnogochlen NOD(mnogochlen a, mnogochlen b){mnogochlen r1, r2, r3; if (a.stepen>=b.stepen){r1=a;r2=b;} else {r1=b;r2=a;} while (r2.stepen>0) { r3=(r1%r2); if (r3.stepen==0) { return r2;} r1=r2; r2=r3; } return r3; } int main() { mnogochlen a,b,c; double y,x,k; bool m; int l; system("chcp 1251"); cout<<"Первый многочлен: "<<endl; cout<<endl; a.sozdanie(); a.vivod(); cout<<endl; cout<<"Второй многочлен: "<<endl; b.sozdanie(); b.vivod(); cout<<endl; cout<<"Наибольший общий делитель двух многочленов: "<<endl; c=NOD(a,b); c.vivod(); system ("PAUSE"); return 0; }
|
||
|
Последнее изменение этой страницы: 2020-03-02; просмотров: 212; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |