Дан массив R(m,m).Надо переставить строку с минимальным элементом на главной диагонали со строкой с заданным номером — QBasic(Бейсик)

  CLS               ' Чистим экран
  INPUT "Vvedite m : ", m     ' Ввод данных
5 INPUT "Stroka dlya perestanovki : ", n
    IF n > m GOTO 5           ' Защита от "ласосей"
DIM R(m, m) AS INTEGER        ' Заводим массив
DIM MinI, Min
  PRINT STRING$(80, CHR$(196))
  '  Заполняем случ. числами
  RANDOMIZE TIMER
  FOR iy = 1 TO m: FOR ix = 1 TO m
    IF iy = ix THEN COLOR 14 ELSE COLOR 7
    R(ix, iy) = RND * 51
    PRINT R(ix, iy);
  NEXT: PRINT : NEXT
  '  Ищем мин. элемент
   Min = R(1, 1): MinI = 1
  FOR i = 1 TO m
    IF R(i, i) < Min THEN Min = R(i, i): MinI = i
  NEXT
  '  Меняем строки
   FOR i = 1 TO m
     SWAP R(i, MinI), R(i, n)
   NEXT
  '  Выводим результат с подсветкой
  PRINT STRING$(80, CHR$(196))
  FOR iy = 1 TO m: FOR ix = 1 TO m
    IF iy = MinI OR iy = n THEN COLOR 11:  ELSE COLOR 7
    PRINT R(ix, iy);
  NEXT: PRINT : NEXT

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment