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

Перегрузка оператора +

23.02.2017, 19:10. Показов 708. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
начал делать задание в котором описать класс для хранеия массива чисел, перегрузить в классе оператор +, который должен слаживать среднее арифметическое 2 массивов, я сделал но программа только выбирате последние числа в массиве и слаживает их
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
class mytka
{
    public int[] mass;
    public static int x;
    public mytka()
    {
        Console.WriteLine("Введиет размер массива");
        x = int.Parse(Console.ReadLine());
        mass = new int[x];
        Random rnd = new Random();
        for (int i = 0; i < x; i++)
        {
            mass[i] = rnd.Next(25);
            Console.Write(mass[i] + "\t");
        }
    }
    public static int operator +(mytka obj1, mytka obj2)
    {
 
        int a, b, i;
        a = 0;
        for (i = 0; i < obj1.mass.Length; i++)
        {
            a += obj1.mass[i];
            a = a / obj1.mass[i];
            a = obj1.mass[i];
        }
        b = 0;
        for (i = 0; i < obj2.mass.Length; i++)
        {
            b += obj2.mass[i];
            b = b / obj2.mass[i];
            b = obj2.mass[i];
 
        }
 
        Console.WriteLine("Среднее арифметическое 1-го : {0} Среднее арифметическое 2-го : {1}", a, b);
        return a+b;
    }
}
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            mytka io1 = new mytka();
            Console.WriteLine();
            mytka io2 = new mytka();
            Console.WriteLine();
            int x;
            x = io1 + io2;
            Console.WriteLine(x);
            Console.ReadLine();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2017, 19:10
Ответы с готовыми решениями:

Перегрузка оператора <<
Здравствуйте, форумчане. Нужно в классе перегрузить оператор &lt;&lt;. Так не получается. В чем...

Перегрузка оператора *
Надо перегрузить оператор * найти площадь треугольника по формуле герона Сделал все что смог ...

Перегрузка оператора ==
Вот код:public static bool operator ==(Tree LeftTree, Tree RightTree) { if (LeftTree== null...

Перегрузка оператора >
хочу перегрузить оператор &gt;, но не получается ... вот часть кода: public train Error = new...

6
Эксперт .NET
17678 / 12864 / 3365
Регистрация: 17.09.2011
Сообщений: 21,132
23.02.2017, 19:12 2
Цитата Сообщение от jyn333 Посмотреть сообщение
C#
1
2
3
a += obj1.mass[i];
a = a / obj1.mass[i];
a = obj1.mass[i];
Что делает последняя строчка?
0
0 / 0 / 0
Регистрация: 20.10.2016
Сообщений: 6
23.02.2017, 19:29  [ТС] 3
Среднее арифметическое находит, типо
0
Эксперт .NET
17678 / 12864 / 3365
Регистрация: 17.09.2011
Сообщений: 21,132
23.02.2017, 19:34 4
Цитата Сообщение от jyn333 Посмотреть сообщение
типо
Э?

Последняя строчка просто присваивает переменной а значение текущего элемента массива.
Вам надо убрать из цикла вторую и третью строчки, оставив только первую.
Потом сразу же после цикла разделите значение переменной "а" на общее количество элементов в массиве, предварительно проверив его на 0.
И сделайте а типом double, а то целое среднее арифметическое — штука редкая.
0
0 / 0 / 0
Регистрация: 20.10.2016
Сообщений: 6
23.02.2017, 20:15  [ТС] 5
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
class mytka
{
    public int[] mass;
    public static int x;
    public mytka()
    {
        Console.WriteLine("Введиет размер массива");
        x = int.Parse(Console.ReadLine());
        mass = new int[x];
        Random rnd = new Random();
        for (int i = 0; i < x; i++)
        {
            mass[i] = rnd.Next(25);
            Console.Write(mass[i] + "\t");
        }
    }
    public static int operator +(mytka obj1, mytka obj2)
    {
 
        int  i;
        double a = 0;
        double b = 0;
        for (i = 0; i < obj1.mass.Length; i++)
        {
            a += obj1.mass[i];
            
        }
        if (a % i==0)
       
        
       
        for (i = 0; i < obj2.mass.Length; i++)
        {
            b += obj2.mass[i];
            
        }
        if (b % i ==0 )
 
        Console.WriteLine("Среднее арифметическое 1-го : {0} Среднее арифметическое 2-го : {1}" , a,b);
        return 0;
    }
}
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            mytka io1 = new mytka();
            Console.WriteLine();
            mytka io2 = new mytka();
            Console.WriteLine();
            int x;
            x = io1 + io2;
            Console.WriteLine(x);
            Console.ReadLine();
        }
    }
}
0
Эксперт .NET
17678 / 12864 / 3365
Регистрация: 17.09.2011
Сообщений: 21,132
23.02.2017, 20:33 6
Цитата Сообщение от jyn333 Посмотреть сообщение
C#
1
if (a % i==0)
Здесь выполняется проверка: делится ли "а" на "i" без остатка.
Вам не нужно находить остаток и проверять на его наличие, вам нужно "а" разделить на количество элементов в массиве.
Ну или просто на i, значение которой по окончании цикла будет равно длине массива.
0
0 / 0 / 0
Регистрация: 20.10.2016
Сообщений: 6
23.02.2017, 21:19  [ТС] 7
у меня еще один вопрос как мне сложить полученное среднее арифметическое?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class mytka
{
public int[] mass;
public static int x;
public mytka()
{
Console.WriteLine("Введиет размер массива");
x = int.Parse(Console.ReadLine());
mass = new int[x];
Random rnd = new Random();
for (int i = 0; i < x; i++)
{
mass[i] = rnd.Next(25);
Console.Write(mass[i] + "\t");
}
}
public static int operator +(mytka obj1, mytka obj2)
{

int i;
int a = 0;
int b = 0;
for (i = 0; i < obj1.mass.Length; i++)
{
a += obj1.mass[i];
}
if (a / i != 0)
Console.WriteLine("Среднее арифметическое 1-го массива:");
Console.WriteLine((double)a / i);
for (i = 0; i < obj2.mass.Length; i++)
{
b += obj2.mass[i];
}
if (b / i != 0)
Console.WriteLine("Среднее арифметическое 2-го массива");
Console.WriteLine((double)b / i);
return a+b ;
}
}

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
mytka io1 = new mytka();
Console.WriteLine();
mytka io2 = new mytka();
Console.WriteLine();
int x;
x = io1 + io2;
Console.WriteLine(x);
Console.ReadLine();
}
}
}
0
23.02.2017, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2017, 21:19
Помогаю со студенческими работами здесь

Перегрузка оператора +
Привет форумчане! Имеется следующий класс: public sealed class Point { ...

Перегрузка оператора
public Set operator &lt; (Set ob1, Set ob2) { if(ob1.len &gt; ob2.len) return false; ...

Перегрузка оператора +
Есть три класса: HallValue, FilmValue, Session. В HallValue есть поле Start (в нем время начала...

Перегрузка оператора %
Здравствуйте! Уже задавала похожий вопрос. Как переопределить оператор %, для нахождения процента...


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

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

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