Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> составление блок-схемы, требуется составить блок-схему 
:(
    Опции темы
Bulletproof777
Дата 9.1.2013, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.1.2013

Репутация: нет
Всего: нет



помогите составить блок-схему для этой программы. программа перемножает два многочлена(полинома)
Код

#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;
}
 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0383 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.