Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР6 С#3 Двумерные массивы

.pdf
Скачиваний:
0
Добавлен:
25.02.2024
Размер:
1.06 Mб
Скачать
Название
RowCount
ColumnCount

Рисунок 2 – DataGridView на макете формы

Основные свойства DataGridView:

Название

 

Описание

 

 

ColumnHeadersVisible

Видимость

заголовков

столбцов

(по

умолчанию – True)

 

 

RowHeadersVisible

Видимость заголовков строк (по умолчанию –

True)

 

 

 

 

 

 

 

 

 

 

DefaultCellStyle

Стиль оформления ячеек, в

том числе тип,

начертание и размер шрифта

 

 

 

 

 

ScrollBars

Тип полос прокрутки

 

 

Visible

Видимость объекта при выполнении проекта

EditMode

Значение,

указывающее,

как

можно

начать изменение ячейки

 

 

 

 

 

Количество строк и столбцов в таблице можно установить только в программном коде с помощью свойств:

Описание

Количество строк в таблице

Количество столбцов в таблице

Доступ к отдельной ячейке (Cells) таблицы DataGridView можно получить через свойство Value с указанием номера строки Rows[номер строки] и номера ячейки в этой строке Cells[номер ячейки в этой

строке]:

dataGridView1. Rows[i].Cells[j].Value,

где i-номер строки, j – номер ячейки в этой строке.

Примечание. Нумерация столбцов и строк в таблице начинается с нуля

11

Ширину столбца можно изменить через свойство Width с указанием номера столбца Columns[]следующим образом:

dataGridView1.Columns[j].Width = 40.

Стиль ячеек (расположение, цвет) в программном коде можно установить, изменяя свойство DefaultCellStyle. Например, на рисунке 3 изменяется выравнивание в ячейках.

Рисунок 3 – Установка стиля ячеек DataGridView

Общее задание 2

Разработайте приложение, позволяющее заполнить двумерный массив случайными целыми числами из диапазона [-100, 100]. Размер массива задается пользователем.

Вывод результата осуществите в таблицу DataGridView. Выполните данное задание в рамках многооконного проекта, подготовленного в нулевом задании.

Шаг 1. Для окна, предусмотренного для второго общего задания,

разработайте дизайн формы, разместив на нем как минимум следующие контролы (элементы управления): два текстовых поля для ввода размеров массива, одно поле DataGridView, командные кнопки для запуска вычислений, а также закрытия окна, лейблы для комментариев.

12

Шаг 2. Создайте методы обработки события клика по кнопкам. Одну из кнопок запрограммируйте на закрытие текущего окна.

Шаг 3. Для второго метода напишите программный код, позволяющий заполнять массив случайными числами, аналогичный коду из предыдущей лабораторной работы. Обратите внимание, что для доступа и обработки элементов двумерного массива необходимо воспользоваться вложенными циклами.

Ниже представлен пример программного кода. Проанализируйте его,

обратите внимание как осуществляется вывод результата в элемент

DataGridView и какие подготовительные действия для этого необходимо

выполнить. Примечание: в данном коде используются мнемонические названия

элементов управления, ваш код может отличаться!

Шаг 4. Запустите приложение и убедитесь в корректности его работы

(рис. 4).

13

Рисунок 4 – Пример работы приложения для задания 2

Задание 2 выполнено!

Объекты класса DataGridView удобно также использовать при вводе данных, например, при реализации ввода элементов массива вручную.

Примечание. Для того чтобы разрешить изменять содержимое ячеек таблицы

DataGridView при выполнении приложения, необходимо установить значение свойства

EditMode равным EditOnKeystrokeOrF2.

Перед тем как использовать таблицу DataGridView для ввода данных в массив, ее следует разметить, то есть задать внешний вид:

количество строк и столбцов, ширину столбцов и т.д. Поэтому следует создать два метода: одна разметит таблицу, другая – передаст в массив данные из заполненных ячеек таблицы. При этом переменные, которые отвечают за хранение количества строк и количества столбцов, необходимо описать глобально.

14

Общее задание 3

Разработайте приложение, позволяющее ввести пользователем двумерный массив произвольного размера и получить квадраты значений каждого элемента.

Для ввода исходного и вывода результирующего массивов используйте элементы DataGridView.

Важно: разметку таблицы вынесите в отдельный пользовательский метод

Выполните данное задание в рамках многооконного проекта,

подготовленного в нулевом задании.

Пример:

Шаг 1. Для окна, предусмотренного для третьего общего задания,

разработайте дизайн формы, разместив на нем как минимум следующие контролы (элементы управления): два текстовых поля для ввода размеров массива, два поля DataGridView, командные кнопки для разбиения таблицы, для запуска вычислений, а также закрытия окна, лейблы для комментариев. Кнопка запуска вычислений не должна быть доступна для нажатия при начальной загрузке окна (свойство Enabled = False).

Шаг 2. Для кнопки, отвечающей за закрытие формы, напишите соответствующий код. В программном коде ниже это реализовано в методе

Start_button_Click(). Обратите внимание, что в данном примере программного кода, как и в предыдущих заданиях, используются мнемонические названия.

Шаг 3. Создайте метод пользователя (метод Grid_on() в

программном коде ниже), который в качестве аргумента принимает объект

15

типа DataGridView и позволяет в нём разметить таблицу необходимого размера. Обратите внимание, что переменные m и n, предназначенные для хранения количества строк и столбцов таблицы, объявлены глобально.

Шаг 4. В методе обработки клика по кнопке, запускающей разметку объекта DataGridView (Grid_on_button_Click() в программном коде ниже), вызовите разработанный пользовательский метод, передав в качестве аргумента объект, предназначенный для ввода исходного массива

(source_array_dataGridView в программном коде ниже).

16

Здесь же разблокируйте кнопку, предназначенную для запуска вычислений.

Шаг 5. В программном коде для обработки клика по кнопке запуска вычислений (Start_button_Click()в программном коде ниже) объявите двумерный массив целых чисел, указав его размер.

Разметьте таблицу для вывода элементов результирующего массива.

Организуйте два цикла так, чтобы для каждого элемента массива можно было считать его значение из исходного массива, а затем записать в результирующий, предварительно возведя его значение в квадрат.

Шаг 6. Запустите приложение и проверьте его работу (рис. 5).

Рисунок 5 – Пример работы приложения для задания 3

Задание 3 выполнено!

17

3 ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ

Индивидуальные задания необходимо выполнить в рамках одного многооконного приложения, созданного при выполнении общего задания 0.

При этом каждое из них необходимо выполнить в отдельном окне.

Для заполнения массивов случайными числами разработайте самостоятельно программный код в виде пользовательского метода, при необходимости вы можете создать и другие методы. Все пользовательские методы обозначьте как статические и выделите в отдельный класс.

3.1 Индивидуальное задание 1

Создайте приложение, позволяющее решить задачу согласно варианту для массива случайных чисел из диапазона -10 .. 10. Размер массива вводиться пользователем.

 

 

 

Задание

 

 

1.

I.

Определить произведение элементов, значения которых

 

равны заданному числу F.

 

 

 

II.

Найти

местоположения

(номера

индексов)

 

минимальных и максимальныхэлементов массива.

 

 

III.

Найти среднее арифметическое максимальных и

 

минимальныхэлементов массива в каждом из столбцов.

 

 

 

2.

I.

Определить сумму элементов, значения которых равны

 

заданному числу F.

 

 

 

 

II.

Заменить элемент с индексом, равным заданному числу

 

F значением максимального элемента.

 

 

 

III.

При условии, что матрица квадратная (n = m), сделать

 

матрицу симметричной относительно главной диагонали,

 

заменяя при

отсутствии симметрии

меньший

элемент на

 

больший.

 

 

 

 

3.

I.

Определить

произведение

элементов,

значения

 

которых не кратнызаданному числу F.

 

 

II.

Найти частное от деления максимального элемента

 

массива и элементас номером L.

 

 

 

III.

Упорядочить массив по убыванию элементов сверху

 

вниз и слева направо

 

 

 

 

 

 

 

 

 

 

18

4.

I.

Определить сумму элементов, имеющих нечетные

 

значения.

 

 

 

 

II.

Заменить все максимальные элементы значениями,

 

равными заданномучислу L.

 

 

 

III.

При условии, что матрица квадратная (n = m),

 

поменять на диагоналях матрицы значения с максимальными

 

и минимальными элементами.

 

 

5.

I.

Определить произведение элементов, имеющих четные

 

значения.

 

 

 

 

II.

Найти количество минимальных элементов массива.

 

III.

Упорядочить элементы массива по столбцам по

 

убыванию.

 

 

 

6.

I.

Определить сумму элементов, значения которых кратны

 

заданному числу F.

 

 

 

II.

Найти местоположения (номера индексов) минимальных

 

элементов массива.

 

 

 

III.

При условии, что матрица квадратная (n = m), сделать

 

матрицу симметричной относительно главной диагонали,

 

заменяя при отсутствии симметрии больший элемент на

 

меньший

 

 

 

7.

I.

Определить произведение элементов, имеющих

 

нечетные значения.

 

 

 

II.

Найти разность максимального элемента массива и

 

элемента с номером L.

 

 

 

III. Найти среднее арифметическое максимальных и

 

минимальных элементов массива и элементов, имеющих

 

четные значения.

 

 

 

8.

I.

Определить произведение элементов, значения которых

 

меньшезаданного числа F.

 

 

 

II.

Заменить элемент с индексом, равным заданному

 

числу F значениеммаксимального элемента.

 

 

III.

При условии, что матрица квадратная (n = m),

 

заполнить главную диагональ матрицы значениями сумм

 

элементов ее столбцов.

 

 

9.

I.

Определить сумму элементов массива с четными

 

значениями индексовего элементов.

 

 

 

II.

Найти

местоположения

(номера

индексов)

 

максимальных элементов массива.

 

 

 

III. Упорядочить массив по убыванию его элементов в

 

строках.

 

 

 

 

 

 

 

 

 

19

10.

I.

Определить сумму элементов массива с нечетными

 

значениямииндексов его элементов.

 

II.

Найти произведение максимальных элементов массива.

 

III.

Упорядочить массив по возрастанию элементов

 

сверху вниз и слева направо

 

 

 

11.

I.

Определить произведение элементов, значения которых

 

большезаданного числа F.

 

II.

Заменить все минимальные элементы значениями,

 

равными заданномучислу L.

 

III.

При условии что матрица квадратная (n = m),

 

заполнить главную диагональ матрицы значениями

 

минимальных элементов ее строк.

12.

I.

Найти количество отрицательных элементов массива.

 

II.

Найти сумму максимальных элементов массива.

 

III.

Найти среднее арифметическое максимальных и

 

минимальных элементов массива и элементов с четными

 

номерами индексов.

13.

I.

Определить произведение элементов, значения которых

 

кратнызаданному числу F.

 

II.

Найти разность максимального элемента массива и

 

элемента с номером L.

 

III.

Упорядочить массив по возрастанию его элементов в

 

строках.

14.

I.

Найти количество положительных элементов массива.

 

II.

Найти сумму минимальных элементов массива.

 

III.

Упорядочить массив по возрастанию его элементов в

 

строках.

15.

I.

Найти значение максимального элемента массива.

 

II.

Найти произведение минимального элемента массива и

 

элемента сномером L.

 

III.

Упорядочить массив по возрастанию элементов.

 

сверху вниз и слеванаправо.

20