0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 19

Описать класс для хранения массива чисел

09.03.2017, 08:19. Показов 1530. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать класс для хранения массива чисел. Перегрузить в классе оператор *, который должен находить произведение четных элементов двух массивов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2017, 08:19
Ответы с готовыми решениями:

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

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

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

3
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
09.03.2017, 09:13
Лучший ответ Сообщение было отмечено Kanna как решение

Решение

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
using System;
 
class Program
{
    static void Main()
    {
        MyArray a = new MyArray(new double[] {-1.0, 1.0, 2.0, 3.0, 4.1, 5.0});
        MyArray b = new MyArray(new double[] { 6.0, 7.5, 8.0, 9.9, 10.3 });
        Console.WriteLine(a * b);
        Console.ReadKey();
    }
}
 
class MyArray
{
    double[] array;
    public double Length
    {
        get { return array.Length; }
        private set { }
    }
 
    public MyArray()
    {
        array = new double[0];
    }
 
    public MyArray(double[] array)
    {
        this.array = new double[array.Length];
        for (int i = 0; i < array.Length; i++)
            this.array[i] = array[i];
    }
 
    public double this[int index]
    {
        get { return array[index]; }
        set
        {
            if (index >= 0 && index < array.Length)
                array[index] = value;
        }
    }
 
    public static double operator* (MyArray a, MyArray b)
    {
        double mul = 1;
 
        for (int i = 0; i < a.Length; i++)
            if (a[i] % 2 == 0)
                mul *= a[i];
 
        for (int i = 0; i < b.Length; i++)
            if (b[i] % 2 == 0)
                mul *= b[i];
 
        return mul;
    }
}
В конструкторе и в перегрузке* можно использовать Array.Copy, если нужно сократить код.
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 19
09.03.2017, 09:24  [ТС]
Pikemaster, вы можете поставить комментарии к ключевым местам? Что-то не совсем понятно как работает.
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
09.03.2017, 11:14
Лучший ответ Сообщение было отмечено Kanna как решение

Решение

Kanna,
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
class MyArray
{
    double[] array;
 
    // свойство, возвращающее длину массива
    public double Length    
    {
        get { return array.Length; }
        private set { }
    }
 
    // конструктор по умолчанию
    public MyArray() { }
 
    // конструктор, принимающий в качестве параметра массив
    public MyArray(double[] array)  
    {
        // выделяем память на нашего массива
        this.array = new double[array.Length];
        // записываем значения из переданного в конструктор массива в наш массив
        for (int i = 0; i < array.Length; i++)  
            this.array[i] = array[i];
    }
 
    // итератор класса, позволяет обращаться к объекту класса как к массиву (по индексу)
    // например, см. реализацию перегрузки оператора *
    public double this[int index]   
    {
        get { return array[index]; }    
        set
        {
            if (index >= 0 && index < array.Length) // проверка индекса на соответствие разрешенному диапазону
                array[index] = value;
        }
    }
 
    // перегрузка оператора *
    public static double? operator *(MyArray a, MyArray b)  
    {
        // переменная, содержащая результат умножения (тип double? допускает значение null)
        double? mul = 1.0;
 
        // находим четные числа в первом массиве и перемножаем
        for (int i = 0; i < a.Length; i++)  
            if (a[i] % 2 == 0)
                mul *= a[i];
        // аналогично для второго массива
        for (int i = 0; i < b.Length; i++)  
            if (b[i] % 2 == 0)
                mul *= b[i];
        // возвращаем результат умножения или null, если в обоих массивах нет ни одного четного числа
        return mul == 1.0 ? null : mul;
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2017, 11:14
Помогаю со студенческими работами здесь

Описать класс для хранения информации о заказах
Описать класс для хранения следующей информации: номер заказа, дата заказа, стоимость, код исполнителя, дата выполнения. Все...

Для хранения данных о ноутбуках описать класс Notebook
Для хранения данных о ноутбуках описать класс Notebook, который содержит структуру struct DispRes // расширение экрана { int x,y; } ...

Описать класс "автостоянка" для хранения сведений об автомобилях
Помогите пожалйуста с реализацией задачи! Описать класс «автостоянка» для хранения сведений об автомобилях. Для каждого автомобиля...

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и...

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


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

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

Новые блоги и статьи
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru