Скачать презентацию Часть 1 Двумерный массив Матрицы 1 В Скачать презентацию Часть 1 Двумерный массив Матрицы 1 В

Двумерные массивы+.pptx

  • Количество слайдов: 31

Часть 1 Часть 1

Двумерный массив. Матрицы 1 В математике таблицы чисел, состоящие из строк и столбцов называются Двумерный массив. Матрицы 1 В математике таблицы чисел, состоящие из строк и столбцов называются матрицами и записываются в круглых скобках.

Двумерный массив. Применение. 2 Использование двумерных массивов для построения поверхностей. Двумерный массив. Применение. 2 Использование двумерных массивов для построения поверхностей.

Двумерный массив. Определение. 3 Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним Двумерный массив. Определение. 3 Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива). Способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двумерным массивом

Двумерный массив. Определение 4 1 2 3 4 5 6 1 7 4 2 Двумерный массив. Определение 4 1 2 3 4 5 6 1 7 4 2 7 5 4 2 4 1 3 8 9 9 3 В математике: Ai; j В Pascal: A[i, j] 1 5 0 6 0 0 A[2, 4] A[1, 2] A[3, 5]

Двумерный массив. Описание 5 Самый простой способ описания массива a : array [1. . Двумерный массив. Описание 5 Самый простой способ описания массива a : array [1. . 10, 1. . 20] of real; Количество Имя Описание как массивов: Тип строк массива данных в Количество массиве столбцов a: array [1. . 10] of array [1. . 20] of real; Одномерный массив Каждый элемент которого в свою очередь является одномерным массивом

Двумерный массив. Описание 6 Количество строк и столбцов через константу. Const В разделе констант Двумерный массив. Описание 6 Количество строк и столбцов через константу. Const В разделе констант указываем число m=10; n =20; строк и столбцов Var a : array [1. . m, 1. . n] of integer; Определяем пользовательский тип , двумерный Определением нового типа данных. массив type t=array[1. . m, 1. . n] of integer; var a : t;

Двумерный массив. Описание 7 Массив констант. const a: array[1. . 3, 1. . 5] Двумерный массив. Описание 7 Массив констант. const a: array[1. . 3, 1. . 5] of integer = ((3, -2, 1, 4, 3), (-5, -9, 0, 3, 7), Непосредственно в программе (-1, 2, 1, -4, 0)); указываем значения элементов массива.

Двумерный массив. Заполнение 8 Цикл отвечающий за перебор строк. Берем первую, вторую и так Двумерный массив. Заполнение 8 Цикл отвечающий за перебор строк. Берем первую, вторую и так далее Заполнение массива с клавиатуры: строки For i : = 1 to 3 do begin For j : = 1 to 4 do begin write('A[ ', i, ', ', j, ']= '); readln(a[i, j]) end; Цикл отвечающий за end; перебор ячеек в каждой строке.

Двумерный массив. Заполнение 9 Блок-схема заполнения с клавиатуры: i , 1, N Цикл отвечающий Двумерный массив. Заполнение 9 Блок-схема заполнения с клавиатуры: i , 1, N Цикл отвечающий за перебор строк. (Внешний цикл) j , 1, N Ввод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

Двумерный массив. Заполнение 10 Заполнение массива случайными числами: For i : = 1 to Двумерный массив. Заполнение 10 Заполнение массива случайными числами: For i : = 1 to 3 do begin For j : = 1 to 4 do begin a[i, j] : = random(21) - 10; write(a[i, j]: 6); Когда i-я строка end; закончилась, Write без LN выводит пишем пустой writeln; элементы массива в Write. LN для строку end; перехода на новую строку

Двумерный массив. Заполнение 11 i , 1, N j , 1, N Цикл отвечающий Двумерный массив. Заполнение 11 i , 1, N j , 1, N Цикл отвечающий за перебор строк. (Внешний цикл) a i , j= случайное[-10; 10] Вывод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

Двумерный массив. Заполнение 12 Заполнение массива по правилу: For. Заполнить3 doпроизвольный i. Clr. Scr; Двумерный массив. Заполнение 12 Заполнение массива по правилу: For. Заполнить3 doпроизвольный i. Clr. Scr; : = 1 to begin массив Write('ВВеди (N<10) begin N = '); Readln(n); размером N j x N to 4 do по следующему For : = 1 For n правилу: i: =1 to j] do begin a[i, : =ФОРМУЛА; 11111 j: =1 to n do begin For write(a[i, j]: 6); Значение 22222 a[i, j]: =i; элемента в 33333 end; write(a[i, j]: 4); каждой ячейке строки равно 44444 writeln; номеру строки. end; 55555 end; writeln; end;

Двумерный массив. Заполнение 13 Clr. Scr; 1 2 3 4 Главная диагональ: a 11 Двумерный массив. Заполнение 13 Clr. Scr; 1 2 3 4 Главная диагональ: a 11 a 14 1 Write('ВВеди N = '); Readln(n); I=J a 22 23 2 For i: =1 ato n do begin Побочная диагональ: For a 32 a 33 n do begin j: =1 to 3 4 a 41 I+J=N+1 if 44 = n+1) then a[i, j]: =1 a (i+j else a[i, j]: =0; Заполнить произвольный массив размером N x N (N<10) write(a[i, j]); правилу: по следующему Если побочная диагональ то 00001 end; заполнить ячейку 1 00010 во всех остальных writeln; случаях 0 00100 end; 010000

Двумерный массив. Заполнение 14 Ввод N i , 1, N j , 1, N Двумерный массив. Заполнение 14 Ввод N i , 1, N j , 1, N Нет i+j=N+1 a i , j= 0 Да a i , j= 1 Вывод a i , j Фрагмент блок-схемы задачи заполнения побочной диагонали единицами

Двумерный массив. Заполнение 15 1 2 3 4 5 1 2 3 4 5 Двумерный массив. Заполнение 15 1 2 3 4 5 1 2 3 4 5 Удовлетворяет неравенству a 11 a 22 a 33 i < j a 44 a 55 Удовлетворяет неравенству i > j

Двумерный массив. Заполнение 16 1 2 3 4 5 a 15 Удовлетворяет неравенству i+j<n+1 Двумерный массив. Заполнение 16 1 2 3 4 5 a 15 Удовлетворяет неравенству i+jn+1 1 2 3 4 5

Двумерный массив. Заполнение 17 Системы неравенств (i+j<n+1) And (i<j) 1 2 3 4 5 Двумерный массив. Заполнение 17 Системы неравенств (i+jj) 3 a 22 4 5 a 42 a 51 a 15 a 33 a 24 (i+j>n+1) And (in+1) And (i>j)

Двумерный массив. Заполнение 18 Заполнить произвольный массив размером N x N (N<10) по Write('ВВеди Двумерный массив. Заполнение 18 Заполнить произвольный массив размером N x N (N<10) по Write('ВВеди N = '); Readln(n); следующему правилу: 00001 For i: =1 to n do begin 00011 For j: =1 to n do begin 00111 if (i+j>=n+1) and (i<=j) then a[i, j]: =1 00011 00001 else a[i, j]: =0; write(a[i, j]: 2); end; writeln; end; Это пересечение двух Проверяем условие множеств. Элементы принадлежности лежащие на и ниже данному множеству побочной диагонали и элементы лежащие на и выше главной диагонали

Двумерный массив. Сумма элементов 19 Второй. Один или два прохода по массиву? способ. Два Двумерный массив. Сумма элементов 19 Второй. Один или два прохода по массиву? способ. Два прохода по массиву Первый способ. Один проход по массиву Заполнить двумерный массив N x N случайными числами из Write(' ВВеди N = '); Readln(n); Первый проход. Clr. Scr; [-10 ; 10] и найти сумму элементов массива интервала Заполняем массив и s: =0; лежащих на главной диагонали. Write('ВВеди NЗамечание. = '); Readln(n); выводим его на For i: =1 to n do begin Заполняем случайными экран s: =0; Если do begin числами и выводим на For j: =1 to nнужно что то сделать только For i: =1 с главной диагональю, экран to n do begin a[i, j]: =random(20)-10; For j: =1 to n do без вложенных циклов то можно обойтись begin write(a[i, j]: 4); a[i, j]: =random(20)-10; For i: =1 to n do s: =s+ a[i, i]; end; write(a[i, j]: 4); writeln; Второй проход. if (i=j) then s: =s+ a[i, j]; end; Находим сумму. For i: =1 to n do end; И сразу же находим For j: =1 towriteln; n do сумму элементов end; if (i=j) then s: =s+ a[i, j]; лежащих на главной диагонали writeln('Сумма элементов =', s: 5);

Двумерный массив. Сумма элементов 20 Нахождение суммы элементов на главной диагонали за один проход Двумерный массив. Сумма элементов 20 Нахождение суммы элементов на главной диагонали за один проход по массиву Ввод N S = 0 i , 1, N j , 1, N a i , j= случайное[-10; 10] Вывод a i , j i =j Нет Вывод S Да S =S + a i , j

Двумерный массив. Сумма элементов 21 Ввод N Нахождение суммы элементов на главной диагонали за Двумерный массив. Сумма элементов 21 Ввод N Нахождение суммы элементов на главной диагонали за два прохода S = 0 1 i , 1, N j , 1, N a i , j= случайное[-10; 10] Вывод a i , j Нет i =j Да S =S + a i , j 1 Вывод S

Двумерный массив. Сумма элементов 22 Ввод N S = 0 Нахождение суммы элементов на Двумерный массив. Сумма элементов 22 Ввод N S = 0 Нахождение суммы элементов на главной диагонали за два прохода (в случае когда речь идет только о главной диагонали и остальной массив не нужен) i , 1, N j , 1, N a i , j= случайное[-10; 10] i , 1, N S =S + a i , i Вывод a i , j 1 Вывод S

Двумерный массив. Минимальный элемент 23 Один или два прохода по массиву? Рассуждение второе. Заполнить Двумерный массив. Минимальный элемент 23 Один или два прохода по массиву? Рассуждение второе. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти минимальный элемент лежащий на главной диагонали.

Двумерный массив. Минимальный элемент 24 Стандартный способ без анализа задачи Write('ВВеди N = '); Двумерный массив. Минимальный элемент 24 Стандартный способ без анализа задачи Write('ВВеди N = '); Readln(n); Заполняем массив For i: =1 to n do begin Замечание. случайными числами For j: =1 to n do begin В данном случае можно не бегать по всему Если встречается a[i, j]: =random(21)-10; главной массиву а пройти толькоэлемент меньше m, и по он лежит на главной write(a[i, j]: 4); вложенных циклов. диагонали, обойдясь без диагонали, то он end; становится минимальным Writeln; Предполагаем, что m: =a[1, 1]; минимальный end; For i: =2 to n do элемент стоит в m: =a[1, 1]; левом верхнем углу if (a[i, i]max) then For j: =1 второй проход – поиск a[i, j]; to n do begin max: = максимального в строках a[i, j]: =random(21)-10; writeln('В ', i, ' строке max = ', max: 5); write(a[i, j]: 4); end; Идем по строке и если Заполняем массив и находим элемент выводим его на экран end; больший чем Вывод наибольшего writeln; максимальный, то он элемента в строке становится end; максимальным

Двумерный массив. Максимальный элемент в строке 30 Начало 1 Ввод N i , 1, Двумерный массив. Максимальный элемент в строке 30 Начало 1 Ввод N i , 1, N Мах = a i , 1, N j , 2, N j , 1, N a i , j= случайное[-10; 10] Вывод a i , j Нет a i , j > Max Да Max = a i , j 1 Нахождение максимального элемента в каждой строке в два прохода Вывод Max Конец