Bulletproof777 | Дата: Среда, 09.01.2013, 17:07 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| помогите составить блок-схему для этой программы. программа перемножает два многочлена(полинома) #include <iostream> #include <sstream> #include <string> #include <stdlib.h> #include <stdio.h> using namespace std; ////////////////////////////////////////////////////////////////////////// class Polinomial{ private: string polinomial; int order_of_polinomial; double *coefficients_of_polinomial; public: Polinomial() { polinomial.resize(0); order_of_polinomial = 0; } void coeff_of_pol(); void clear_coeff(); void out(); void paste(); void operator < (string); Polinomial operator * (Polinomial)const; }; ////////////////////////////////////////////////////////////////////////// void Polinomial::coeff_of_pol() { string s_temp; double d_temp = 0,co_temp = 0; char *c_temp ; stringstream ss_temp; c_temp = new char[1]; ss_temp.clear(); ss_temp.str(""); ss_temp << polinomial; s_temp = polinomial; c_temp[0] = s_temp[s_temp.size()-1]; order_of_polinomial = atoi(c_temp); coefficients_of_polinomial = new double[order_of_polinomial-1]; s_temp.resize(0); ss_temp >> d_temp >> s_temp; ss_temp.clear(); ss_temp.str(""); ss_temp << s_temp; coefficients_of_polinomial[0] = d_temp; d_temp = 0; for(int i = 1; i <= order_of_polinomial;i++) { s_temp.resize(0); ss_temp >> d_temp >> c_temp[0] >> c_temp[1] >> s_temp; ss_temp.clear(); ss_temp.str(""); ss_temp << s_temp; coefficients_of_polinomial[i] = d_temp; d_temp = 0; } } ////////////////////////////////////////////////////////////////////////// void Polinomial::clear_coeff() { for(int i = 0 ; i <= order_of_polinomial;i++) coefficients_of_polinomial[i] = 0; } ////////////////////////////////////////////////////////////////////////// void Polinomial::out() { cout << polinomial << endl; } ////////////////////////////////////////////////////////////////////////// void Polinomial::paste() { stringstream ss_temp; ss_temp.clear(); ss_temp.str(""); ss_temp << coefficients_of_polinomial[0]; if(coefficients_of_polinomial[1] > 0) { ss_temp << '+' << coefficients_of_polinomial[1] << 'x'; }else { ss_temp << coefficients_of_polinomial[1] << 'x'; } for(int i = 2;i <= order_of_polinomial;i++) { if(coefficients_of_polinomial[i] > 0) { ss_temp << '+' << coefficients_of_polinomial[i] << 'x' << i; }else { ss_temp << coefficients_of_polinomial[i] << 'x' << i; } } ss_temp << ends; polinomial = ss_temp.str(); } ////////////////////////////////////////////////////////////////////////// Polinomial Polinomial::operator *(Polinomial C_x)const { Polinomial temp; temp.order_of_polinomial = order_of_polinomial + C_x.order_of_polinomial; temp.coefficients_of_polinomial = new double[temp.order_of_polinomial-1]; temp.clear_coeff(); for(int i = 0; i <= order_of_polinomial;i++) { for(int j = 0; j <= C_x.order_of_polinomial;j++) { temp.coefficients_of_polinomial[i+j] += coefficients_of_polinomial[i]*C_x.coefficients_of_polinomial[j]; } } temp.paste(); return temp; } ////////////////////////////////////////////////////////////////////////// void Polinomial::operator <(string str) { polinomial = str; coeff_of_pol(); } ////////////////////////////////////////////////////////////////////////// int main(int argc, char* argv[]) { setlocale(0,""); string str; Polinomial A_x,B_x,C_x; cout << "Ввод полинома вида: P(x) = p0+p1x1+p2x2+..+pnxn.(вводить только многочлен)" << endl; cout << "Введите первый полином: "; getline(cin,str); A_x < str; str.resize(0); cout << "Введите второй полином: "; getline(cin,str); B_x < str; C_x = A_x*B_x; cout << "Третий полином: "; C_x.out(); getchar(); return 0; }
|
|
| |
diamFC | Дата: Пятница, 11.01.2013, 23:37 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 207
Статус: Offline
| я не делаю блок-схем для си
|
|
| |