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

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



Advertisements
Похожие презентации
Автор: учитель информатики МКОУ Плесской средней общеобразовательной школы Юдин Андрей Борисович Часть 1.
Advertisements

A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Обработка линейных массивов. МассивМассив – совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя. элементами.
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Массивы – структурированный тип данных, состоящий из фиксированного числа элементов одинакового типа, имеющих общее имя. Массив.
Двумерный массив. Матрица Прямоугольная таблица, состоящая из чисел А=
Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
const n=10; var a:array[1..n] of integer; i,j,c,b,k:integer; begin randomize; for i:=1 to n do begin a[i]:=random(11)-5;write(a[i]:5) end;writeln;
Двумерные массивы. Заполнение и вывод элементов. Понятие. Двумерный массив – это массив с двумя измерениями (прямоугольные таблицы, матрицы). Пример:
Матрицы 1. 2 Задача: запомнить положение фигур на шахматной доске abcdefgh
Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
М А С С И В Ы. © МОУ СОШ Массив это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти.
Например: семейство бабочек; Понятие одномерного массива поле цветов;
Тема: Массивы.. Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом. Массив Одномерный Многомерный.
Двумерные массивы. Массивы Двумерный массив (матрица) – это массивы, положение элементов в которых описывается двумя индексами или прямоугольная таблица,
Власова О.А. СОШ 5, Елабуга. Например: семейство бабочек ; Понятие одномерного массива поле цветов;
ПРОГРАММИРОВАНИЕ МАССИВОВ Язык программирования Паскаль ЕАДК, преподаватель Неверова И.Ю.
Тема: «Понятие квадратная матрица» :17:47.
Одномерные массивы Решение задач. Табличный способ организации данных Одномерные и двумерные массивы.
1 Программирование на языке Паскаль Матрицы. 2 Задача: запомнить положение фигур на шахматной доске abcdefgh
Транксрипт:

Часть 1

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

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

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

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

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

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

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

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

Двумерный массив. Заполнение 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); end; writeln; end; Write без LN выводит элементы массива в строку Когда i-я строка закончилась, пишем пустой WriteLN для перехода на новую строку

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

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

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

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

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

Двумерный массив. Заполнение 16 a 15 a 24 a 33 a 42 a51a51a51a51 Удовлетворяет неравенству i+j<n+1 Удовлетворяет неравенству i+j>n

Двумерный массив. Заполнение 17 a 11 a 22 a 33 a 44 a a 42 a51a51a51a51 a 24 a 15 (i+j<n+1) And (i<j) (i+j>n+1) And (i<j) (i+j>n+1) And (i>j) (i+j j) Системы неравенств

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

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

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

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

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

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

Двумерный массив. Минимальный элемент 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; write(a[i,j]:4); end; Writeln; end; m:=a[1,1]; For i:=1 to n do For j:=1 to n do if (a[i,j]<m) and (i=j) then m:=a[i,j]; writeln(' Минимальный элемент =',m:5); Заполняем массив случайными числами Предполагаем, что минимальный элемент стоит в левом верхнем углу Если встречается элемент меньше m, и он лежит на главной диагонали, то он становится минимальным Замечание. В данном случае можно не бегать по всему массиву а пройти только по главной диагонали, обойдясь без вложенных циклов. m:=a[1,1]; For i:=2 to n do if (a[i,i]<m) then m:=a[i,i]; Замечание. В данном случае можно не бегать по всему массиву а пройти только по главной диагонали, обойдясь без вложенных циклов. m:=a[1,1]; For i:=2 to n do if (a[i,i]<m) then m:=a[i,i];

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

Двумерный массив. Максимальный элемент в строке 26 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент в каждой строке.

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

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

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

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