Главная страница

ЛАБОРАТОРНАЯ РАБОТА. Лабораторная работа одномерные массивы цель лабораторной работы


Скачать 28.71 Kb.
НазваниеЛабораторная работа одномерные массивы цель лабораторной работы
Дата14.02.2023
Размер28.71 Kb.
Формат файлаdocx
Имя файлаЛАБОРАТОРНАЯ РАБОТА.docx
ТипЛабораторная работа
#936505

ЛАБОРАТОРНАЯ РАБОТА № 7.


ОДНОМЕРНЫЕ МАССИВЫ

Цель лабораторной работы: Изучить способы получения случай- ных чисел. Написать программу для работы с одномерными массивами.
    1. Работа с массивами


Массив набор элементов одного и того же типа, объединенных общим именем. Массивы в С# можно использовать по аналогии с тем, как они используются в других языках программирования. Однако С#-массивы имеют существенные отличия: они относятся к ссылоч- ным типам данных, более того – реализованы как объекты. Фактически имя массива является ссылкой на область кучи (динамической памяти), в которой последовательно размещается набор элементов определен- ного типа. Выделение памяти под элементы происходит на этапе ини- циализации массива. А за освобождением памяти следит система сбор- ки мусора – неиспользуемые массивы автоматически утилизируются данной системой.

Рассмотрим в данной лабораторной работе одномерные массивы. Одномерный массив – это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент име- ет свой номер. Нумерация элементов массива в С# начинается с нуля, то есть если массив состоит из 10 элементов, то его элементы будут иметь следующие номера: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Одномерный массив в С# реализуется как объект, поэтому его соз- дание представляет собой двухступенчатый процесс. Сначала объявля- ется ссылочная переменная на массив, затем выделяется память под требуемое количество элементов базового типа, и ссылочной перемен- ной присваивается адрес нулевого элемента в массиве. Базовый тип оп- ределяет тип данных каждого элемента массива. Количество элементов, которые будут храниться в массиве, определяет размер массива.

В общем случае процесс объявления переменной типа массив и выделение необходимого объема памяти может быть разделен. Кроме того, на этапе объявления массива можно произвести его инициализа- цию. Поэтому для объявления одномерного массива может использо- ваться одна из следующих форм записи:
тип[] имя_массива;

В этом случае описывается ссылка на одномерный массив, которая в дальнейшем может быть использована для адресации на уже сущест- вующий массив. Размер массива при таком объявлении не задается. Пример, в котором объявляется массив целых чисел с именем a:
int[] a;
Другая форма объявления массива включает и его инициализацию указанным количеством элементов:
тип[] имя_массива = new тип[размер];
В этом случае объявляется одномерный массив указанного типа и выделяется память под указанное количество элементов. Адрес данной области памяти записывается в ссылочную переменную. Элементы мас- сива инициализируются значениями, которые по умолчанию приняты для данного типа: массивы числовых типов инициализируются нулями, строковые переменные пустыми строками, символы пробелами, объ- екты ссылочных типов значением null. Пример такого объявления:
int[] a = new int[10];
Здесь выделяется память под 10 элементов типа int.

Наконец, третья форма записи дает возможность сразу инициали- зировать массив конкретными значениями:
тип[] имя_массива = {список инициализации};
При такой записи выделяется память под одномерный массив, размер- ность которого соответствует количеству элементов в списке инициализа- ции. Адрес этой области памяти записан в ссылочную переменную. Значе- ние элементов массива соответствует списку инициализации. Пример:
int[] a = { 0, 1, 2, 3 };
В данном случае будет создан массив a, состоящий из четырех эле- ментов, и каждый элемент будет инициализирован очередным значени- ем из списка.

Обращение к элементам массива происходит с помощью индекса: для этого нужно указать имя массива и в квадратных скобках – его но- мер. Например: a[0], b[10], c[i]. Следует помнить, что нумерация эле- ментов начинается с нуля!

Так как массив представляет собой набор элементов, объединен- ных общим именем, то обработка массива обычно производится в цик- ле. Например:
int[] myArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

for (int i = 0; i < 10; i++) MessageBox.Show(myArray[i]);
    1. Случайные числа


Одним из способов инициализации массива является задание эле- ментов через случайные числа. Для работы со случайными числами используют класс Random. Метод Random.Next создает случайное число в диапазоне значений от нуля до максимального значения типа int (его можно узнать с помощью свойства Int32.MaxValue). Для создания слу- чайного числа в диапазоне от нуля до какого-либо другого положи- тельного числа используется перегрузка метода Random.Next(Int32) – единственный параметр метода указывает верхнюю границу диапазо- на, сама граница в диапазон не включается. Для создания случайного числа в другом диапазоне используется перегрузка метода Random.Next(Int32, Int32) – первый аргумент задает нижнюю грани- цу диапазона, а второй – верхнюю.
    1. Порядок выполнения индивидуального задания


Создайте форму с элементами управления, как показано на рис. 7.1. Опишите одномерный массив. Создайте обработчики события для кно- пок (код приведен ниже). Данная программа заменяет все отрицатель- ные числа нулями. Протестируйте правильность выполнения програм- мы. Модифицируйте программу в соответствии с индивидуальным заданием.

// Глобальная переменная видна всем методам

int[] Mas = new int[15];
// Заполнение исходного массива

private void button1_Click(object sender, EventArgs e)

{

// Очищаем элемент управления

listBox1.Items.Clear();

// Инициализируем класс случайных чисел

Random rand = new Random();

// Генерируем и выводим 15 элементов

for (int i = 0; i < 15; i++)

{

Mas[i] = rand.Next(‐50, 50);

listBox1.Items.Add("Mas[" + i.ToString() + "] = " + Mas[i].ToString());

}

}
// Замена отрицательных элементов нулями

private void button2_Click(object sender, EventArgs e)

{

// Очищаем элемент управления

listBox2.Items.Clear();

// Обрабатываем все элементы

for (int i = 0; i < 15; i++)

{

if (Mas[i] < 0)

Mas[i] = 0;

listBox2.Items.Add("Mas[" + Convert.ToString(i)

+ "] = " + Mas[i].ToString());

}

}




Рис. 7.1. Окно программы для работы с одномерными массивами


написать администратору сайта