- Преподавателю
- Информатика
- Изучаем язык BASIC. Занятие 17. Квадратная матрица
Изучаем язык BASIC. Занятие 17. Квадратная матрица
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Гегелашвили Т.П. |
Дата | 01.09.2015 |
Формат | doc |
Изображения | Есть |
Занятие 17
Квадратная матрица.
Двумерные массивы можно представить себе как таблицы, в ячейках которых хранятся значения элементов массива, а индексы элементов массива являются номерами строк и столбцов.
Принадлежность элементов заданной области определяется по значениям индексов элементов массива.
1,1
1,2
1,3
2,1
2,2
2,3
3,1
3,2
3,3
IJ
1,2 2,1
1,3 3,1
2,3 3,2
Главная диагональ I=J
-
Элементы лежат на главной диагонали
I=J
-
Элементы лежат над главной диагональю
I
-
Элементы лежат под главной диагональю
I>J
N=3
3,1 Побочная диагональ
2,2 I+J=N+1
1,3
1,1 1+1<3+1 1,3 2+3>3+1
1,2 1+2<3+1 3,2 3+2>3+1
2,1 2+1<3+1 3,3 3+3>3+1
I+J<N+1 I+J>N+1
-
Элементы, лежащие на побочной диагонали удовлетворяют условию
I+J=N+1
-
Элементы, лежащие над побочной диагональю удовлетворяют условию
I+J
-
Элементы, лежащие под побочной диагональю удовлетворяют условию
I+J>N+1
Задана матрица A(N,N) в диапазоне [-24,22]. Найти сумму чисел расположенных на главной диагонали.
CLS
RANDOMIZE TIMER
INPUT "N=";N
DIM A(N,N)
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RDN*46-24)
PRINT USING "####"; A(I,J);
NEXT J
NEXT I
S=0
FOR I=1 TO N
FOR J=1 TO N
IF I=J THEN S=S+A(I,J)
NEXT J,I
PRINT "S=";S
Второй вариант
CLS
RANDOMIZE TIMER
INPUT "N=";N
DIM A(N,N)
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RDN*46-24)
PRINT USING "####"; A(I,J);
NEXT J
NEXT I
S=0
FOR I=1 TO N
S=S+A(I,I)
NEXTI
PRINT "S=";S
Задана матрица A(N,N) в диапазоне [-14,20]. Найти сумму положительных элементов, расположенных на главной диагонали.
Ввод матрицы
S=0
FOR I=1 TO N
FOR J=1 TO N
IF I=J AND A(I,J)>0 THEN S=S+A(I,J)
NEXT J,I
PRINT "S=";S
Задана матрица A(N,N) в диапазоне [-14,20]. Найти сумму всех элементов, расположенных на главной диагонали.
Ввод матрицы
S=0
FOR I=1 TO N
S=S+A(I,I)
NEXT I
PRINT "S=";S
Найти сумму всех элементов , расположенных на побочной диагонали.
Ввод матрицы
S=0
FOR I=1 TO N
FOR J=1 TO N
IF I+J =N+1THEN S=S+A(I,J)
NEXT J,I
PRINT "S=";S
Ввод матрицы
S=0
FOR I=1 TO N
S=S+A(I,N+1-I)
NEXT I
PRINT "S=";S
Задана матрица A(N,N) в диапазоне [-24,20]. Найти сумму четных элементов, расположенных на побочной диагонали.
Ввод матрицы
S=0
FOR I=1 TO N
FOR J=1TO N
IF J+I=N+1 AND A(I,J)/2=A(I,J)\2 THEN S=S+A(I,J)
NEXT J,I
PRINT "S=";S
Второй вариант
Ввод матрицы
S=0
FOR I=1 TO N
IF A(I,J)/2=A(I,J)\2 THEN S=S+A(I,N+1-I)
NEXT I
PRINT "S=";S
Задана матрица A(N,N) в диапазоне [-23,21]. Найти суммы всех элементов, расположенных на, над и под главной диагональю и всех элементов, расположенных на, над и под побочной диагональю.
Задана матрица A(N,N) в диапазоне [-13,28]. Найти сумму и количество всех кратных 5 элементов, расположенных над побочной диагональю.
Задана матрица A(N,N) в диапазоне [-22,11]. Найти сумму всех элементов кратных 11, расположенных под главной диагональю и расположенных над побочной диагональю.
Задана матрица A(N,N) в диапазоне [-33,22]. Найти max элемент, расположенный над главной диагональю и min элемент, расположенный под побочной диагональю.
Ввод матрицы
max= - 1000
FOR I= 1 TO n
FOR J=1 TO n
IF A(I,J)>max AND I
NEXT J,I
min= 1000
FOR I=1 TO N
FOR J=1 TO n
IF A(I,J)N+1 THEN min=A(I,J): Imin=I : Jmin=J
NEXT J,I
PRINT "MAX=";MAX; "I=";Imax; "J="; Jmax
PRINT "MIN=";MIN; "I=";Imin; "J="; Jmin
Домашнее задание.
Задана матрица A(N,N) в диапазоне [-10,12]. Найти max четный некратный 5 элемент, расположенный над главной диагональю и указать его адрес.
Ввод матрицы
max= - 1000
FOR I= 1 TO n
FOR J=1 TO n
IF IA(I,J)\5 AND A(I,J)
NEXT J,I
PRINT "MAX=";MAX; "I=";Imax; "J="; Jmax
Задана матрица A(N,N) в диапазоне [-13,32]. Найти заменить каждой строке на 1 элемент, если он больше элемента, расположенного на главной диагонали и заменить на -1 в противном случае.
Ввод матрицы
FOR I= 1 TO n
FOR J=1 TO n
IF A(I,J)>A(I,I) THEN A(I,J)=1 ELSE A(I,J)=-1
NEXT J,I
Вывод матрицы
Задана матрица A(N,N) в диапазоне [-24,18]. Поменять местами max элемент, расположенный над побочной диагональю с min элементом, расположенный под побочной диагональю.
Ввод матрицы
max= - 1000 : min= 1000
FOR I= 1 TO n
FOR J=1 TO n
IF A(I,J)>max AND I+J
IF A(I,J)N+1 THEN min=A(I,J): Imin=I : Jmin=J
NEXT J,I
SWAP A(Imax, Jmax ), A(Imin ,Jmin)
FOR I=1 TO n
FOR J=I TO n
PRINT USING "####"; A(I,J);
NEXT J
NEXT I