Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- //using MyLib;
- public class GeomProgr
- {
- // поле класса - счетчик созданных объектов:
- public static uint objectNumber = 0;
- double _b; // первый член прогрессии b!=0
- double _q; // знаменатель прогрессии q!=0
- public double B
- {
- get { return _b; }
- set
- {
- if (value == 0)
- throw new ArgumentException("Недопустимое значение первого члена прогрессии!");
- _b = value;
- }
- }
- public double Q
- {
- get { return _q; }
- set
- {
- if (value == 0)
- throw new ArgumentException("Недопустимое значение знаменателя прогрессии!");
- _q = value;
- }
- }
- public GeomProgr()
- {
- B = 1;
- Q = 1;
- objectNumber++;
- Console.WriteLine(objectNumber + ": Конструктор без параметров");
- }
- // Конструктор общего вида (конструктор с параметрами):
- public GeomProgr(double b, double q) : this()
- {
- if (b == 0 || q == 0)
- {
- objectNumber--;
- throw new ArgumentException("Ошибка в аргументах конструктора!");
- }
- B = b;
- Q = q;
- Console.WriteLine(objectNumber + ": Конструктор с параметрами");
- }
- public double this[int n]
- { // n-ый член прогрессии
- get
- {
- return B * Math.Pow(Q, n - 1);
- }
- }
- public double ProgrSum(int n)
- { // сумма n членов прогрессии
- if (Q == 1)
- {
- return (n - 1) * Q + B;
- }
- return B * (Math.Pow(Q, n) - 1) / (Q - 1);
- } // end of ProgrSum()
- } // end of class GeomProgr
- class Program
- {
- static void Main()
- {
- GeomProgr geomProgrObj= null; // ссылка на объект типа GeomProgr
- bool flag;
- int b, q;
- do
- {
- flag = false;
- try
- {
- Console.Write("Введите начальный член прогрессии: ");
- b = int.Parse(Console.ReadLine());
- Console.Write("Введите знаменатель прогрессии: ");
- q = int.Parse(Console.ReadLine());
- geomProgrObj = new GeomProgr(b, q); // создаем объект 2
- }
- catch (Exception e)
- { // ловим любые исключения
- flag = true;
- Console.WriteLine("Некорректные входные данные! ");
- }
- } while (flag);
- int n=0;
- flag = false;
- do
- {
- flag = false;
- try
- {
- Console.Write("Введите колличество членов прогрессии: ");
- n = int.Parse(Console.ReadLine());
- }
- catch (Exception e)
- { // ловим любые исключения
- flag = true;
- Console.WriteLine("Некорректные входные данные! ");
- }
- } while (flag);
- double ans=geomProgrObj[n];
- double sum = geomProgrObj.ProgrSum(n);
- Console.WriteLine($"n-ый член прогрессии = {ans}. Сумма = {sum}");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement