Задание 1. Объявление и инициализация одномерных массивов.
- Создайте новое консольное приложение ArrayTest;
- Добавьте в проект класс Arrs, для реализации базовых функций работы с массивами. В частности в созданном классе определите:
- Статическое закрытое поле rnd типа Random и инициализируйте его, вызвав соответствующий конструктор;
- Создайте открытый статический метод CreateOneDimAr, получающий в качестве параметра массив целых чисел и инициализирующий его случайными значениями
Методические указания. Для инициализации можно воспользоваться методом Next(int,int) объекта rnd. Для определения количества элементов в массиве воспользуйтесь методом GetLength());
- Создайте открытый статический метод PrintArr1, получающий два параметра: (string – название переданного массива, int[] – массив) и выводящий значения элементов массива на консоль.
- В теле функции main выполните следующие действия:
- Объявите три одномерных массива A, B, C состоящих из 5-ти элементов типа int:
Методические указания. int[] A = new int[5], B = new int[5], C = new int[5];
- Для инициализации массивов A и B вызовите метод CreateOneDimAr;
- Массив C инициализируйте значениями суммы соответствующих элементов массивов A и B;
- Объявите массив X с явной инициализацией: int[] X = { 5,5,6,6,7,7};
- Объявите два массива U и V с отложенной инициализацией: int[] U, V;
- Выделите память для массива U для хранения трёх элементов и инициализируйте его значениями от 1 до 3;
- Запишите присваивание массиву V присваивание константного массива {1,2,3}. Как Вы думаете, почему данное присвоение недопустимо? Закомментируйте строку с недопустимым присвоением.
- Выделите память для массива V для хранения трёх элементов и присвойте значение массива U: V = U;
- Измените значение первого элемента массива V на 9;
- С помощью функции PrintArr1 Выведите массивы A, B, C, X, U, V.
- Запустите полученную программу. Прокомментируйте полученные результаты.
Во всех вышеприведенных примерах объявлялись статические массивы, поскольку нижняя граница равна нулю по определению, а верхняя всегда задавалась в этих примерах константой. Напомню, что в C# все массивы, независимо от того, каким выражением описывается граница, рассматриваются как динамические, и память для них распределяется в "куче". Полагаю, что это отражение разумной точки зрения: ведь статические массивы, скорее исключение, а правилом является использование динамических массивов. В действительности реальные потребности в размере массива, скорее всего, выясняются в процессе работы в диалоге с пользователем.
Чисто синтаксически нет существенной разницы в объявлении статических и динамических массивов. Выражение, задающее границу изменения индексов, в динамическом случае содержит переменные. Единственное требование - значения переменных должны быть определены в момент объявления. Это ограничение в C# выполняется автоматически, поскольку хорошо известно, сколь требовательно C# контролирует инициализацию переменных.
Рассмотрим пример, в котором описана работа с динамическим массивом:
- Запросите у пользователя размерность динамического массива:
Методические указания:
Console.WriteLine("Введите размерность массива:");
int size = int.Parse(Console.ReadLine());
- Опишите массив D и укажите для него размерность введенную пользователем, инициализируйте массив с помощью функции CreateOneDimAr, и выведите его значения с помощью функции PrintArr1;
Дата добавления: 2015-07-11; просмотров: 156 | Нарушение авторских прав
mybiblioteka.su - 2015-2024 год. (0.006 сек.)