Вычислить сумму арифметической прогрессии интерфейсом - C#
Формулировка задачи:
вычислить сумму арифметической прогрессии интерфейсом
Решение задачи: «Вычислить сумму арифметической прогрессии интерфейсом»
textual
Листинг программы
using System;
namespace CyberForum
{
// определение интерфейса "Арифметическая прогрессия"
public interface IArithmeticProgression
{
/// возвращает значение itemIndex-го члена арифметической прогрессии
double GetItemValue(int itemIndex);
/// возвращает сумму первых itemsCount членов арифметической прогрессии
double GetSum(int itemsCount);
}
// класс, представляющий пример реализации интерфейса "Арифметическая прогрессия"
public class ExampleArithmeticProgression : IArithmeticProgression
{
private double FirstItem;
private double Difference;
public ExampleArithmeticProgression(double firstItem, double difference)
{
FirstItem = firstItem;
Difference = difference;
}
public double GetItemValue(int itemIndex)
{
return FirstItem + Difference * (itemIndex - 1);
}
public double GetSum(int itemsCount)
{
// формула суммы N первых членов арифметической прогрессии:
// S = (2 * a1 + d * (N - 1)) * N / 2;
double result = (2.0 * FirstItem + Difference * (itemsCount - 1)) * itemsCount / 2.0;
return result;
}
}
}