1 Двумерные массивы Учитель информатики высшей категории ГБОУСОШ 398 г. Москвы Темишева людмила степановна Типовые алгоритмы A( I,J ) СТРОКИ СТОЛБЦЫ.

Презентация:



Advertisements
Похожие презентации
1 Одномерные массивы Типовые алгоритмы A( I) номер элемента.
Advertisements

ВВОД 2. ЕСЛИ 3. СЛЕДУЮЩИЙ 4. МАССИВ 5. ВЫВОД.
Двумерные массивы. Двумерный массив При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом.
Массив-это упорядоченная последовательность однотипных элементов.
Двумерные массивы. В двумерном массиве каждый элемент фиксируется номером строки и столбца, на пересечении которых он расположен. Положение элемента в.
Массивы данных Подготовила: Камышная И.Н.. Массивы данных Массив – это упорядоченная по возрастанию индексов (номеров) совокупность данных одного типа,
Двумерные массивы. Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
Двумерный массив Учитель информатики МБОУ «Марковская СОШ» Репникова С.А.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Двумерные массивы. В математике часто используют многомерные массивы, т.е. массивы массивов. Особенно широкое распространение получили двумерные массивы.
Информатика – 9-11 класс Булатова А.В. Учитель информатики МОУ СОШ 20.
В программах на языке Basic можно пользоваться таблицами. Таблицы в программировании называются массивами.
Табличная организация данных Массивы. Для организации таблиц в программах используют массивы. Массив - упорядоченная последовательность величин, обозначенных.
Есть ли в решении этой задачи действия, которые необходимо выполнить несколько раз? Сколько раз надо их выполнить? С помощью какой команды мы организуем.
Двумерные массивы 1. Вид двумерного массива 2. Ввод и вывод двумерного массива 3. Матрица 4. Преобразование матрицы 5. Создание одномерного массива из.
Программирование на Basic МассивыПрограммирование на Basic Массивы.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Двумерные массивы Обработка относительно диагоналей.
Двумерные массивы ( матрицы ) на языке PASCAL Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера.
Актуализация опорных знаний. Назовите операторы, которые могут встречаться в программах линейной структуры. INPUT PRINT начало конец ввод b,c Y= b+c вывод.
Транксрипт:

1 Двумерные массивы Учитель информатики высшей категории ГБОУСОШ 398 г. Москвы Темишева людмила степановна Типовые алгоритмы A( I,J ) СТРОКИ СТОЛБЦЫ

2 Ввод двумерного массива При вводе двумерного массива необходимо организовать двойной цикл : - внешний цикл ( по строкам) - внутренний цикл (по столбцам) Порядок ввода элементов определяется порядком изменения индексов в программе и для приведенной программы является следующим: А(1,1) А(1,2)…..А(1,м) А(2,1) А(2,2)…. А(2,м) …………А(n,1) А(n.2) ….А(n,m) CLS 1 INPUN введите количество строк; N IF N N THEN PRINT ошибка ввода: GOTO 1 2 INPUN введите количество столбцов; M IF M M THEN PRINT ошибка ввода: GOTO 2 DIM A(N,M) FOR I=1 TO N цикл по строкам FOR J=1 TO M цикл по столбцам PRINT введите элемент ;I;-ой строки;J;-го столбца INPUT A(I,J) NEXT J,I

3 В случае необходимости можно организовать заполнение массива по столбцам. Для этого внешний цикл должен быть организован по номеру столбца (J), а внутренний по номеру строки (I) с соответствующими границами изменения индексов. REM Ввод массива по столбцам FOR J=1 TO M FOR I=1 TO N PRINT A(;I;,;J;); INPUT A(I,J) NEXT I,J Элементы массива вводятся в следующем порядке: А(1,1) А(2,1)…..А(n,1) А(1,2) А(2,2)…. А(n,2) …А(1,m).А(2,m.) ….А(n, m) Если число вводимых элементов невелико, можно не использовать циклы, а все элементы указать явно в списке ввода. Например, для ввода массива А(2,2) можно использовать операторы PRINT Введите массив А(2,2) по строкам INPUT A(1,1),A(1,2),A(2,1),A(2,2) Ввод нескольких массивов одного размера можно осуществить в одном цикле.

4 ВЫВОД ДВУМЕРНОГО МАССИВА Двумерные массивы необходимо выводить в привычном виде (по строкам), начиная вывод новой строки массива в новую строку экрана. PRINT распечатка исходного массива FOR I=1 TO N FOR J=1 TO M PRINT A(I,J); NEXT J PRINT Перевод курсора в начало следующей строки NEXT I Наглядность вывода может быть нарушена, если элементы массива А в памяти ЭВМ представляются различным числом значащих цифр. Тогда элементы одного столбца могут занимать различное число позиций и не будут располагаться строго друг под другом. Для улучшения наглядности в этом случае можно предложить 2 способа: 1. В операторе вместо ( ; ) поставить (, ). 2. вывод всех элементов массива по единому формату с использованием оператора PRINT USING.

5 Суммирование элементов двумерного массива Для двумерного массива необходимо вычислить : n m S= Аij i=1 j=1 REM вычисление сумма элементов массива S=0 FOR I=1 TO N FOR J=1 TO M S=S+A(I,J) NEXT J NEXT I PRINT сумма=;S

6 Суммирование диагональных элементов массива (вычисление следа массива) Для массива А(n,n) необходимо вычислить n S= Аii i=1 REM вычисление суммы следа массива S=0 FOR I=1 TO N S=S+A(I,J) NEXT I PRINT След массива=;S

7 Cуммирование двух массивов одинаковой размерности`` Для двумерных массивов А(n,m) и В(n,m) необходимо вычислить Сij=Аij+Вij, i=1…n,j=1…m REM FOR I=1 TO N FOR J=1 TO M C(I,J)=A(I,J)+B(I,J) NEXT J NEXT I

8 Суммирование элементов заданной строки матрицы Для массива А(I,J) необходимо вычислить m S= Aij J=1 REM Вычисление суммы I–ой строки S-0 FOR J=1 TO M S=S+A(I,J) PRINT Сумма;I; –ой строки=;S

9 Суммирование элементов строк матрицы Необходимо вычислить сумму элементов каждой строки массива А(n,m). Результат получить в векторе D(n), т.е. вычислить REM Суммирование массива по строкам FOR I=1 TO N S=0 FOR J=1 TO N S=S+A(I,J) NEXT J D(I)=S NEXT I Так как на поиск в массиве элемента с заданными значениями индексов затрачивается время (адрес i–го элемента определяется прибавлением к адресу начала массива значение 1) следовательно для повышения эффективности в программе используется при вычислении суммы простая переменная, что исключает многократное обращение к элементам массива D

10 Урок 2. Транспонирование матриц. Необходимо заменить строки матрицы её столбцами, а столбцы её строками, т.е. вычислить Вij=Аij, i=1…n j=1…m Транспонированную матрицу можно получить в исходном массиве А(n,m). Для квадратной матрицы размером N,N для этого необходимо поменять местами каждый элемент верхнего треугольника с соответствующим элементом нижнего (диагональные элементы остаются на месте). При этом для каждой строки нужно выполнить перестановку для элементов, расположенных правее главной диагонали, с элементами соответствующего столбца, расположенные ниже главной диагонали. При перестановке используем вспомогательную переменную Р, помещая в нее один из переставляемых элементов, чтобы не потерять его значение, т.е. Р=Aij, Aij=Aji Aji=P, i=1….n-1, j=j+1….n или оператор SWAP A(I,J),A(J,I)

11 П РОГРАММЫ ТРАНСПОНИРОВАНИЯ REM ТРАНСПОНИРОВАНИЕ ПРЯМОУГОЛЬНОЙ МАТРИЦЫ FOR I=1 TO N цикл по строкам FOR J=1 TO M цикл по столбцам B(I,J)=A(J,I) NEXN J NEXT I REM ТРАНСПОНИРОВАНИЕ КВАДРАТНОЙ МАТРИЦЫ FOR I=1 TO N-1 FOR J=I+1 TO N SWAP A(I,J),A(J,I) NEXT J,I

12 УМНОЖЕНИЕ МАТРИЦЫ НА ВЕКТОР Для вычисления произведения матрицы А(N,M) на вектор В(M) необходимо вычислить A m C REM Умножение матрицы на вектор FOR I=1 TO N S=0 FOR J=1 TO M n S=S+A(I,J)*B(J) n NEXT J B C(I)=S NEXT I n Использование вспомогательной переменной S позволяет уменьшить время выполнение программы за счет исключения обращения в цикле по j к элементам массива С(N) 1

13 Умножение матрицы на матрицу Для умножения А(N,K) на В(K,M) необходимо выполнить вычисления: Получим массив С(N,M) A K M M N K REM FOR I=1 TO N FOR J=1 TO M S=0 FOR L=1 TO K S=S+A(I,J)*B(L,J) NEXT L C(I,J)=S NEXT J,I

14 Удаление строки из матрицы Требуется удалить строку с заданным номером К. Все строки,начиная с (К+1)-й строки,нужно переместить вверх. Число строк уменьшается на 1. REM УДАЛЕНИЕ СТРОКИ N=N-1 K=3 FOR I=K TO N FOR J=1 TO M А(I,J)=А(I+1,J) NEXT J NEXT I Удаление столбца аналогично (задание на дом) a11a12a13a14a15a16 a21a22a23a24a25a26 a31a32a33a34a35a36 a41a42a43a44a45a46 a51a52a53a54a55a56

15 Включение строки в матрицу. Включаемая строка задана как вектор С(М). Включение строки в матрицу аналогично включению элемента в одномерный массив. REM Включение строки в матрицу FOR I=N TO K STEP -1 FOR J=1 TO M A(I+1,J)=A(I,J) NEXT J NEXT I FOR J=1 TO M A(K,J)=C(J) NEXT J N=N+1 Операторы в скобках перемещают строки, начиная с К-й, вниз (в обратном порядке).Перемещение одной строки связано с перемещением всех элементов этой строки, что требует организации цикла по номеру столбца. Включение строки в качестве К-й строки осуществляют операторы в фигурных скобках,