Программирование на языке Си#
Двухмерные массивы
Элемент управления DataGridView
Заполнение матрицы
Проверка ввода данных
Задания:
1.88M
Category: programmingprogramming

Лекция 63 Матрицы DataGridView

1. Программирование на языке Си#

Тема Матрицы

2. Двухмерные массивы

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

3.

3
DataGridView —мощный инструмент для работы с
данными. Он очень гибок и позволяет
автоматизировать вывод информации.

4. Элемент управления DataGridView

При работе с двухмерными массивами ввод и вывод
информации на экран удобно организовывать в виде таблиц.
Элемент управления DataGridView может быть использован
для отображения информации в виде двумерной таблицы.
Для обращения к ячейке в этом элементе необходимо указать
номер строки и номер столбца.
Например:
dataGridView1.Rows[2].Cells[7].Value = "*";
Этот код запишет во вторую строку и седьмой столбец знак
звёздочки.
4

5.

5
Элемент управления DataGridView
DataGridView

6. Заполнение матрицы

6
Заполнение матрицы
1. Случайными числами и/или по формуле.
2. Ввод данных с клавиатуры.
3. Ввод данных из файла

7.

Способ ввода: по формуле.
*
«3»:
*
*
* * *
* * * * *
* * *
*
*
*

8.

N=7
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

9.

«3»:
Алгоритм
1. Ввод n
2. Заполнить всю матрицу пробелами
3. Заполнить матрицу * - главная диагональ, побочная диагональ,
средняя строка, средний столбец
4. Вывести матрицу

10.

10
1. Ввод n

11.

2. Заполнить всю матрицу пробелами
Зачем???

12.

3. Заполнить матрицу * - главная диагональ, побочная диагональ,
средняя строка, средний столбец
*
*
*
*
*
*
*
For (i=0; i<n; i++)
{
For (j=0; j<n; j++)
{
if (i==j)
{
mass[i,j] = “*”;
}
}
}

13.

*
*
*
*
*
*
*
*
*
*
*
*
*
For (i=0; i<n; i++)
{
For (j=0; j<n; j++)
{
if (i+j=n-1)
{
mass[i,j] = “*”;
}
}
}
2 способ For (i=0; i<n; i++)
{
For (j=0; j<n; j++)
{
if (i==j)||(i+j==n-1)
{
mass[i,j] = “*”;
}
}
}

14.

*
*
if (i==n/2)
{
mass[i,j] = “*”;
}
*
2 способ
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
mass[n/2,j] = “*”;
*
if (j==n/2)
{
mass[i,j] = “*”;
}
*
2 способ mass[i,n/2] = “*”;
*
*

15.

15
4. Вывести матрицу

16.

*
«3»:
* *
***
*****
***
* * *

17.

17
Cоздать программу для заполнения целочисленной матрицы 15×15
случайными числами от -100 до 100. Разработать обработчик кнопки,
который будет искать максимальный элемент на дополнительной
диагонали матрицы. Результат вывести в текстовое поле.

18.

1. Задать количество строк и столбцов в матрице
18
2. Заполнить матрицу случайными числами
( a[ i, j ] )
3. Вывести матрицу в таблицу

19.

19
4. Задать начальное значение для максимального элемента (можно m= -100 !,
так как диапазон значений известен)
5. Поиск максимального элемента на побочной диагонали
6. Вывод максимального значения

20.

20

21.

22.

22
Проверить, является ли двумерный массив симметричным относительно
главной диагонали.
Программа получает на вход число n, являющееся числом строк и
столбцов в массиве. Далее в программе формируется матрица для ввода
данных с клавиатуры.

23. Проверка ввода данных

23
Проверка ввода данных

24.

24

25.

N=3
*
1
3
*
4
3
1
*
5
5
*
5
3
5
*
3
4
*
0, 0
0, 1
0, 2
0, 3
1, 0
1, 1
1, 2
1, 3
2, 0
2, 1
2, 2
2, 3
3, 0
3, 1
3, 2
3, 3
N=4
Симметричной (Симметрической)
называют квадратную матрицу, элементы
которой симметричны относительно
главной диагонали.

26.

Алгоритм
1. Ввод n
2. Заполнить матрицу m
3. Проверить – если m[i,j] = m[j,i] прибавить счетчик
4. Если счетчик равен ??????, вывести yes, иначе no

27.

1. Ввод n
2. Заполнить матрицу
int N;
N=ConvertToint(Console.Readline());
int[,] m = new int [N,N];
For (i=0; i<N; i++)
{
s= Console.ReadLine();
string [ ] arr1=s.Split();
For (j=0; j<N; j++)
{
m [i,j] =Convert.ToInt32(arr1[j]);
}
}
3. Проверить – если m[i,j] = m[j,i]
прибавить счетчик
4. Если счетчик равен ??????,
вывести yes, иначе no
For (i=0; i<N; i++)
{
For (j=0; j<N; j++)
{
if (m[i,j] == m[j,i])
{
k=k+1;
}
}
}
if (k == ??????)
Console.Write(“yes”)
Else Console.Write(“no”);

28.

1. Задать количество строк и столбцов в матрице.
2. Заполнить матрицу.
28

29.

29
3. Вывести матрицу для проверки
4. Выполнить вычисления
Самостоятельно!

30.

30

31. Задания:

31
Задания:
3. Дана матрица A(n,n). Найти наибольший элемент в главной диагонали.
Вывести матрицу и наибольший элемент.
4. Дана матрица A(n,m).Найти количество отрицательных элементов.
5. Дана матрица A(n,n). Найти сумму элементов главной диагонали и эту
сумму поставить на место последнего элемента. Вывести исходную и
полученную матрицу.
6. Найти наибольший элемент главной диагонали матрицы A(n,n) и
вывести всю строку, в которой он находится.
7. Определить количество положительных элементов каждой строки
матрицы A(n,m) и запомнить их в одномерном массиве. Полученный
массив вывести.
English     Русский Rules