Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тесты на нахождение наибольшего общего делителя двух многочленов ⇐ ПредыдущаяСтр 5 из 5
Возьмем два многочлена, и найдем НОД сами, а затем сверим результат с работой программы. 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. На
|
|||||
Последнее изменение этой страницы: 2020-03-02; просмотров: 140; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.214.115 (0.014 с.) |