Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
2 / 4 / 1
Регистрация: 10.12.2012
Сообщений: 84

Классы C#

23.02.2013, 01:43. Показов 2855. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Определить абстрактный класс Progression, описывающий прогрессии. В нём определить абстрактный метод GetElement с целочисленным параметром k, возвращающий которой элемент прогрессии.
Определить два производных класса ArithmeticProgression и GeometricProgression, описывающие арифметическую и геометрическую прогрессии. В каждом из классов необходимо определить конструктор, задающий параметры прогрессии и перегрузить унаследованный метод GetElement.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2013, 01:43
Ответы с готовыми решениями:

Определить классы абстрактного выражения и классы для различных типов выражений
помогите Реализовать объектно-ориентированную модель, определяет математическое выражение, представлен в виде дерева. Определить классы...

Работа с файловой системой: классы Directory и Filе и классы DirectoryInfo и FileInfo
Уважаемые форумчане помогите пожалуйста с практической работой. Программным путем: В папке С:\temp создайте папки К1 и К2. В...

Непонятна тема (Классы содержащие другие классы, как данные члены )
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void...

5
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
23.02.2013, 19:53
Сам новичок в этом, но пытаюсь разобраться, так что только в качестве подспорья:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
namespace ConsoleApplication2
{
    abstract class Progression
    {
        public int f,l, k;
        private int _getVal;
        public void  GetValue(int val)
 
        {
            _getVal = val;
        }
 
        public int GetVal()
        {
            return _getVal;
        }
 
        public virtual string Progress()
         {
            string line = "";
            while (f < l)
            {
                line = f.ToString() + " ";
                f = f * k;
            } return line;
        }
    
    }
    class ArithmeticProgression : Progression
    {
        public override string Progress()
        {
            string line = "";
            while (f < l)
            {
                line =line + f.ToString() + " ";
                f = f + k;
            } return line;
        }
    }
 
    class GeometricProgression :  Progression
    {
        public override string Progress()
        {
            string line ="";
            while (f < l)
            {
                line = line + f.ToString() + " ";
                f = f * k;
            } return line;
        }
    }
 
 
 
    class Program
    {
        static void Main(string[] args)
        {   int i,j,x;
            string pr;
            Console.WriteLine("What to do? G - geometric progression, A - arithmetic progression");
            pr = Console.ReadLine();
            Console.WriteLine("Enter first value:");
            i = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter last value of diapason:");
            j = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter the step:");
            x = Convert.ToInt32(Console.ReadLine());
           
 
            if (pr == "G")
            {
                GeometricProgression val = new GeometricProgression();
                val.f = i;
                val.l = j;
                val.k = x;
                Console.WriteLine("Your value is {0}, diapason is {1}, step is {2}, type of math - {3}. Here is result: ", val.f, val.l, val.k, pr);
                Console.WriteLine(val.Progress());
                Console.ReadKey();
            } 
 
            if (pr == "A")
            {
                ArithmeticProgression val = new ArithmeticProgression();
                val.f = i;
                val.l = j;
                val.k = x;
                Console.WriteLine("Your value is {0}, diapason is {1}, step is {2}, type of math - {3}. Here is result: ", val.f, val.l, val.k, pr);
                Console.WriteLine(val.Progress());
                Console.ReadKey();
            }  
            else
            {
                Console.WriteLine("Wrong input");
                Console.ReadKey();
            }
             
        }
    }
}
Не очень разобрался с назначением конструктора в этой задаче, надеюсь на критику и поправки.
1
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
23.02.2013, 22:56
VoltDeMar, критика только одна -
C#
1
2
3
                val.f = i;
                val.l = j;
                val.k = x;
Я дам вам такой код для определенной задачи.
Вопрос,как его следует использовать? (не путать с решенной задачей)
0
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
24.02.2013, 00:20
Цитата Сообщение от Noob.net Посмотреть сообщение
VoltDeMar, критика только одна -
C#
1
2
3
                val.f = i;
                val.l = j;
                val.k = x;
Я дам вам такой код для определенной задачи.
Вопрос,как его следует использовать? (не путать с решенной задачей)
Я не достиг ещё такого уровня величия Noob.net . Говоря откровенно, суть вопроса не понял.
Хотя перечитав задачу, увидел что собрал не то что нужно.


Цитата Сообщение от Никита-92 Посмотреть сообщение
Определить абстрактный класс Progression, описывающий прогрессии.
Как класс должен описывать прогрессии ?

Цитата Сообщение от Никита-92 Посмотреть сообщение
В нём определить абстрактный метод GetElement с целочисленным параметром k, возвращающий которой элемент прогрессии.
выделенный текст непонятен.
метод должен возвращать один элемент прогрессии? если так то по какому критерию?
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
24.02.2013, 01:00
Цитата Сообщение от VoltDeMar Посмотреть сообщение
возвращать один элемент прогрессии? если так то по какому критерию?
Ну как критерий,цикл
C#
1
for(int i=1;i<=ElementProgressii;i++){//найти элемент ариф или геом}//вернуть элемент

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

Не по теме:

имена нормальные давай переменным - это первый шаг к адекватному коду



Добавлено через 26 минут
Что подразумевается под параметром прогрессии не понял.
Кликните здесь для просмотра всего текста
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
45
46
47
48
49
50
51
52
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp_Z1
{
    class Program
    {
 
        static void Main(string[] args)
        {
            Console.WriteLine("Vvedite nomer aryph");
            Arithmetic aryphmProg = new Arithmetic();
            Console.WriteLine(aryphmProg.GetElement(int.Parse(Console.ReadLine())));
            Console.WriteLine("Vvedite nomer geom");
            Geometric geomProg = new Geometric();
            Console.WriteLine(geomProg.GetElement(int.Parse(Console.ReadLine())));
            Console.ReadLine();
        }
    }
 
    abstract class Progression 
    {
        public virtual int GetElement(int numOfElem)
        {
            return 0;
        }
    }
    class Arithmetic : Progression
    {
        public override int GetElement(int numOfElem)
        {
            int k = 0;
            for (int i = 1; i <= numOfElem; i++)
                k += i;
            return k;
        }
    }
    class Geometric : Progression
    {
        public override int GetElement(int numOfElem)
        {
            int k = 1;
            for (int i = 1; i <= numOfElem; i++)
                k *= i; //еще проще через лямбды
            return k;
        }
    }
}
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.02.2013, 20:04
Лучший ответ Сообщение было отмечено как решение

Решение

еще проще можно
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
   abstract class Progression 
    {
        public virtual long GetElement(int numOfElem)
        {
            long a = 0;
            for (int i = 1; i <= numOfElem; i++)
                a = Operation(a,i);
            return a;
        }
         
        protected abstract long Operation;
    }
    class Arithmetic : Progression
    {
        protected override long Operation(int a, int i)
        {
            return a + i;
        }
    }
 
    class Geometric : Progression
    {
        protected override long Operation(int a, int i)
        {
            return a * i;
        }
    }
Добавлено через 1 минуту
Правда вместо Operation надо что-то получше придумать, но голова не варит )

Добавлено через 18 часов 25 минут
Под параметром прогрессии - значение a0 и разность (множитель) прогрессии. То есть как-то так
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
 
namespace ConsoleApplication35
{
    class Program
    {
        static void Main()
        {
            Progression progression = new Arithmetic(1,3);
            Console.WriteLine(progression.GetElement(10));
            progression = new Geometric(2,2);
            Console.WriteLine(progression.GetElement(5));
            Console.ReadKey();
        }
    }
 
    abstract class Progression
    {
        protected readonly int FirstValue;
        protected readonly int Param;
 
        protected Progression(int firstValue, int param)
        {
            FirstValue = firstValue;
            Param = param;
        }
 
        public abstract long GetElement(int n);
    }
    class Arithmetic : Progression
    {
        public Arithmetic(int firstValue, int d) : base(firstValue, d)
        {
        }
 
        public override long GetElement(int n)
        {
            return FirstValue + Param*(n - 1);
        }
    }
 
    class Geometric : Progression
    {
        public Geometric(int firstValue, int q) : base(firstValue, q)
        {
        }
 
        public override long GetElement(int n)
        {
            return FirstValue*Pow(Param, n - 1);
        }
 
        private long Pow(int param, int n)
        {
            long result = 1;
            for (int i = 0; i < n; i++)
                result *= param;
            return result;
        }
    }
}
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2013, 20:04
Помогаю со студенческими работами здесь

Структуры данных, коллекции и классы-прототипы. Библиотечные классы коллекций
Ребят в чём ошибки? Нужно чтобы добавляло поля... которые я создал... далее вот продолжение самого задания Изменить приложение,...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но через классы
Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но используя соотвественно классы И как...

Наследование, базовые классы и производные классы
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru