Всего на сайте:
282 тыс. 988 статей

Главная | Информатика

Работа с массивами в C#. Задание 1. Объявление и инициализация одномерных массивов.  Просмотрен 84

Лабораторная работа № 5

Работа с массивами в C#

1. Создайте новое консольное приложение ArrayTest;

2. Добавьте в проект класс Arrs, для реализации базовых функций работы с массивами. В частности, в созданном классе определите:

a. Статическое закрытое поле rnd типа Random и инициализируйте его, вызвав соответствующий конструктор;

b. Создайте открытый статический метод CreateOneDimAr, получающий в качестве параметра массив целых чисел и инициализирующий его случайными значениями

Методические указания. Для инициализации можно воспользоваться методом Next(int,int) объекта rnd. Для определения количества элементов в массиве воспользуйтесь методом GetLength());

c. Создайте открытый статический метод PrintArr1, получающий два параметра: (string – название переданного массива, int[] – массив) и выводящий значения элементов массива на консоль.

3. В теле функции main выполните следующие действия:

a. Объявите три одномерных массива A, B, C состоящих из 5-ти элементов типа int:

Методические указания.int[] A = new int[5], B = new int[5], C = new int[5];

b. Для инициализации массивов A и B вызовите метод CreateOneDimAr;

c. Массив C инициализируйте значениями суммы соответствующих элементов массивов A и B;

d. Объявите массив X с явной инициализацией: int[] X = { 5,5,6,6,7,7};

e. Объявите два массива U и V с отложенной инициализацией: int[] U, V;

f.

Выделите память для массива U для хранения трёх элементов и инициализируйте его значениями от 1 до 3;

g. Запишите присваивание массиву V присваивание константного массива {1,2,3}. Как Вы думаете, почему данное присвоение недопустимо? Закомментируйте строку с недопустимым присвоением.

h. Выделите память для массива V для хранения трёх элементов и присвойте значение массива U: V = U;

i. Измените значение первого элемента массива V на 9;

j. С помощью функции PrintArr1 Выведите массивы A, B, C, X, U, V.

4. Запустите полученную программу. Прокомментируйте полученные результаты.

 

Во всех вышеприведенных примерах объявлялись статические массивы, поскольку нижняя граница равна нулю по определению, а верхняя всегда задавалась в этих примерах константой. Напомню, что в C# все массивы, независимо от того, каким выражением описывается граница, рассматриваются как динамические, и память для них распределяется в "куче" (хипе). Полагаю, что это отражение разумной точки зрения: ведь статические массивы, скорее исключение, а правилом является использование динамических массивов. В действительности реальные потребности в размере массива, скорее всего, выясняются в процессе работы в диалоге с пользователем.

Чисто синтаксически нет существенной разницы в объявлении статических и динамических массивов. Выражение, задающее границу изменения индексов, в динамическом случае содержит переменные. Единственное требование - значения переменных должны быть определены в момент объявления. Это ограничение в C# выполняется автоматически, поскольку хорошо известно, сколь требовательно C# контролирует инициализацию переменных.

 

Рассмотрим пример, в котором описана работа с динамическим массивом:

5. Запросите у пользователя размерность динамического массива:

Методические указания:

Console.WriteLine("Введите размерность массива:");

int size = int.Parse(Console.ReadLine());

6. Опишите массив D и укажите для него размерность, введенную пользователем, инициализируйте массив с помощью функции CreateOneDimAr, и выведите его значения с помощью функции PrintArr1;

 

Предыдущая статья:Задания 3., 1. Заменить в строке 1 оператор break, на оператор goto case - и посмо.. Следующая статья:Задание 2. Многомерные массивы
page speed (0.0115 sec, direct)