Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2015, 19:51   #1
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию Класс Series

Создать абстрактный базовый класс Series (прогрессия) с виртуальными функциями вычисления j-ro элемента прогрессии и суммы прогрессии. Определить производные классы: Linear (арифметическая) и Exponential (геометрическая). (Арифметическая прогрессия aj = a0 + j*d, j = 1,2,3,… Сумма арифметической прогрессии: sn = (n + 1) (а0 + аn) / 2. Геометрическая прогрессия: aj = a0*r^j, j = 1,2,3,… Сумма геометрической прогрессии: sn = (а0 - аn*r) / (1-r).)
Выводит неправильный ответ, помогите пожалуйста
Код:
#include <iostream>
#include <cmath>
#include <conio.h>
 
using namespace std;
class Series
{
protected:
double a;
public:
Series(double x=0) {a=x;} 
 virtual float j_elem() = 0;
 virtual float sum() = 0;
};	

class Linear: public Series {
public:
Linear(double x, double d, int n1): Series (x) {};
float j_elem()
 { int n1, d;
 for (int i=1;i<n1+1;i++)
    return (a + (n1-1)*d);
   };
float sum()
 { int n1, d; 
 return (2*a+d*(n1-1))/2;}
};

class Exponential: public Series {
public:
Exponential(double x, int q, int n2): Series (x) {};
float j_elem()
 { int n2, q; double bj;
 for (int i=1;i<n2+1;i++)
  bj = a*pow(q,i);	
 return bj;	
}
float sum()
 { int q; double bj;
 
 return (a - bj*q)/(1 - q);}
};


int main()
{
 
int a,d,n1,n2,aj,bj,q;
cout<<"vvedite a"<<endl;
cin>>a;
cout<<"vvedite d"<<endl;
cin>>d;
cout<<"vvedite n1"<<endl;
cin>>n1;
Series* m=new Linear(a, d, n1);
cout << "The j_elem = "<<m->j_elem()<< endl;
cout << "Sum = "<<m->sum()<<endl;

cout<<"vvedite q"<<endl;
cin>>q;
cout<<"vvedite n2"<<endl;
cin>>n2;
Series* p=new Exponential(a, q, n2);
cout << "The j_elem = "<<p->j_elem()<< endl;
cout << "Sum = "<<m->sum()<<endl;


return 0;
}

Последний раз редактировалось Stilet; 13.11.2015 в 20:19.
Никита757 вне форума Ответить с цитированием
Старый 13.11.2015, 20:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наверное тебе нужно такое:
Код:
#include "stdafx.h"
#include <iostream>
#include <cmath>
 
using namespace std;
class Series {
public:
	double *a;
	int len;
	Series(int n) {	 a=new double[n];	 len=n; };
	~Series(){delete[]a;};
	virtual double sum(double d)=0;
};	

class Linear: public Series {
public:
	Linear(int n,double d):Series(n){
		a[0]=1;
		for(int i=1;i<len;i++) {a[i]=a[0]+i*d; cout<<a[i]<<',';} cout<<endl;
	};
	virtual double sum(double d){
		double s=0;
		for(int i=0;i<len;i++) s+=(len-1)*(a[0]+a[i]);
		return s;
	};
};

class Exponential : public Series {
public:
	Exponential (int n,double r):Series(n){
		a[0]=1;
		for(int i=1;i<len;i++) {a[i]=a[0]*pow(r,i); cout<<a[i]<<',';} cout<<endl;
	};
	virtual double sum(double r){
		double s=0;
		for(int i=0;i<len;i++) s+=(a[0] - a[i]*r) / (1-r);
		return s;
	};
};

int _tmain(int argc, _TCHAR* argv[])
{
	Linear l(5,2.3);
	Exponential e(5,2.3);
	cout<<l.sum(6)<<endl<<e.sum(6);
	cin.get();
	return 0;
}
Да?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2015, 21:28   #3
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию

Да, большое спасибо)
Никита757 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Series asiks1 C++ Builder 4 04.03.2013 01:10
Series-последовательности. L01 Помощь студентам 8 14.04.2012 20:30
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Радио в Series 40 5th fedakdenis Общие вопросы по Java, Java SE, Kotlin 0 14.06.2010 15:43
Разрыв в графике Series tavrocotaps Общие вопросы Delphi 8 07.12.2009 11:12