Массивы. Основы алгоритмизации и программирования презентация

Содержание

Массив - это большое пространство чего-то однородного по типу. ( Из словаря иностранных слов, 1954 г.) Массив в

Слайд 1МАССИВЫ
Основы алгоритмизации и программирования


Слайд 2Массив - это большое пространство чего-то
однородного по типу.

( Из словаря иностранных слов, 1954 г.)

Массив в программировании - это структура
данных, представляющая собой упорядочен-
ную совокупность значений одного типа.
( Из Оксфордского словаря английского языка, 1995 г.)


Слайд 3Массив - это переменная,образованная
последовательностью переменных,
причём:
все они имеют один и тот

же тип;

каждый компонент имеет свой номер;

множество индексов конечно, зафиксировано в определении массива;

возможность обработки компонента, его доступность не зависит от его места в последовательности.


Слайд 4В математике и информатике массив называется одномерным, если для получения доступа

к его элементам достаточно одной индексной перемен ной.

Слайд 5Описание (объявление) одномерного массива в Паскале:
Первый способ:
Const MaxM = ...; {Максимальные

значения количества элементов}
Type <имя типа> = Array[1..МахМ] Of <тип элементов>;
Var А1, В2, С3: <имя типа> ;
Например:
Const MaxM = 10;
Type А = Array[1..МахМ] Of integer;
Var M: A;
Второй способ:
Const MaxM = ...; {Максимальные значения количества элементов}
Var <имя массива>:Array[1..MaxN] Of <тип элементов>;
Например:
Const MaxM = 10;
Var А: Array[1..МахМ] Of integer;


Слайд 6Пример объявления несколько переменных типа массив:
VAR
mas_1: ARRAY[1..10] OF Real;


mas_2: ARRAY[5 .. 16] OF Integer;
sst: ARRAY[20..40] OF Char;

Тип элементов, составляющих массив, может быть любым (в том числе и сложным).
Тип индексов элементов массива может быть только простым, хотя наиболее часто в качестве индексов элементов массива применяют целые числа.


Слайд 7Пример: VAR Y:ARRAY[1..5] of integer;
Объявлен массив, имя которого

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

Слайд 8VAR
mas: array [1..15] of real; {описан массив из 15 вещественных

чисел}
www: array [(mon,tue,wed)] of integer; {описан массив из трёх целых чисел, индексы элементов массива имеют перечислимый тип и принимают значение названий дней недели mon, tue, wed}
ast: array ['A'..'Z'] of boolean; {описан массив элементов логического типа, тип индексов - ограниченый символьный}
art: array [(black,white)] of 11..20; {описан массив целых чисел с индексами black, white. Каждый элемент массива может принимать значения от 11 до 20}
svz: array [byte] of integer; {описан массив из 256 целых чисел с индексами стандартного типа byte (от 0 до 256)}

Пример объявления массивов содержащих элементы различных типов, и индексы различных простых типов:


Слайд 9Извлечения и присвоения в массивах
В отличие от стандартных переменных массивы

не могут обрабатываться целиком. Но Вы можете получить доступ к каждому элементу-ячейке массива. Это выполняется путём указания значения индекса в квадратных скобках. Так например, с помощью оператора mas[2]:=34; элементу массива с индексом 2 присваивается значение 34.
Оператор Writeln(mas[2]); вызовет вывод на экран пользователя значение хранящегося в элементе-ячейке № 2 массива mas.
Наряду с конкретным значением (конcтантой) в качестве индекса может быть использована переменная, например, при обработке массива поэлементно в рамках цикла "FOR ... TO ... DO".
С помощью фрагмента программы FOR i:=1 TO 25 DO mas[i]:=0; всем элементом массива присваивается значение "0".

Слайд 11 ВВОД МАССИВА:
Program vvod;
Const maxM=10;

Var tab1: array[1..maxM] of integer;
i: integer;
Begin
For i:=1 to maxM do
begin
writeln('Введите элементы массива ');
readln(tab[i]);
end;
End.


Слайд 12 ВЫВОД МАССИВА:
Program vivod;
Const

maxM=10;
Var tab1: array[1..maxM] of integer;
i: integer;
Begin
For i:=1 to maxM do
begin
writeln('Вывод элементов массива ');
writeln (tab[i]);
end;
End.


Слайд 13П Р И М Е Р 1: Дана последовательность реальных чисел

s1 ... s10. Организовать массив для хранения этих чисел. Определить сумму этих элементов.

PROGRAMM ex_1;
VAR
m: ARRAY[1..10] of real; {декларация массива}
i: integer; {параметр цикла FOR}
s: real; {сумма элементов}
BEGIN
FOR i:=1 TO 10 DO {заполнение массива}
Begin
Write('Введите элемент последовательности № ',i); Readln(m[i]); End;
s:=0; {обнуление счётчика суммы}
FOR i:=1 TO 10 DO s:=s+m[i]; {вычисление суммы}
Write('Сумма элементов последовательности равна ',s);
Readln; { пауза } END.


Слайд 14Пример 2: программа, которая сначала вводит 10 реальных чисел, организовывает их

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

PROGRAMM ex_2;
VAR m: ARRAY[1..10] of real; {декларация массива}
i: integer; {параметр цикла FOR}
n: integer; {счётчик положительных эл-ов}
BEGIN
Writeln('Введите 10 элементов последовательности через пробел’);
FOR i:=1 TO 10 DO {заполнение массива}
Read(m[i]);
n:=0; {обнуление счётчика п. эл-ов}
FOR i:=1 TO 10 DO if m[i]>=0 then n:=n+1; {вычисление количества п. эл-ов}
Write('Последовательность содержит ',n,' положительных эл-ов');
Readln; { пауза }
END.


Слайд 15Пример 3:


Слайд 16Пример 3


Слайд 17

Program Poisk;
Const maxM=10;
Var К:

array[1..maxM] of integer;
i,S: integer;
Begin
For i:=1 to maxM do
begin
writeln('Введите элементы массива ');
readln(К[i]);
end;
S:=0;
for i:=1 to maxM do
if К[i]<0 then S:=S+ К[i];
writeln('S=',S)
End.

Пример 4:
Задан одномерный массив К[1..10], определить сумму
отрицательных элементов.


Слайд 18Задания для самостоятельного выполнения
Найти сумму отрицательных элементов массива из N вещественных

чисел.
Найти количество отрицательных элементов массива из N целых чисел.
Найти сумму квадратов положительных элементов одномерного массива из N вещественных чисел.
Преобразовать одномерный массив вещественных чисел, уменьшив каждый элемент на абсолютную величину среднего значения элементов массива.
Преобразовать одномерный массив вещественных чисел, занеся в каждый элемент сумму всех предыдущих элементов (в первый элемент необходимо поместить значение 0).


Слайд 19
.
.
Program vvod2;
Const maxM=10;
Var tab1: array[1..maxM] of

integer;
i: integer;
Begin
Randomize;
For i:=1 to maxM do
begin
Tab1[i]:=random(101);
{Функция random(101) генерирует целые
числа в диапазоне от 0 до 100}
write(tab1[i]: 5);
end;
End.

Генерация элементов массива с помощью функции случайных чисел.


Слайд 20ПОИСК МАКСИМАЛЬНОГО И МИНИМАЛЬНОГО ЭЛЕМЕНТОВ В МАССИВЕ.
Дан одномерный массив K из

10 целых элементов, найти максимальный элемент и его индекс.
Решение:
Program Poisk_2;
Const maxM=10;
Var К: array[1..maxM] of integer;
Max, i, j: integer;
Begin
Randomize;
For i:=1 to maxM do begin
К[i]:=random(101); write(К[i]:5);
end;
Max:=K[1]; J:=1;
for i:=2 to maxM do
if Max writeln('Максимальный элемент=', max);
writeln('Индекс макс. элемента=', j);
End.


Слайд 21Поиск элемента в неупорядоченном массиве
VAR m: ARRAY[1..30] of real;

{декларация массива}
i: integer; {параметр цикла FOR}
p: real; {значение искомого элемента}
t: integer; {индекс (номер) иском. элемента}
BEGIN
FOR i:=1 TO 30 DO {заполнение массива} Begin
Write('Введите элемент последовательности № ',i); Readln(m[i]); End;
Write('Введите контрольное число '); Readln(p);
t:=0; {допустим, что в массиве нет такого элемента}
FOR i:=1 TO 30 DO if m[i]=p then {проверка нашего утверждения} begin t:=i; write('Эл. №',i,' равен искомому'); end;
if t=0 then write('В массиве нет такого элемента');
Readln; { пауза } END.

Слайд 22Задания для самостоятельного выполнения
Напишите программу, которая вводит с клавиатуры 20 реальных

чисел, и организовывает их хранение в массиве. После этого определяет сумму элементов, значение которых больше среднего арифметического элементов массива.
Напишите программу, которая вводит с клавиатуры 15 реальных чисел, организовывает их хранение в массиве и определяет разность между максимальным и минимальным элементом массива.
Напишите программу, которая вводит с клавиатуры 15 реальных чисел, организовывает их хранение в массиве и определяет индексы (номера) элементов массива, значение которых равно значению первого элемента массива. Если такого элемента нет, вывести соответствующее сообщение на экран.
Напишите программу, которая вводит с клавиатуры 10 целых чисел, организовывает их хранение в массиве и определяет количество чётных и количество нечётных элементов в массиве.
Напишите программу, которая вводит с клавиатуры 30 реальных чисел и определяет среднее арифметическое первых десяти элементов, вторых десяти и последних десяти. После этого определяется максимальное и минимальное среднее арифметическое и выводится сообщение.

Слайд 23Задания для самостоятельного выполнения
Сгенерировать 2 одномерных массива по 23 элемента в

каждом. Вывести их на экран. Подсчитать, где больше сумма. Вывести суммы и соответствующее сообщение .
Сгенерировать одномерный массив из 30 элементов в диапазоне от 1 до 20. Вывести его на экран. Определить сумму элементов больших 12, произведение элементов меньших 12 и вывести соответствующие результаты на экран.
В группе 15 учащихся. Составить два массива, в 1-ом массиве -фамилии учащихся, во втором массиве- оценки по ОИВТ. Вывести значения массивов в следующем виде: ФИО, бал успеваемости.
Дан одномерный массив, состоящий из 10 элементов. Получить новый массив, в котором будут сначала положительные, а затем отрицательные значения первого массива

Слайд 24 Сортировка массива - это расстановка элементов
массива в некотором порядке.
Убывающий порядок

- каждый следующий элемент
должен быть меньше предыдущего.

Невозрастающий - каждый следующий элемент
должен быть не больше предыдущего.

Возрастающий - каждый следующий элемент больше
предыдущего.

Неубывающий - каждый следующий элемент не
меньше предыдущего.


Слайд 25Алгоритм сортировки выбором по возрастанию
Очевидно, что первое место в массиве должен

занять минимальный элемент массива, второе - наименьший из всех остальных, третий - наименьший из оставшихся и т.д. Для этого необходимо выполнить следующую последовательность действий:
Определить минимальный элемент массива;
Поменять его местами с первым элементом;
Определить минимальный элемент среди оставшихся;
Поменять его местами со вторым элементом и т.д.; Эта последовательность действий должна выполняться до тех пор, пока не будет определён последний минимальный элемент.

Слайд 26 СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА
CONST


SIZE=5; {размер массива}
Var
a:array[1..SIZE] of integer;
i:integer; {номер элемента, от которого ведется поиск } {минимального элемента}
min:integer;{номер минимального элемента в части массива} { от i до верхней границы массива}
j:integer; {номер элемента, сравниваемого с минимальным}
buf: integer; {буфер, используемый при обмене элементов} {массива}
k: integer; {индекс для ввода и вывода}

Слайд 27 СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА
Begin
writeln(‘

Введите в одной строке ’,SIZE,’ целых чисел’);
for k:=1 to SIZE do read(a[k]);
writeln(‘ Сортировка’);
for i:=1 to SIZE-1 do begin
{поиск минимального элемента в части массива от
a[i] до a[SIZE]}
min:=i;
for j:=i+1 to SIZE do if a[j] {поменяем местами a[min] и a[i]}
buf:=a[i];
a[i]:=a[min];
a[min]:=buf;
end;









Слайд 28 СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА
{вывод

отсортированного массива}
writeln(‘ Массив отсортирован’);
for k:=1 to SIZE do write(a[k]:4);
readln;
End.










Слайд 29Сортировка методом пузырька
Алгоритм так называемой "пузырьковой" сортировки более оригинален и в

большинстве случаев более эффективен. При использовании этого алгоритма весь массив просматривается несколько раз подряд. При каждом таком просмотре сравниваются последовательно только соседние элементы массива: сначала первый со вторым, потом второй с третьим, и в конце предпоследний с последним. Если при сравнении окажется, что предыдущий элемент больше следующего, они меняются местами. Так в результате одного последовательного просмотра элементы, значение которых больше, "всплывают" образно говоря на поверхность, т.е. ближе к концу массива. Если провести такой последовательный просмотр массива несколько раз, то "тяжёлые" элементы окончательно "всплывут" и массив окажется отсортированным. Такой просмотр необходимо выполнять до полной сортировки, т.е. пока при просмотре элементы не будут меняться местами. Для этого удобно организовать логическую переменную ind, и присваивать ей значение ложь в случае, если замена происходила хотя бы один раз. Если значением этой переменной останется истина, то просмотры необходимо прекратить.

Слайд 30Сортировка массива целых чисел по возрастанию методом «пузырька»
CONST
SIZE=5; {размер массива}


Var
M:array[1..SIZE] of integer;
i:integer;
buf: integer; {буфер, используемый при обмене элементов} {массива}
ind:boolean;
Begin
writeln(‘ Введите в одной строке ’,SIZE,’ целых чисел’);
for i:=1 to SIZE do read(m[i]);
writeln(‘ Сортировка’);


Слайд 31Сортировка массива целых чисел по возрастанию методом «пузырька»
REPEAT
ind:=true; {предположим, что

массив уже отсортирован}
FOR i:=1 TO SIZE-1 DO {цикл для организации просмотра}
if m[i]>m[i+1] then {сравнение двух соседних элементов} begin buf:=m[i]; {меняем соседние элементы местами}
m[i]:=m[i+1];
m[i+1]:=buf;
ind:=false; {как оказалось, массив неотсортирован} end;
UNTIL ind; {выполняем просмотры пока ind=false}
{вывод отсортированного массива}
writeln(‘ Массив отсортирован’);
for i:=1 to SIZE do write(m[i]:4);
readln;
End.



Слайд 32Организуйте массив, содержащий 20 различных целых чисел. После это- го элементы

массива упорядочиваются по убыванию и содержимое отсор- тированного массива выводится на экран. 2. Организуйте массив, содержащий 20 различных целых чисел. После это- го 10 первых элементов массива упорядочиваются по возрастанию, а 10 последних элементов по убыванию. Содержимое отсортированного таким образом массива выводится на экран. 3. Организуйте массив, содержащий 15 различных целых чисел. После это- го отдельно первых 5 элементов, вторых 5 элементов и последних 5 элементов сортируются по возрастанию. Содержимое отсортированного таким образом массива выводится на экран. 4. Создайте массив, содержащий 10 различных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются ми- нимальный и максимальный элементы массива.

Задания для самостоятельного выполнения

1. Организуйте массив, содержащий 20 различных целых чисел. После этого элементы массива упорядочиваются по убыванию и содержимое отсортированного массива выводится на экран.
2. Организуйте массив, содержащий 20 различных целых чисел. После этого 10 первых элементов массива упорядочиваются по возрастанию, а 10 последних элементов по убыванию. Содержимое отсортированного таким образом массива выводится на экран.
3. Организуйте массив, содержащий 15 различных целых чисел. После этого отдельно первых 5 элементов, вторых 5 элементов и последних 5 элементов сортируются по возрастанию. Содержимое отсортированного таким образом массива выводится на экран.
4. Создайте массив, содержащий 10 различных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются минимальный и максимальный элементы массива.


Слайд 33Поиск элемента в упорядоченном массиве
Рассмотрим наиболее часто встречающуюся задачу поиска необходимого

элемента в отсортированном массиве, и алгоритм её решения.
Дан отсортированный по возрастанию массив вещественных чисел A состоящий из n элементов. Определить, содержит ли данный массив число B, и если содержит, то определить номер (индекс) данного элемента в массиве.
Предположим, что в массиве A имеется элемент, равный B, т.е. существует такой индекс p, что A[p]=B. По результату любого сравнения A[s]

Слайд 34Алгоритм деления пополам
Первоначально номера крайних элементов массива 1 и n берут

в качестве границ поиска элемента; далее, до тех пор, пока границы не совпадут, шаг за шагом сдвигают эти границы следующим образом:
сравнить B с A[s], где s - целая часть среднего арифметического границ;
если A[s]иначе оставить без изменения нижнюю границу, а верхнюю границу заменить на s.
Поиск закончится когда границы совпадут.

Слайд 35Алгоритм деления пополам
Var a:array[1..10] of integer;
b: integer; {образец для поиска}
p,q,s: integer;

{номера верхнего, нижнего и среднего элементов массива}
i: integer;
f:boolean; {признак совпадения с образцом}
Begin
writeln(‘ Введите в одной строке 10 целых чисел’);
for i:=1 to 10 do read(a[i]);
writeln(‘ Введите образец для поиска (целое число)’);
Readln(b);
p:=1; q:=10;
f:=false;



Слайд 36Алгоритм деления пополам
Repeat
s:=(p+q) div 2;
if a[s]=b then f:=true
else
{в какой

части, в верхней или нижней, может находиться искомый элемент?}
if b>a[s] then p:=s+1 else q:=s;
Until (p>q) or f;
If f then writeln(‘совпадение с элементом номер ‘, s)
else writeln(‘образец не найден’);
Readln;
End.



Слайд 37Организуйте массив, содержащий 20 различных целых чисел. После это- го элементы

массива упорядочиваются по убыванию и содержимое отсор- тированного массива выводится на экран. 2. Организуйте массив, содержащий 20 различных целых чисел. После это- го 10 первых элементов массива упорядочиваются по возрастанию, а 10 последних элементов по убыванию. Содержимое отсортированного таким образом массива выводится на экран. 3. Организуйте массив, содержащий 15 различных целых чисел. После это- го отдельно первых 5 элементов, вторых 5 элементов и последних 5 элементов сортируются по возрастанию. Содержимое отсортированного таким образом массива выводится на экран. 4. Создайте массив, содержащий 10 различных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются ми- нимальный и максимальный элементы массива.

Задания для самостоятельного выполнения

Напишите программу, которая организует хранение в массиве 15 различных введённых с клавиатуры целых чисел. Содержимое массива сортируется по возрастанию. После этого, с клавиатуры запрашивается контрольное число, наличие которого в массиве необходимо проверить. Номер элемента массива, в положительном случае, выводится на экран монитора.
Напишите программу, которая организует хранение в массиве 10 различных целых чисел. Содержимое массива сортируется по возрастанию. После этого, с клавиатуры вводится контрольное число. Наличие которого в массиве необходимо проверить. В положительном случае замените элемент массива, равный контрольному числу, нулём. Содержимое массива выводится на монитор.


Слайд 38Организуйте массив, содержащий 20 различных целых чисел. После это- го элементы

массива упорядочиваются по убыванию и содержимое отсор- тированного массива выводится на экран. 2. Организуйте массив, содержащий 20 различных целых чисел. После это- го 10 первых элементов массива упорядочиваются по возрастанию, а 10 последних элементов по убыванию. Содержимое отсортированного таким образом массива выводится на экран. 3. Организуйте массив, содержащий 15 различных целых чисел. После это- го отдельно первых 5 элементов, вторых 5 элементов и последних 5 элементов сортируются по возрастанию. Содержимое отсортированного таким образом массива выводится на экран. 4. Создайте массив, содержащий 10 различных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются ми- нимальный и максимальный элементы массива.

Задания для самостоятельного выполнения

Напишите программу, которая организует хранение в массиве 15 различных введённых с клавиатуры целых чисел. Содержимое массива сортируется по убыванию. После этого, с клавиатуры запрашивается контрольное число, наличие которого в массиве необходимо проверить. На экран монитора выводится содержимое массива до "контрольного числа" включительно.
Дан массив из 10 целых чисел. Отсортируйте его и найдите в нём контрольное число. Все элементы до контрольного числа замените на противоположные.


Слайд 39массив это-
а) Конечное число элементов.
б) Упорядоченное множество элементов разного типа.


в) Конечное упорядоченное множество элементов одного типа.


Одномерный массив описывается:
а) Var tab1: array[1..78] of integer;
б) var tab1: array[1..5] ;
в) Var tab1= array[1..13] of integer;



тесты


Слайд 40Индекс элементов массива может быть:
а) целым числом;
б) вещественным числом;
в) целым положительным.

Как

обратиться к 5 элементу массива с именем Е?
а) 5(Е);
б) Е[1..5];
в) Е[5].

тесты


Слайд 41Чтобы представить себе двумерный массив, вспомните зрительный зал кинотеатра.
Название кинотеатра –

имя массива.
Ряд, место - индексы.
Человек на
определенном месте
– элемент массива.

Двумерные массивы


Слайд 42Двумерные массивы
Двумерный массив в Паскале трактуется как одномерный массив, тип элементов

которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.
Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a 21 – это элемент, стоящий во второй строке и в первом столбце.


Слайд 43Описание двумерных массивов:
Const n=4;
m=5;
Var

A :array [1..n, 1..m] of integer;

A [2,4]



A [4,2]


Слайд 44Для того, чтобы использовать массив в программе, его нужно описать в

разделе описаний:
Var имя_массива : array [размер ] of тип_элементов;
Имя массива выбираем по основным правилам имен идентификаторов.
Размер: [начальный_индекс . . конечный_индекс ]
[1..5 ] [10..100 ] [-10..10 ]
[нач_индекс . . конечн_индекс , нач_индекс . . конечн_индекс ]

Например,
Var
Name: array [1..30] of string;
Temperature : array [1..31] of real;
Kino : array [1..25, 1..40] of string;

Количество столбцов

Количество строк




Слайд 45Обращение к конкретному элементу массива осуществляется путем указания имени массива и

индекса этого элемента в [ ]

Name[15], Temperature[10], Kino[5,6]

В качестве индексов массивов можно использовать переменные целого типа:
Name[i], Temperature[k], Kino[i,j]
Это свойство дает возможность обрабатывать массивы в циклах, в которых индекс массива является одновременно и счетчиком цикла.

Элементы массивов используются в выражениях также, как и обычные переменные:

Name[15]:= ‘ Иванов ‘;
Sum:=Sum+Temperature[10];
Kino[5,6]:=‘Свободно ‘ ;


Слайд 46Рассмотрим двумерный массив А Объявите данный массив.
Определите значения следующих элементов массива: A[1,5]=

, A[5,1]= , A[6,4]= , A[4,5]= , A[2,3]= , A[4,2]= , A[3,2]= .

Определите месторасположение элементов со следующими значениями
A[ ..,..]= 17, A[…,…]= 29, A[ ..,..]= 30, A[…,…]= 16, A[ ..,..]= 1, A[…,…]= 27.


Слайд 47Создание двумерных массивов
Двумерные массивы создаются путем ввода данных с клавиатуры,

с помощью случайных чисел и вычислений по формулам.
Для формирования массива используется два вложенных цикла. Первый цикл перебирает строки, а второй – столбцы.

For i:=1 to n do
for j:=1 to m do
a[i , j]:=random(100);

For i:=1 to n do
for j:=1 to m do
readln (a[i , j]);

For i:=1 to n do
for j:=1 to m do
a[i , j]:=i*j;


Слайд 48Вывод массивов в виде таблицы
For i:=1 to n do

begin



writeln;
end;

for j:=1 to m do
write (a[i , j]);


Слайд 49Пример 1:Дана матрица действительных чисел размером 3x5. Вычислить сумму элементов матрицы.


PROGRAM EX_1;
CONST n=3; {Количество строк}
m=5; {Количество столбцов}
TYPE mas=array[1..n,1..m] of real;
VAR b: mas; {Массив}
i: integer; {Индекс строки}
j: integer; {Индекс столбца}
s: real; {Сумма}
BEGIN {Ввод значений матрицы ---------------------}
Writeln('Введите значения элементов матрицы:');
for i:=1 to n do
for j:=1 to m do read(b[i,j]);
{Вычисление суммы ----------------} s:=0;
for i:=1 to n do
for j:=1 to m do s:=s+b[i,j];
writeln('Сумма = ',s);
END.


Слайд 50Пример 2. Создать программу для формирования таблицы умножения (таблицы Пифагора).
Вывод массива:


Слайд 51Операции с матрицами
Задача: Перестановка строк или столбцов. В матрице из N

строк и M столбцов переставить 2-ую и 4-ую строки.

2

4

j

A[2,j]

A[4,j]

for j:=1 to M do begin
c := A[2,j];
A[2,j] := A[4,j];
A[4,j] := c;
end;


Слайд 52Задания для самостоятельного выполнения.
Сгенерировать матрицу целых чисел в диапазоне от

-5 до 5 размером 5x3. Заменить все отрицательные элементы матрицы на нули. Вывести содержимое матрицы до обработки и после обработки.
Дана матрица целых чисел размером 4x4. Увеличить все чётные элементы на 16, а нечётные элементы увеличить втрое. Вывести на экран содержимое обработанной матрицы.
Дана матрица целых чисел размером 3Х4. Поменять местами 1 и 4 столбик. Вывести на экран содержимое обработанной матрицы.

Слайд 53Составить программу, которая в двумерном массиве случайных чисел находит в каждой

строке наибольший элемент и записывает его в одномерный массив.

m – количество строк в двумерном массиве и длина одномерного массива;
n – количество столбцов;
A[1..m,1..n] - двумерный массив;
B[1..m] – одномерный массив
max – вспомогательная переменная для нахождения наибольшего элемента в каждой строке.


Слайд 54Program max_str;
Uses crt;
Const
m=5;
n=6;
var i,j:byte;
a: array

[1..m, 1..n] of integer;
b: array [1..m] of integer;
max: integer;
begin
clrscr; randomize;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;

writeln ('Массив из максимальных значений в строках:');
for i:=1 to m do
begin
max:=a[i,1];
for j:=2 to n do
begin
if a[i,j]>max then max:=a[i,j];
end;
b[i]:=max;
write (b[i]:4);
end;
readln;
end.


Слайд 55
Задание
Заполнить матрицу из 8 строк и 5 столбцов случайными числами

в интервале [-10,10] и вывести ее на экран.

Найти минимальный и максимальный элементы в матрице и их номера. Формат вывода:
Минимальный элемент A[3,4]=-6
Максимальный элемент A[2,2]=10
Вывести на экран строку, сумма элементов которой максимальна. Формат вывода:
Строка 2: 3 5 8 9 8


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

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



Слайд 57Квадратная матрица
Квадратная матрица- это двумерный массив, в котором количество строк

равно количеству столбцов.
Обращение к элементу происходит также как и в обычном двумерном массиве A[i,j].

Слайд 58Основные свойства квадратной матрицы
1. Квадратные матрицы имеют главную и побочную

диагонали. Например, для матрицы А на главной диагонали лежат элементы 1,4,9, на побочной - 45,4,12.
Если i = j - элементы расположены на главной диагонали;
i > j - элементы расположены ниже главной диагонали;
i < j - элементы расположены выше главной диагонали;
i > j - элементы расположены на главной диагонали и ниже;
i< j - элементы расположены на главной диагонали и выше;
i+j = n+1 - элементы расположены на побочной диагонали;
i+j < n+1 - элементы расположены над побочной диагональю;
i+j > n+1 - элементы расположены под побочной диагональю

Слайд 59Основные свойства квадратной матрицы
2. Квадратная матрица, у которой все элементы,

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

3. Диагональная матрица, у которой все элементы, стоящие на главной диагонали равны 1, называется единичной матрицей


Слайд 60Написать программу, позволяющую получить матрицу следующего вида:
for i:=l to n do
for

j:=l to n do A[i,j]:= 2;

{блок заполнения элементов
главной диагонали массива}
for i:=l to n do A[i,i]:= 5;

{блок заполнения элементов
побочной диагонали массива}
for i:=l to n do A[i,n-i+1]:= 4;


Слайд 61Написать программу, позволяющую получить матрицу следующего вида:
Особенностью этой матрицы является то,

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

При объявлении числовой матрицы, все ее элементы заполняются нулями, значит в нашем случае, для заполнения матрицы нам достаточно указать блоки заполнения ее главной диагонали и блок заполнения элементов над главной диагональю, т.е.:
{блок заполнения элементов главной диагонали массива}
for i:=l to n do A[i,i]:= 5;
{блок заполнения элементов над главной диагональю массива}
for i:=1 to n-1 do
for j:=i+l to n do A[i,j]:= 2;


Слайд 62Написать программу, позволяющую получить матрицу следующего вида:
{блок заполнения элементов главной диагонали

массива}
for i:=l to n do A[i,i]:= 5;

{блок заполнения элементов под главной диагональю массива}
for i:=2 to n do for j:=l to i-1 do A[i,j]:= 3;


Слайд 63Написать программу, позволяющую получить матрицу следующего вида:
{блок заполнения элементов побочной диагонали

массива}
for i:=l to n do A[i,n-i+1]:= 7;

{блок заполнения элементов над побочной диагональю массива}
for i:=1 to n-1 do
for j:=l to n-i do A[i,j]:= 1;


Слайд 64Написать программу, позволяющую получить матрицу следующего вида:
{блок заполнения элементов побочной диагонали

массива}
for i:=l to n do A[i,n-i+1]:= 7;

{блок заполнения элементов под побочной диагональю массива}
for i:=n downto 2 to n do
for j:= n-i+2 to n do A[i,j]:= 1;


Слайд 65На основе изученных блоков сформировать и распечатать матрицы следующего вида:
Задание №

1

Задание № 2


Слайд 66Задания для самостоятельной работы
Дана целочисленная квадратная матрица 4х4, заполненная случайным образом.

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

2. Дана матрица А вида: Составить программу формирующую данную матрицу.


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика