Класс для работы с одномерным массивом целых чисел. Что я делаю не так? - C#
Формулировка задачи:
Кто может подсказать что делаю не так , не получается задание
Создать класс для работы с одномерным массивом целых чисел.
Разработать следующие члены класса:
1. Поля:
• Для хранения значений;
2. Конструкторы, позволяющие создать экземпляр класса:
• с размерностью n;
• с размерностью n и заданными данными.
3. Методы, позволяющие:
• ввести элементы массива с клавиатуры;
• вывести элементы массива на экран;
• отсортировать элементы массива в порядке возрастания.
4. Свойство:
• возвращающее размерность массива
• позволяющее домножить все элементы массива на скаляр
Индексатор, позволяющий по индексу обращаться к соответствующему элементу
массива.
5. Перегрузку:
• операции ++ (--): одновременно увеличивает (уменьшает) значение всех элементов
массива на 1;
• операции !: возвращает значение true, если элементы массива не упорядочены по
возрастанию, иначе false;
• бинарные +-*/:
o одновременно добавляет к значениям значение скаляра .
o складывает значения при сложении одинаковых типов.
• операции преобразования класса массив в одномерный массив (и наоборот).
Продемонстрировать работу класса.
Листинг программы
- ///////////////////////
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Task_
- {
- public class MyArr
- {
- //модификаторы доступа!!
- int[] IntArray; //объявляем первое поле
- int n; //объявляем второе поле
- public MyArr(int[] a, int b) //создаем конструктор
- {
- IntArray = a;
- n = b;
- }
- public void Razmer() //создаем метод для заполнения массива и вывода его на экран
- {
- Console.WriteLine("Введите количество элементов массива");
- int n = int.Parse(Console.ReadLine());
- int[] Array = new int[n];
- Console.WriteLine("Введите элементы массива");
- for (int i = 0; i < n; i++)
- {
- Array[i] = int.Parse(Console.ReadLine());
- }
- }
- public void PrintToConsole() //создаем метод для вывода массива на экран
- {
- Console.Write("Массив: ");
- int count = 0; //создаем счетчик для проверки пустоты массива
- for (int i = 0; i < n; i++)
- {
- Console.Write(IntArray[i] + " "); //выводим массив
- count++;
- }
- if (count == 0)
- Console.WriteLine("Массив пуст");
- }
- public void readarray()// вводим элементы с клавиатуры
- {
- Console.WriteLine("Введите элементы:");
- for (int i = 0; i < IntArray.Length; i++)
- {
- Console.Write("intArray[{0}] = ", i); IntArray[i] = Convert.ToInt32(Console.ReadLine());
- //IntArray[i] = int.Parse(Console.ReadLine());
- }
- }
- public void printArray()//выводим элементы в порядке возрастания (доделаю )
- {
- Console.WriteLine("Вывод элементов:");
- for (int i = 0; i < IntArray.Length; i++)
- {
- Console.WriteLine("IntArray[{0}] = {1}; ", i, IntArray[i]);
- }
- }
- public void Print1() //создаем метод для вывода массива на экран
- {
- Console.Write("Массив: ");
- int count = 0; //создаем счетчик для проверки пустоты массива
- for (int i = 0; i < n; i++)
- {
- Console.Write(IntArray[i] + " "); //выводим массив
- count++;
- }
- if (count == 0)
- Console.WriteLine("Массив пуст");
- }
- }
- }
Решение задачи: «Класс для работы с одномерным массивом целых чисел. Что я делаю не так?»
textual
Листинг программы
- public class MyArr
- {
- private int[] array;
- private int length;
- public MyArr(int length)
- {
- this.length = length > 0 ? length : 0;
- array = new int[this.length];
- }
- public MyArr( params int[] list)
- {
- this.length = list.Length;
- Array.Copy(list, array=new int[list.Length], list.Length);
- }
- public int MultiplyScalar
- {
- set
- {
- for (int i = 0; i < length; i++)
- this.array[i] = this.array[i] * value;
- }
- }
- public int Length
- {
- get { return length; }
- }
- public int this[int index]
- {
- get
- {
- if (index > length || index < 0)
- return 0;
- return array[index];
- }
- }
- public void Show()
- {
- if(length==0)
- Console.WriteLine("Масив пуст");
- for(int i=0;i<length;i++)
- Console.WriteLine(array[i]);
- }
- public void Add()
- {
- for (int i = 0; i < length; i++)
- {
- int x = 0;
- Int32.TryParse(Console.ReadLine(),out x);
- array[i] = x;
- }
- }
- public void Sorts()
- {
- int temp;
- for (int i = 0; i < array.Length - 1; i++)
- {
- for (int j = i + 1; j < array.Length; j++)
- {
- if (array[i] > array[j])
- {
- temp = array[i];
- array[i] = array[j];
- array[j] = temp;
- }
- }
- }
- }
- public static MyArr operator ++(MyArr ar)
- {
- for (int i = 0; i < ar.length; i++)
- ar.array[i] = ar.array[i] + 1;
- return ar;
- }
- public static MyArr operator --(MyArr ar)
- {
- for (int i = 0; i < ar.length; i++)
- ar.array[i] = ar.array[i] - 1;
- return ar;
- }
- public int[] ToArray()
- {
- return array;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д