Хелпикс

Главная

Контакты

Случайная статья





Основные свойства и методы табличных компонентов



 

Тема 3:Обработка одномерных массивов

Задание 1 (5 баллов), задание 1 и 2 (10 баллов)

Цель работы:овладеть основными приемами работы с таблицами для эффективной обработки массивов

 

Задание 1:

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

Задание 2:

Добавьте в проект проверку нажатых клавиш в процессе редактирования каждой ячейки таблицы. Запретить ввод недопустимых символов при редактировании в ручном режиме.

Добавьте в проект возможность загрузить исходные данные из текстового файла. При этом должно вызываться диалоговое окно openFileDialog.

Указания:

Таблица представляет собой специальный компонент, позволяющие отображать данные в виде строк и столбцов. Компонент dataGridView позволяет хранить и отображать текстовую и графическую информацию. Но хранение и отображение данных выполняется программистом. Есть возможность подключить источник данных, которые будут представляться в таблице.

 

Примерный вид формы:

 

Основные свойства и методы табличных компонентов

RowCount, ColumnCount – задают число строк и столбцов таблицы (нумерация строк и столбцов начинается с нуля). Путем задания новых значений этих свойств можно динамически менять размерность таблицы.

RowHeadersVisible, ColumnHeadersVisible – задают будут ли отображаться заголовки строк и столбцов. Для обращения к заголовочным ячейкам используется свойство Name:  dataGridView1.Rows[i].Name и dataGridView1.Columns[j].Name.

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

ColumnHeadersHeights, RowHeadersWidths – задают высоту и ширину ячеек таблицы. Размеры таблицы и её ячеек задаются в пикселях и могут изменяться во время работы программы по содержимому ячеек.

ColumnHeadersHeightSizeMode– определяет поведение при изменении высоты заголовков столбцов (установите это свойство в значение EnableResizing, в этом случае высота заголовков столбцов не будет изменяться по содержимому, и мы сможем в конструкторе задать высоту строки заголовка).

AutoSizeColumnMode– определяет режим автоматической установки размера для видимых столбцов (установите значение Fill).

AllowUserToAddRows – определяет, есть ли возможность добавления строк пользователем (установите значение false).

AllowUserToDeleteRows– определяет, есть ли возможность удаления строк пользователем (установите значение false).

dataGridView1.Rows[i].Cells[j].Value– свойство используется для доступа к отдельной ячейке с указанием номера столбца и номера строки. Используя цикл для перебора номеров строк и столбцов таблицы, можно поочередно обращаться к каждой ячейке.

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

Например, при запуске формы требуется заполнить таблицу случайными значениями:

 

private void Form1_Load(object sender, EventArgs e)

{      // метод обработки события загрузки формы

Random r = new Random(); // инициализация генератора случайных чисел

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

{

dataGridView1.Columns[i].Name = i.ToString();               dataGridView1.Rows[0].Cells[i].Value = r.Next(-100, 100); // заполняет таблицу случайными значениями

}

}

Если пользователь вручную вводит данные в таблицу, то велика вероятность ошибок при вводе. Поэтому желательно заблокировать недопустимые символы и добавить проверку вводимых в каждую ячейку данных, что сведёт количество ошибок ввода к минимуму. Для этого воспользуемся событием KeyPress для таблицы. Событие проверки нажимаемых клавиш должно вызываться при редактировании каждой ячейки таблицы, из события EditingControlShowing:

 

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)

{

e.Control.KeyPress += new KeyPressEventHandler(dataGridView1_KeyPress);

 }


ВАРИАНТЫ:

Вариант 1

Заполнить одномерный массив целыми числами. Вычислить количество перемен знака с минуса на плюс или с плюса на минус. Нуль знака не имеет.

 

Вариант 2

Заполнить одномерный массив целыми числами. Вычислить произведение элементов массива, кратных своим порядковым номерам, а затем удалить эти элементы из массива. Удаление элементов производиться путем сдвига вперёд. Если таких элементов нет, то вывести сообщение об этом.

 

Вариант 3

Заполнить одномерный массив целыми числами. Вычислить сумму и произведение элементов массива, индексы которых кратны заданному числу, а затем вставить после каждого такого элемента значение 1.

 

Вариант 4

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

 

Вариант 5

Заполнить одномерный массив целыми числами. Вычислить номер первого кратного 3 и последнего кратного 3 элемента массива и поменять их в массиве местами. Вычислить также сумму элементов, стоящих между ними. Если кратных трём нет или только один, то вывести сообщение об этом.

 

Вариант 6

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

 

Вариант 7

Заполнить одномерный массив целыми числами. Поменять местами первый максимальный и первый минимальный элемент массива, а затем элементы, стоящие между ними, удвоить.

Вариант 8

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

 


Вариант 9

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

Вариант 10

Заполнить одномерный массив целыми числами. Вычислить произведение чётных элементов в первой и во второй половине массива. Если в какой-либо половине массива нет чётных элементов, то вывести сообщение об этом.

Вариант 11

Заполнить одномерный массив целыми числами. Найти номер первого и последнего минимального элемента массива. Удвоить элементы массива, стоящие до первого минимального и после последнего минимального.

Вариант 12

Заполнить одномерный массив целыми числами. Найти в массиве элементы, кратные заданному числу, и вывести их номера, а затем удалить эти элементы из массива. Удаление элементов производиться путем сдвига вперёд. Если таких элементов нет, то вывести сообщение об этом.

 

Вариант 13

Заполнить одномерный массив целыми числами. Вычислить количество четных и количество нечетных по значениям элементов массива. Если чётных элементов меньше, чем нечётных, или наоборот, вставить в массив значения, равные 100 или 101, в таком количестве, чтобы чётных и нечётных стало одинаково. Вставку осуществлять в начало массива.

 

Вариант 14

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

 

Вариант 15

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

 

Вариант 16

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

 

Вариант 17

Заполнить одномерный массив целыми числами. Поменять местами первый положительный и последний положительный элемент массива, и вычислить среднее арифметическое элементов, стоящих между ними. Если положительных нет или только один, то вывести сообщение об этом.

 

Вариант 18

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

 

Вариант 19

Заполнить одномерный массив целыми числами. Найти максимальное значение и значение, второе по величине после максимума, и поменять их местами.

 

Вариант 20

Заполнить одномерный массив целыми числами. Найти минимальное значение в массиве и поменять все минимальные элементы местами с первым элементом.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.