Программа к задаче 13 и 14

      Комментарии к записи Программа к задаче 13 и 14 отключены

n=6: DIM a(n, n)

‘ввод данных

FOR i=1 TO n: FOR j=1 TO n: a(i, j)=10*i+j: NEXT j: NEXT i

FOR i = 1 TO n’прямое транспонирования

FOR j = 1 TO i: SWAP a(i, j), a(j, i): NEXT

NEXT

‘вывод матрицы

FOR i=1 TO n: FOR j=1 TO n: PRINT a(i, j); :NEXT:PRINT: NEXT

FOR i=1 TO n’обратное транспонирование

FOR j=1 TO n-i: SWAP a(i, j),a(n+1-j, n+1-i): NEXT

NEXT

FOR i=1 TO n: FOR j=1 TO n: PRINT a(i, j); :NEXT:PRINT: NEXT’вывод

I\J
Исходнаяматриц Транспонированиеотносительноглавной диагонали Транспонированиеотносительнонеглавной диагонали

Рис. 2.5.2

Задача 14. Транспонирование матрицы относительно неглавной диагонали ( ).Здесь зависимость между индексами не столь прозрачна. Для того, что бы найти ее, следует начертить новый вид (рис.2.5.2 справа) матрицы, а также, возможно, таблицы исходных (Iи,Jи) и новых (Iн,Jн) индексов (рис. 2.5.3). Если выписать исходные и новые индексы (рис. 2.5.4), можно обратить внимание, что сумма Jи и Iн постоянна и равна N+1. Аналогично Iи+Jн=N+1. Отсюда можно выписать необходимые зависимости исходных и новых индексов A(I,J) « A(N+1–J,N+1–I).

IиJи IнJн IиJи IнJн IиJи IнJн IиJи IнJн

Рис. 2.5.3 Рис. 2.5.4

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

@ Задачи для самостоятельного решения.

1. Переместить элементы массива Х в массив Y таким образом, чтобы в нем сначала оказалась первая половина исходного массива X, а затем вторая половина.

X
Y

2. Переписать все элементы массива Х для 3

4 8 6 Х
Y

3. Найти в массиве Х все стоящие смежно элементы с одинаковыми значениями и напечатать их номера. В примере номера равных смежных элементов: 2,3 и 5,6

5 5 4 4

4. В квадратной матрице Х(N,N) реальной размерности N найти максимальный элемент. Вывести его значение и индексы (X(Imax,Jmax) и Imax, Jmax). Поменять местами элементы строки Imax и столбца Jmax, на пересечении которых он находится.

Вариант 4 Вариант 5 Вариант 6

5. В матрице Х(N,M) вычислить число положительных элементов в каждой строке и занести их в вектор A(N) и сумму отрицательных элементов в каждом столбце и занести их в вектор B(M). Результаты вывести следующим образом. Справа рядом с исходной матрицей выдать вектор А. Под матрицей вывести вектор В.

6. Поменять местами любые два столбца матрицы Х с номерами К и L.

7. Имеется двухмерный массив А длиной N строк (A(N,2)), в котором содержится информация о товаре в магазине. В каждой строке два элемента. Первый является ценой товара, второй – числом единиц этого товара. Составить программу вычисления стоимости всего товара S в магазине и средней цены единицы товара SR. Сделать проверочные выкладки для N=3. В качестве цены товара (в тыс. рублей) следует последовательно использовать цифры натурального ряда. Число единиц каждого товара взять произвольным.

Статьи к прочтению:

Голова им что бы есть, пах — что бы колоться.


Похожие статьи: