Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Angie
5 / 5 / 1
Регистрация: 10.03.2016
Сообщений: 303
#1

Виртуальные функции и полиморфизм

05.05.2013, 16:03. Просмотров 1017. Ответов 1
Метки нет (Все метки)

Создать абстрактный базовый класс с виртуальной функцией - сумма прогрессии. Создать производные классы: арифметическая прогрессия и геометрическая прогрессия. Каждый класс имеет два поля типа double. Первое - первый член прогрессии, второе (double) - постоянная разность (для арифметической) и постоянное отношение (для геометрической). Определить функцию вычисления суммы, где параметром является количество элементов прогрессии.
Арифметическая прогрессия aj=a0+jd, j=0,1,2,…
Сумма арифметической прогрессии: sn=(n+1)(a0+an)/2
Геометрическая прогрессия: aj=a0rj, j=0,1,2,…
Сумма геометрической прогрессии: sn=(a0-anr)/(1-r)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2013, 16:03
Ответы с готовыми решениями:

Полиморфизм, виртуальные функции
Помогите разобраться! В пласе Duck на переменную quacc выдает ошибку в классе...

Наследование и полиморфизм.Виртуальные функции
Помогите пожалуйста программу написать. Я новичок и еще не во всем...

Полиморфизм, виртуальные функции, перегрузка функций
Изменить программу предыдущей лабораторной работы, функцию определяющую бьет ли...

Реализовать иерархию классов (использовать наследование, полиморфизм, виртуальные функции)
Первый базовый класс – млекопитающие; поля – способ питания, вес, среда...

Написать реферат за пару часов на тему "Наследование, виртуальные функции и динамический полиморфизм"
Здравствуйте форумчане,нужна помощь. Помогите написать реферат за пару часов...

1
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
05.05.2013, 16:29 #2
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cmath>
 
class Progression {
 public:
  Progression(double first, double modifier) : first(first),
    modifier(modifier) {}
  double getFirst() const { return first; }
  double getModifier() const { return modifier; }
  void setFirst(double first) { this->first = first; }
  void setModifier(double modifier) { this->modifier = modifier; }
  virtual double getSum(size_t numberOfElements) const = 0;
 private:
  double first, modifier;
};
 
class ArithmeticProgression : public Progression {
 public:
  ArithmeticProgression(double first, double modifier)
    : Progression(first, modifier) {}
  virtual double getSum(size_t numberOfElements) const {
    return numberOfElements *
      (((2 * getFirst()) + (numberOfElements - 1) * getModifier()) / 2);
  }
};
 
class GeometricProgression : public Progression {
 public:
  GeometricProgression(double first, double modifier)
    : Progression(first, modifier) {}
  virtual double getSum(size_t numberOfElements) const {
    return (getFirst() * (1 - pow(getModifier(), numberOfElements))) /
      (1 - getModifier());
  }
};
 
int main(int argc, char *argv[]) {
  ArithmeticProgression a(0.1, 0.2);
  std::cout << a.getSum(5) << std::endl;
 
  GeometricProgression b(1, 2);
  std::cout << b.getSum(5) << std::endl;
  return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2013, 16:29

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции...

Полиморфизм, дружественные функции
Всем привет! Имеется такая конструкция: class Base { public: Base();...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru