MS DOS QBasic 1.0DIM n AS INTEGER, m AS INTEGERCLSINPUT "n,m=", n, mIF n < 3 THEN PRINT "n<3" SYSTEMEND IFREDIM a(1 TO n, 1 TO m) AS INTEGERRANDOMIZE TIMERFOR i = 1 TO n FOR j = 1 TO m a(i, j) = INT(50 * RND) PRINT USING "###"; a(i, j); NEXT j PRINTNEXT iPRINTFOR i = 4 TO n FOR j = 1 TO m a(i - 1, j) = a(i, j) NEXT jNEXT iFOR i = 1 TO n - 1 FOR j = 1 TO m PRINT USING "###"; a(i, j); NEXT j PRINTNEXT i
Примерn,m=5,8 43 6 19 48 44 6 28 10 5 48 44 1 31 30 25 33 19 30 46 27 29 34 45 8 17 37 43 1 37 46 25 45 48 48 27 21 36 48 44 37 43 6 19 48 44 6 28 10 5 48 44 1 31 30 25 33 17 37 43 1 37 46 25 45 48 48 27 21 36 48 44 37
ЗамечаниеПоскольку QBasic не поддерживает сохранение содержимого при изменении размеров динамического массива, для упрощения было решено не заниматься созданием вспомогательного массива, копирования в него всех строк, кроме последней, затем изменение размера исходного массива и обратное копирование в него. Просто считается, что n уменьшилось на 1.