Как поменять элементы матрицы местами
Перейти к содержимому

Как поменять элементы матрицы местами

QBASICBOOK.ru: сайт про QB64

Во многих задачах требуется поменять местами один элемент массива с другим элементом. В этом случае, нужно запомнить его индекс, а затем использовать его в алгоритме замены.

В задачах на нахождение минимума / максимума всегда встает вопрос: с чем сравнивать элементы массива. Для этой цели обычно служит первый элемент, с которым последовательно сравниваются все элементы массива.

Задача: Поменять местами минимальный (MIN) и максимальный (MAX) элементы друг с другом:

  1. REM MATRIX
  2. CLS: RANDOMIZE TIMER: CONST N = 5
  3. DIM A(N, N)
  4. A = 1: B = 20
  5. FOR I = 1 TO N
  6. FOR J = 1 TO N
  7. A(I, J) = INT((B — A + 1) * RND + A)
  8. NEXT J
  9. NEXT I
  10. FOR I = 1 TO N
  11. FOR J = 1 TO N
  12. PRINT USING «#### » ; A(I, J);
  13. NEXT J: PRINT
  14. NEXT I
  15. ‘POISK MINIMUMA
  16. MIN = A(1, 1)
  17. FOR I = 1 TO N
  18. FOR J = 1 TO N
  19. IF (A(I, J) < MIN) THEN
  20. MIN = A(I, J)
  21. INDEXMINI = I
  22. INDEXMINJ = J
  23. END IF
  24. NEXT J
  25. NEXT I
  26. ‘POISK MAKSIMUMA
  27. MAX = A(1, 1)
  28. FOR I = 1 TO N
  29. FOR J = 1 TO N
  30. IF (A(I, J) > MAX) THEN
  31. MAX = A(I, J)
  32. INDEXMAXI = I
  33. INDEXMAXJ = J
  34. END IF
  35. NEXT J
  36. NEXT I
  37. PRINT «MAKSIMALNYY ELEMENT:» ; MAX
  38. PRINT «NOMER MAX:» ; INDEXMAXI; INDEXMAXJ
  39. PRINT «MINIMALNYY ELEMENT:» ; MIN
  40. PRINT «NOMER MIN:» ; INDEXMINI; INDEXMINJ
  41. ‘PERSTANOVKA MESTAMI MAKSIMALNOGO I MINIMALNOGO ELEMENTOV
  42. VSPOMOGATTL_PEREMENNAYA = A(INDEXMAXI, INDEXMAXJ)
  43. A(INDEXMAXI, INDEXMAXJ) = A(INDEXMINI, INDEXMINJ)
  44. A(INDEXMINI, INDEXMINJ) = VSPOMOGATTL_PEREMENNAYA
  45. PRINT
  46. FOR I = 1 TO N
  47. FOR J = 1 TO N
  48. PRINT USING «#### » ; A(I, J);
  49. NEXT J: PRINT
  50. NEXT I
  51. END

Рисунок 1 – Исходный текст первой программы

Рисунок 2 – Результат выполнения первой программы

Задача: Дан двухмерный массив из A(NxN) элементов. Посчитать сумму и количество положительных чисел для каждой строки, сумму и количество положительных чисел во всем двумерном массиве.

  1. REM MATRIX
  2. CLS: RANDOMIZE TIMER: CONST N = 5
  3. DIM A(N, N)
  4. A = -10: B = 10
  5. FOR I = 1 TO N
  6. FOR J = 1 TO N
  7. A(I, J) = INT((B — A + 1) * RND + A)
  8. NEXT J
  9. NEXT I
  10. FOR I = 1 TO N
  11. FOR J = 1 TO N
  12. PRINT USING «#### » ; A(I, J);
  13. NEXT J: PRINT
  14. NEXT I
  15. KOLPOLVSEH = 0
  16. SUMPOLVSEH = 0
  17. FOR I = 1 TO N
  18. FOR J = 1 TO N
  19. IF (A(I, J) > 0) THEN
  20. KOLPOLVSEH = KOLPOLVSEH + 1
  21. SUMPOLVSEH = SUMPOLVSEH + A(I, J)
  22. END IF
  23. NEXT J
  24. NEXT I
  25. PRINT
  26. PRINT «KOLICHESTVO POLOZHITELNYKH ELEMENTOV» ; KOLPOLVSEH
  27. PRINT «SUMMA POLOZHITELNYKH ELEMENTOV» ; SUMPOLVSEH
  28. FOR I = 1 TO N
  29. SUM_P_EL = 0
  30. FOR J = 1 TO N
  31. IF (A(I, J) > 0) THEN SUM_P_EL = SUM_P_EL + A(I, J)
  32. NEXT J
  33. PRINT «V» ; I; «STROKE» ; SUM_P_EL; «POLOZHITELNYKH ELEMENTOV»
  34. NEXT I
  35. END

Рисунок 3 – Исходный текст второй программы

Рисунок 4 – Результат выполнения второй программы

Задача: В квадратной матрице А(7,7) найти число (количество) отрицательных элементов в области выше главной и ниже побочной диагонали. Поменять местами первый элемент первой строки и последний элемент последней строки матрицы.

Как транспонировать матрицу

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали авторы-волонтеры.

Количество просмотров этой статьи: 37 455.

Если вы научитесь транспонировать матрицы, то лучше поймете их структуру. Возможно, вы уже знаете о квадратных матрицах и об их симметрии, что поможет вам освоить транспонирование. Помимо прочего, транспонирование помогает переводить векторы в матричную форму и находить векторные произведения. [1] X Источник информации При работе с комплексными матрицами эрмитово-сопряженные (сопряженно-транспонированные) матрицы помогают решить самые разные задачи.

Поменять столбцы матрицы местами

В числовой матрице поменять местами два столбца, т. е. все элементы одного столбца поставить на соответствующие им позиции другого, а его элементы второго переместить в первый.

Столбец матрицы определяется вторым индексом. Поэтому в цикле следует перебирать строки матрицы, т.е. переменная-счетчик будет использоваться в качестве первого индекса двумерного массива.

В каждой строке менять местами элементы с номерами указанных столбцов. От итерации к итерации они не меняются. Обмен можно производить через третью переменную.

Пусть номера столбцов, которые следует поменять местами, задаются путем ввода значений в момент выполнения программы.

Если в языке программирования индексация массивов начинается с нуля, а столбцы указываются, исходя из их фактического положения в матрице (начиная с 1), то следует из переменных, в которых записаны номера столбцов, вычесть единицу перед их использованием в цикле.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *