0 / 0 / 0
Регистрация: 19.02.2017
Сообщений: 4
1

Классы

21.03.2017, 17:48. Показов 344. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Я совсем новичок в программировании, помогите мне, пожалуйста с кодом, очень нужно.
Вот у меня была такая программа.
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    int a, b, c, L, F0, E;
 
    cout << "Vvedite a: ";
    cin >> a;
    cout << "Vvedite b: ";
    cin >> b;
    cout << "Vvedite L: ";
    cin >> L;
    cout << "Vvedite F0: ";
    cin >> F0;
    if (a<=500 && a>=-500 && b<=500 && b>=-500 && L<=500 && L>=-500 && F0<=500 && F0>=-500)
 
    {   int Ft[10]={10,222,3,444,5,55,34,4,43,4};
            int i;
            for (i=0; i <10; i++) Ft[i]=i; {
 
        E = a + b*cos(((2*3.1415926535897932384626433832795)/L)*Ft[i] + F0);
  
        cout << "E:"<< E << endl;
 
    }
    }
 
    else
    {
        cout << "Nevernoe znachenie parametrov" << endl;
    }
 
 
    return 0;
}
Несложно понять, что она вычисляет)) Но преподаватель мне сказал, что там должны использоваться классы. Должно быть что-то вроде этого (это максимум, который я смогла понять и сделать сама, а как всё это объединить в одно не знаю)
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
#include <iostream>
#include <cmath>
#include <math.h>
using namespace std;
 
double cosC(double x,
             double a,
             double b,
             double lambda,
             double f0)
 
{
    return a + b*cos(((2*3.1415926535897932384626433832795)/lambda)*x + f0);
}
 
double *cosC(double xMin,
            double xMax,
            int nx,
             double a,
             double b,
             double lambda,
             double f0)
{
    double *mas_new = new double[nx];
    double hx=(xMax-xMin)/nx;
    double X=xMin;
    for(int x=0; x<nx; x++)
    {
        mas_new[x] = cosC(X,a,b,lambda,f0);
        X=X+hx;
    }
return mas_new;
}
 
double *cosC(double x,
            double a,
            double b,
            double lambdaMin,
            double lambdaMax,
            int nlam,
            double f0)
{
    double *mas_lam = new double[nlam];
    double hlam=(lambdaMax-lambdaMin)/nlam;
    double L=lambdaMin;
    for(int l=0; l<nlam; l++)
    {
        mas_lam[l] = cosC(l,a,b,x,f0);
        l+=hlam;
    }
return mas_lam;
}
Ну, то есть делать она должна то же самое - посчитать по формуле, только с использованием классов. Помогите, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2017, 17:48
Ответы с готовыми решениями:

Непонятна тема (Классы содержащие другие классы, как данные члены )
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class...

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

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

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

10
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.03.2017, 18:23 2
Цитата Сообщение от MaryWatson Посмотреть сообщение
Несложно понять, что она вычисляет))
сложно
Цитата Сообщение от MaryWatson Посмотреть сообщение
Но преподаватель мне сказал, что там должны использоваться классы
А зачем они там? Как я понял, вычисляется какая-то формула, так сделайте её в виде функции.
0
0 / 0 / 0
Регистрация: 19.02.2017
Сообщений: 4
21.03.2017, 19:24  [ТС] 3
Она вычисляет вот эту формулу E = a + b*cos(((2*3.1415926535897932384626433832795)/L)*Ft[i] + F0).
А классы нужны скорее всего для того, чтобы потом сделать графический интерфейс в VS. Буду благодарна за помощь)
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.03.2017, 20:01 4
Цитата Сообщение от MaryWatson Посмотреть сообщение
Она вычисляет вот эту формулу E = a + b*cos(((2*3.1415926535897932384626433832795)/L)*Ft[i] + F0).
А классы нужны скорее всего для того, чтобы потом сделать графический интерфейс в VS. Буду благодарна за помощь)
Сделайте функцию типа такой:
C++
1
2
3
4
5
6
double getSomething(double a, double b, double L /* и другие параметры */)
{
  double result;
  // вычисляем
  return result;
}
И пихайте её куда угодно, хоть в класс
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
21.03.2017, 20:14 5
Цитата Сообщение от MaryWatson Посмотреть сообщение
C++
1
2
#include <cmath>
#include <math.h>
- зачем 2 math-a-то прикладывать, cmath приложили да и все.
Класса, как я понимаю должен быть примерно такой:
C++
1
2
3
4
5
6
7
8
9
10
11
class CFunction
{
private:
    double x, a, b, lambda, f0;
public:
    void virtual Function(void)
    {
        return (a + b*cos(((2*M_PI)/lambda)*x + f0));
    }
    //Ну вобщем тут мы можем перегрузить все эти ваши функции и даже использовать одно название.:)
}
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.03.2017, 20:29 6
C++
1
2
3
4
void virtual Function(void)
{
    return (a + b*cos(((2*M_PI)/lambda)*x + f0));
}
DemolitionMan, и как это должно работать?
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
21.03.2017, 20:37 7
Ну вот так примерно. Члены-переменные функции, лучше сделать публичными:
C++
1
2
3
4
5
6
7
8
9
10
class CFunction
{
public:
    double x, a, b, lambda, f0;
    double virtual Function(void)
    {
        return (a + b*cos(((2*M_PI)/lambda)*x + f0));
    }
    //Ну вобщем тут мы можем перегрузить все эти ваши функции и даже использовать одно название.:)
}
Цитата Сообщение от DevAlone Посмотреть сообщение
DemolitionMan, и как это должно работать?
- ну как, как. Заводите статический объект класса, потом наполняете его переменными, а потом вызываете функцию. И все!!!!! А в чем трудность-то здесь на Ваш взгляд?
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.03.2017, 22:25 8
Цитата Сообщение от DemolitionMan Посмотреть сообщение
- ну как, как. Заводите статический объект класса, потом наполняете его переменными, а потом вызываете функцию. И все!!!!! А в чем трудность-то здесь на Ваш взгляд?
В том, что код не скомпилируется, функция должна возвращать void а вы говорите ей возвращать double. И virtual тут не нужен, если наследование не планируется.
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
22.03.2017, 06:15 9
Цитата Сообщение от DevAlone Посмотреть сообщение
И virtual тут не нужен, если наследование не планируется.
- я же перегрузку заложил, потому что у нее функций целая куча, причем здесь наследование-то? void исправил на double, это мой косяк, да, поторопился.
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
22.03.2017, 06:31 10
Цитата Сообщение от MaryWatson Посмотреть сообщение
Несложно понять
Сложно.
Цитата Сообщение от DevAlone Посмотреть сообщение
А зачем они там?
Потому что это задание из ВУЗа.
Цитата Сообщение от DemolitionMan Посмотреть сообщение
Члены-переменные функции, лучше сделать публичными:
Почему и зачем?
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.03.2017, 18:14 11
Цитата Сообщение от DemolitionMan Посмотреть сообщение
- я же перегрузку заложил, потому что у нее функций целая куча, причем здесь наследование-то?
Для перегрузки функций нужно две и более функций с одинаковым именем, но разной сигнатурой(в сигнатуру входит имя и параметры), а virtual нужен для того, чтобы по указателю на базовый класс вызывать методы класса-наследника, т.е.
C++
1
2
3
4
5
6
7
8
9
10
11
class Parent
{
  void method() { cout << "parent"; }
}
class Child : public Parent
{
  void method() { cout << "child"; }
}
...
Parent *p = new Child;
p->method();
Выведет "parent", а
C++
1
2
3
4
5
6
7
8
9
10
11
class Parent
{
  virtual void method() { cout << "parent"; }
}
class Child : public Parent
{
  void method() { cout << "child"; }
}
...
Parent *p = new Child;
p->method();
выведет "child"
0
22.03.2017, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2017, 18:14
Помогаю со студенческими работами здесь

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

Классы, включающие другие классы
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) ...

классы/дочерние классы/методы
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл...

Классы возможностей(Mixin классы)
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru