Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12

Нужна головная программа для класса Array

15.11.2012, 13:54. Показов 2410. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код
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
#include "stdafx.h" 
#include "conio.h" 
#include "stdio.h" 
#include "math.h" 
#include "time.h" 
#include "iostream" 
 
using namespace std; 
class Array 
{int *a,m; 
public: 
Array(int nm=1, int t=1, int d=10); 
Array(int *, int ); 
Array(Array &); 
~Array(){ 
if(a)delete []a; 
} 
Array operator +(Array&); 
Array operator =(Array&); 
int&operator[](int k); 
bool operator==(Array&); 
void vivod(); 
}; 
Array::Array(int nm, int t, int d) 
{ 
int i; 
a=new int[m=nm]; 
switch(t) 
{ 
case 1: a[0]=rand(); 
for(i=1;i<m;i++)>=a[i-1]+rand(); break; 
case 2: a[m-1]=rand(); 
for(i=m-2;i>=0;i--) 
a=a[i+1]+rand(); break; 
case 3: for(i=0;i<m;i++)>=rand(); break; 
} 
} 
Array::Array(Array&b) 
{a = new int [m=b.m]; 
for(int i=0; i<m;>=b.a; 
} 
Array::Array(int *b, int k){ 
a = new int [m=k]; 
int i; 
for(i=0; i<m;> = b; 
} 
Array Array::operator+(Array&b) 
{ 
Array c(m+b.m,0); 
int i,j,k; 
for(i=0, j=0, k=0; i<m><=b[j]) c[k]=a[i++]; 
else c[k]=b[j++]; 
c[k++]=a[i++]; 
while(j<b.m)>=b.a; 
return *this; 
} 
int &Array::operator[] (int k) 
{ 
if(k<0 || k>=m){ 
printf("Index %d za granicami massiva",k); 
exit(1); 
} 
return a[k]; 
} 
bool Array::operator ==(Array&b) 
{ 
int i; 
if(m=b.m){ 
for(i=0;i<m;i++)>!=b.a){ 
return 0; 
} 
if(i==m) 
return 1; 
} 
return 0; 
} 
void Array::vivod(){ 
 
printf("\n"); 
for(int i=0; i<m;>); 
}
осталось дописать головную программу, но ничего в голову не идет, помогите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2012, 13:54
Ответы с готовыми решениями:

как пишется головная программа?
Ребят,нужно написать головную программу с использованием модуля(в который входит функция и процедура,они готовые есть). как собственно ее...

Перегрузка операторов для класса Array
Здравствуйте, у меня есть созданный класс array, для него нужно перегрузить операторы &lt;&lt;. &gt;&gt;, =, ==, !=, , +, -, / и *. У...

Перегрузки операторов для класса Array
Здравствуйте.Помогите разобраться с перегрузками,пожалуйста. Перегрузки: 1)операции ++ (– –): одновременно увеличивает (уменьшает)...

29
 Аватар для margarin
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
15.11.2012, 15:12

Не по теме:

я рад, что ты поставил тег cpp, пояснил что этот код делает и должен делать. Но, ничего стршного)



Добавлено через 10 минут

Не по теме:

З.Ы. Приношу свои извинения, сначала прочитал вопрос, потом повесил пост и только потом прочитал никнейм.

0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 15:42  [ТС]
этот код для класса массив.
C++
1
2
3
4
5
//operator+ -объединение массивов
//operator== сравнение
//operator= присвоение
//operator[] - перегрузка []
//vivod - вывод на экран массива
Код рабочий, при компилировании ошибок нет
0
 Аватар для margarin
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
15.11.2012, 15:44
Я наверное слаб в этом... Так что должна делать "головная программа", ну примерно, что в ней должно быть?
0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 16:09  [ТС]
Цитата Сообщение от margarin Посмотреть сообщение
Так что должна делать "головная программа", ну примерно, что в ней должно быть?
программа должна вызывать эти член-функции, в первую очередь создав объект. Начало есть:

C++
1
2
3
4
5
6
7
void main(){
    srand(time(0)); 
    int c[5]={1,2,3,4,5};
    int m=5;
    Array a(c,m);
    a.Print();
}
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
15.11.2012, 17:04
Цитата Сообщение от Anna1993 Посмотреть сообщение
осталось дописать головную программу
То, что вы написали даже не откопмилируется, не говоря уже о других ошибках...
0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 17:26  [ТС]
Цитата Сообщение от rangerx Посмотреть сообщение
То, что вы написали даже не откопмилируется, не говоря уже о других ошибках...
все прекрасно компилируется в Viisual Studio 2010, ошибок нет
0
15.11.2012, 17:27

Не по теме:

Цитата Сообщение от Anna1993 Посмотреть сообщение
Код рабочий, при компилировании ошибок нет
Цитата Сообщение от rangerx Посмотреть сообщение
То, что вы написали даже не откопмилируется, не говоря уже о других ошибках...
хм, а я себе уже шею скрутил, код рассматривать, пытаясь понять с какой стороны он рабочий)

0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
15.11.2012, 17:34
Уж даже не знаю как это дело компилируется у вас. Подобную запись я встречаю впервые.
C++
1
for(i=1;i<m;i++)>=a[i-1]+rand();
И даже молчу вот про такую:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array Array::operator+(Array&b) 
{ 
    Array c(m+b.m,0); 
    int i,j,k; 
 
    for(i=0, j=0, k=0; i<m><=b[j])
        c[k]=a[i++]; 
    else c[k]=b[j++]; 
        c[k++]=a[i++]; 
 
    while(j<b.m)>=b.a; 
 
    return *this; 
}
Компилятор должен опплеваться синтаксическими ошибками.
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
15.11.2012, 17:45
оно работает...
но КАК ???
0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 17:54  [ТС]
с выводом маленько косяк:
C++
1
2
3
4
5
6
void Array::vivod(){
 
    printf("\n");
    for(int i=0; i<m; i++)
        printf("%d ",a[i]);
}
Добавлено через 3 минуты
Цитата Сообщение от Afflicted Посмотреть сообщение
Уж даже не знаю как это дело компилируется у вас. Подобную запись я встречаю впервые.
C++
1
for(i=1;i<m;i++)>=a[i-1]+rand();
И даже молчу вот про такую:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array Array::operator+(Array&b) 
{ 
    Array c(m+b.m,0); 
    int i,j,k; 
 
    for(i=0, j=0, k=0; i<m><=b[j])
        c[k]=a[i++]; 
    else c[k]=b[j++]; 
        c[k++]=a[i++]; 
 
    while(j<b.m)>=b.a; 
 
    return *this; 
}
Компилятор должен опплеваться синтаксическими ошибками.
блин, тут что-то при редактировании что-то изменилось.. у меня в коде совершенно другое..:
C++
1
2
3
4
5
6
7
8
9
10
11
12
Array Array::operator+(Array&b)
{
    Array c(m+b.m,0);
    int i,j,k;
    for(i=0, j=0, k=0; i<m && j<b.m; k++)
        if(a[i]<=b[j]) c[k]=a[i++];
        else c[k]=b[j++];
        c[k++]=a[i++];
    while(j<b.m)
        c[k++]=b[j++];
    return c;
}
Добавлено через 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
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
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "math.h"
#include "time.h"
#include "iostream"
 
using namespace std;
class Array
{int *a,m;
public:
    Array(int nm=1, int t=1, int d=10);
    Array(int *, int );
    Array(Array &);
    ~Array(){
        if(a)delete []a;
    }
    Array operator +(Array&);
    Array operator =(Array&);
    int&operator[](int k);
    bool operator==(Array&);
    void vivod();
};
Array::Array(int nm, int t, int d)
{
    int i;
    a=new int[m=nm];
    switch(t)
    {
    case 1: a[0]=rand()%10;
        for(i=1;i<m;i++)
            a[i]=a[i-1]+rand()%10; break;
    case 2: a[m-1]=rand()%10;
        for(i=m-2;i>=0;i--)
            a[i]=a[i+1]+rand()%10; break;
    case 3: for(i=0;i<m;i++)
                a[i]=rand()%10; break;
    }
}
Array::Array(Array&b)
{a = new int [m=b.m];
    for(int i=0; i<m; i++)
        a[i]=b.a[i];
}
Array::Array(int *b, int k){
    a = new int [m=k];
    int i;
    for(i=0; i<m; i++)
        a[i] = b[i];
}
Array Array::operator+(Array&b)
{
    Array c(m+b.m,0);
    int i,j,k;
    for(i=0, j=0, k=0; i<m && j<b.m; k++)
        if(a[i]<=b[j]) c[k]=a[i++];
        else c[k]=b[j++];
        c[k++]=a[i++];
    while(j<b.m)
        c[k++]=b[j++];
    return c;
}
Array Array::operator =(Array&b)
{
    if(a) delete []a;
    a = new int [m=b.m];
    for(int i=0; i<m; i++)
        a[i]=b.a[i];
    return *this;
}
int &Array::operator[] (int k)
{
    if(k<0 || k>=m){
        printf("Index %d za granicami massiva",k);
        exit(1);
    }
    return a[k];
}
bool Array::operator ==(Array&b)
{
    int i;
    if(m=b.m){
        for(i=0;i<m;i++)
            if(a[i]!=b.a[i]){
                return 0;
            }
            if(i==m)
                return 1;
    }
    return 0;
}
void Array::vivod(){
 
    printf("\n");
    for(int i=0; i<m; i++)
        printf("%d ",a[i]);
}
0
15.11.2012, 17:54

Не по теме:

упс, пока писал - уже опередили меня.

0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
15.11.2012, 17:59
фух слава богу а то я думал у меня компилятор сломался (mingw gcc)
0
18 / 18 / 4
Регистрация: 11.01.2008
Сообщений: 51
15.11.2012, 18:03
С ошибками в строках: 30, 34, 35, 39, 40, 45, 51, 54, 68, 69, 80
такая программа никогда работать не будет.
Возможно эти ошибки возникли при копироании текста, т.к.
самостоятельно их сделать практически невозможно.
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
15.11.2012, 18:05
тут по ходу косяк.
C++
1
2
3
4
5
bool Array::operator ==(Array&b)
{
    int i;
if (m = b.m)
    {
0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 18:10  [ТС]
Цитата Сообщение от XRuZzz Посмотреть сообщение
тут по ходу косяк. но так в любом случае никто не делает
C++
1
2
3
4
5
bool Array::operator ==(Array&b)
{
    int i;
if (m = b.m)
    {
тут нет, нам это так объяснялось.. тут мы сравниваем размерности 2х массивов
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
15.11.2012, 18:11
= это знак присвоения.
сравнивать нужно таким знаком ==
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
15.11.2012, 18:14
у вас получается m присваиваем b.m и если поле m не равно 0 то выполняется условие.
вообще такие вещи в коде опытные люди проверяют регулярными выражениями по всему проекту.
так же как и конструкцию типа if (a==b); (точка с запятой в конце)
0
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 12
15.11.2012, 18:20  [ТС]
Цитата Сообщение от XRuZzz Посмотреть сообщение
у вас получается m присваиваем b.m и если поле m не равно 0 то выполняется условие.
вообще такие вещи в коде опытные люди проверяют регулярными выражениями по всему проекту.
так же как и конструкцию типа if (a==b); (точка с запятой в конце)
C++
1
2
3
4
bool Array::operator ==(Array&b)
{
    int i;
    if(m==b.m){
так верно?

Добавлено через 1 минуту
я бы и не сказала, что я опытный программист, как учат, так и делаем..
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
15.11.2012, 18:21
а что бы проверять верно или нет работает метод опытные люди пишут так называемые юнит-тесты. Это грубо говоря такие функции, которые проверяют, что на выходе даёт метод
я к тому что надо создать два одинаковых объекта и попробовать их сравнить
собственно ваш main наверно и должен быть похож на юнит тест
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2012, 18:21
Помогаю со студенческими работами здесь

Нужна программа с использованием класса String
Здравствуйте, нужна ваша помощь. Требуется написать программу, используя только пункты 3,5,8 и 12 3) class STRING { public: ...

Нужна любая программа с использованием собственного класса
Не слишком большая. Класс треугольник, комплексное число, любая геометрическая фигура да все равно что. С меня магарыч).

программа для вычисления среднего геометрического элементов массива array[15] удовлетворяющих условию
Вот моя программа для вычисления среднего геометрического элементов массива array удовлетворяющих условию 5&lt;=array&lt;=15. Вроде всё...

Какая нужна комплектация для Учебного класса института на 10 мест для комфортной работы на лабораторных по информатике?
Посоветуйте какая нужна комплектация(наиболее частые применяемые программы,и исходя из этого ос,процессор,мат.плата,оперативная...

Для чего нужна частичная специализация шаблона класса?
Доброго времени суток объясните пожалуйста зачем нужна частичная специализация шаблонов класса


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru