Квадратная матрица из линейного массива - QBasic
Формулировка задачи:
помогите пожалуйста. дана линейная матрица n(n<=10) элементов заполненная целыми числами, составьте квадратную матрицу n*n, что первая совпадала с элементами линейного массива а каждая следующая получалась циклическим сдвигом предыдущей строки влево, с переносом первого элемента в конец строки.
пока вот что получилось.
Решение задачи: «Квадратная матрица из линейного массива»
textual
Листинг программы
CLS OPEN "input.dat" FOR INPUT AS #1 INPUT #1, n DIM a(n), b(n) FOR i = 1 TO n INPUT #1, a(i) b(i) = i NEXT CLOSE FOR i = 1 TO n FOR j = 2 TO n IF a(j) > a(j - 1) THEN SWAP a(j), a(j - 1): SWAP b(j), b(j - 1) NEXT NEXT OPEN "output.dat" FOR OUTPUT AS #2 FOR i = 1 TO n PRINT #2, b(i) NEXT CLOSE
Объяснение кода листинга программы
CLS
— очистка экранаOPEN
input.datFOR INPUT AS #1
— открытие файлаinput.dat
для чтенияINPUT #1, n
— считывание числа из файла и присвоение его переменнойn
DIM a(n), b(n)
— объявление двух массивовa
иb
размеромn
FOR i = 1 TO n
— начало цикла по индексам массиваa
INPUT #1, a(i)
— считывание числа из файла и присвоение его элементу массиваa
с индексомi
b(i) = i
— присвоение элементу массиваb
с индексомi
значенияi
NEXT
— переход к следующему элементу циклаCLOSE
— закрытие файлаFOR i = 1 TO n
— начало цикла по индексам массиваa
FOR j = 2 TO n
— начало цикла по индексам массиваa
с шагом 2IF a(j) > a(j - 1) THEN SWAP a(j), a(j - 1): SWAP b(j), b(j - 1)
— сортировка массиваa
методом пузырька и массиваb
методом перебораNEXT
— переход к следующему элементу внутреннего циклаNEXT
— переход к следующему элементу внешнего циклаOPEN
output.datFOR OUTPUT AS #2
— открытие файлаoutput.dat
для записиFOR i = 1 TO n
— начало цикла по индексам массиваb
PRINT #2, b(i)
— запись значения элемента массиваb
с индексомi
в файлNEXT
— переход к следующему элементу циклаCLOSE
— закрытие файла- Код выполнен