Форум программистов, компьютерный форум CyberForum.ru

Нужна поправка - C++

Восстановить пароль Регистрация
 
nesquick
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 25
18.06.2012, 02:57     Нужна поправка #1
здравствуйте.поправьте,пожалуйста, моё убожество.написал сначала функциями.а нужно в ооп. объектами не могу написать (не дружу я с ними) я конечно попытался,но не вышло)) исправьте,пожалуйста.и,если можно,с объяснениями ошибок.
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
 
class mass
{
public:
    float mass()
{int A,B,C;
    int i,j,k;}
 
void Input(int* mas,int n)
{
    for(int i=0 ;i<n; i++)
    {
        mas[i] = (50)*(int)rand() / RAND_MAX - 25;
    }
}
void Output(int* mas,int n)
{
    for(int i=0; i<n; i++)
        cout<<mas[i]<<" ";
    cout<<endl;
}
int Sum(int* mas,int n,int k)
{
    int sum=0;
    for(int i=k;i<n;i++)
        sum+=mas[i];
    return sum;
}
int main()
{
    setlocale(0,"Rus");
    int N,M,P;
    cout << "Введите размер массива A: ";
    cin >> N;
    cout << "Введите размер массива B: ";
    cin >> M;
    cout << "Введите размер массива C: ";
    cin >> P;
    int* A=new int[N];
    int* B=new int[M];
    int* C=new int[P];
    Input(A,N);
    Input(B,M);
    Input(C,P);
    Output(A,N);
    Output(B,M);
    Output(C,P);
    cout << "Сумма массива A: " << Sum(A,N,7) << endl;
    cout << "Сумма массива B: " << Sum(B,M,0) << endl;
    cout << "Сумма массива C: " << Sum(C,P,0) << endl;
    cout << "Нажмите любую клавижу для выхода";
    delete[] A;
    delete[] B;
    delete[] C;
    _getch();
    return 0;
}
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 02:57     Нужна поправка
Посмотрите здесь:

C++ Нужна помощь
C++ нужна программка!!
нужна расшифровка C++
нужна програмка C++
Нужна помощь C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
18.06.2012, 07:10     Нужна поправка #2
C++
1
2
3
4
5
6
7
8
9
10
11
//в начале ф-ции main напиши
mass Object;
//потом замени 52-57 строки на эти и собственно всё
 
Object.Input(A, N);
Object.Input(B, M);
Object.Input(C, P);
 
Object.Output(A, N);
Object.Output(B, M);
Object.Output(C, P);
nesquick
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 25
18.06.2012, 08:39  [ТС]     Нужна поправка #3
благодарю

Добавлено через 17 минут
только вот теперь ругается на 15 строку(
vndtta
66 / 43 / 5
Регистрация: 17.10.2011
Сообщений: 146
Завершенные тесты: 1
18.06.2012, 10:52     Нужна поправка #4
там обычно компилятор пишет, что не так
может название метода с названием класса совпадает

а функции инпут аутпут как методы класса надо объявить
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,161
Завершенные тесты: 1
18.06.2012, 10:57     Нужна поправка #5
Цитата Сообщение от nesquick Посмотреть сообщение
Добавлено через 17 минут
только вот теперь ругается на 15 строку(
Конструктор не возвращает ничего, даже void писать не надо,
а у Вас написано float
vndtta
66 / 43 / 5
Регистрация: 17.10.2011
Сообщений: 146
Завершенные тесты: 1
18.06.2012, 11:18     Нужна поправка #6
кстати код с хабра
C++
1
2
3
4
5
6
7
8
template<int N> 
class Line;
 
template<int N>
ostream& operator<<(ostream&, const Line<N>&);
 
template<int N>
istream& operator>>(istream&, Line<N>&);
C++
1
2
3
4
5
6
7
8
9
10
template<int N>
class Line
{
    private:
        double Data[N];
    public:
        Line(const double = 0.0);
        friend ostream& operator<< <N>(ostream&, const Line<N>&); // <N> (!)
        friend istream& operator>> <N>(istream&, Line<N>&);
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template<int N>
Line<N> :: Line(const double default_)
{
    int i = 0;
    for(i = 0; i < N; ++i) Data[i] = default_;
}
 
template<int N>
ostream& operator<<(ostream& cout_, const Line<N>& obj_)
{
    int i = 0;
    for(i = 0; i < N; ++i) cout_ << obj_.Data[i] << ' ';
    return cout_;
}
 
template<int N>
istream& operator>>(istream& cin_, Line<N>& obj_)
{
    int i = 0;
    for(i = 0; i < N; ++i) cin_ >> obj_.Data[i];
    return cin_;
}
C++
1
2
3
4
5
6
7
8
int main(void)
{
    Line<3> mass;
    cout << "Enter the coefficients: ";
    cin >> mass;
    cout << mass << '\n';
    return 0;
}
nesquick
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 25
18.06.2012, 14:20  [ТС]     Нужна поправка #7
Цитата Сообщение от vndtta Посмотреть сообщение
там обычно компилятор пишет, что не так
может название метода с названием класса совпадает

а функции инпут аутпут как методы класса надо объявить
вот тут чуть поподробнее,пожалуйста.почему именно инпут и аутпут?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 15:44     Нужна поправка
Еще ссылки по теме:

Нужна практика C++
Нужна программа C++

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

Или воспользуйтесь поиском по форуму:
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
18.06.2012, 15:44     Нужна поправка #8
Цитата Сообщение от nesquick Посмотреть сообщение
cout << "Сумма массива A: " << Sum(A,N,7) << endl;
* * cout << "Сумма массива B: " << Sum(B,M,0) << endl;
* * cout << "Сумма массива C: " << Sum(C,P,0) << endl;
Вместо ф-ции Sum используйте Object.Sum(параметры ф-ции) и добавьте после определения функции Sum }
Yandex
Объявления
18.06.2012, 15:44     Нужна поправка
Ответ Создать тему
Опции темы

Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru