Класс для работы с одномерным массивом целых чисел. Что я делаю не так? - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д