Двумерная матрица - QBasic (145438)
Формулировка задачи:
Напишите программу, которая заполняет матрицу размером n*n (n-нечетное число) случайными числами, а затем вписывает в элементы, отмеченные на рисунке серым фоном, число 99
Решение задачи: «Двумерная матрица»
textual
Листинг программы
CLS RANDOMIZE TIMER DO INPUT "N = "; n LOOP UNTIL n MOD 2 DIM x(n, n) AS LONG FOR i = 1 TO n FOR j = 1 TO n x(i, j) = 40 * RND - 20 NEXT j, i k = n \ 2 + 1 FOR i = 1 TO n FOR j = 1 TO n IF ABS(i - k) + ABS(j - k) < k THEN x(i, j) = 99 END IF NEXT j, i FOR i = 1 TO n FOR j = 1 TO n PRINT USING " ###"; x(i, j); NEXT: PRINT NEXT: PRINT END
Объяснение кода листинга программы
CLS
— очистка экранаRANDOMIZE TIMER
— случайное заполнение матрицыDO
— начало циклаINPUT
N =; n
— запрос на ввод числа N для размера матрицыLOOP UNTIL n MOD 2
— цикл, который прерывается, если N нечетное числоDIM x(n, n) AS LONG
— объявление двумерной переменной x размером n на nFOR i = 1 TO n
— начало внешнего циклаFOR j = 1 TO n
— начало внутреннего циклаx(i, j) = 40 * RND - 20
— заполнение матрицы случайными числами от -20 до 40NEXT j, i
— переход к следующей итерации внутреннего циклаk = n \ 2 + 1
— определение числа k, равного половине n плюс единицеFOR i = 1 TO n
— начало внешнего циклаFOR j = 1 TO n
— начало внутреннего циклаIF ABS(i — k) + ABS(j — k) < k THEN
— условие для определения, находится ли элемент в пределах квадрата со стороной kx(i, j) = 99
— присваивание значению 99 элементам, удовлетворяющим условиюEND IF
— конец условияNEXT j, i
— переход к следующей итерации внутреннего циклаFOR i = 1 TO n
— начало внешнего циклаFOR j = 1 TO n
— начало внутреннего циклаPRINT USING
###; x(i, j);
— печать значения элемента матрицы в формате### xxx
NEXT: PRINT
— переход к следующей итерации внутреннего циклаEND
— конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д