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

Содержание

Слайд 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;

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

Слайд 6

Пример объявления несколько переменных типа массив:

VAR
mas_1: ARRAY[1..10] OF Real;
mas_2: ARRAY[5

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

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

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

Слайд 7

Пример: VAR Y:ARRAY[1..5] of integer;

Объявлен массив, имя которого Y, содержащий 5 элементов целого

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

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

Слайд 8

VAR
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)}

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

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

Слайд 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".

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

Слайд 10

Слайд 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.

ВВОД МАССИВА: Program vvod; Const maxM=10; Var tab1: array[1..maxM] of integer; i: integer;

Слайд 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.

ВЫВОД МАССИВА: Program vivod; Const maxM=10; Var tab1: array[1..maxM] of integer; i: integer;

Слайд 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.

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

Слайд 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.

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

Слайд 15

Пример 3:

Пример 3:

Слайд 16

Пример 3

Пример 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], определить сумму
отрицательных элементов.

Program Poisk; Const maxM=10; Var К: array[1..maxM] of integer; i,S: integer; Begin For

Слайд 18

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

Найти сумму отрицательных элементов массива из N вещественных чисел.
Найти количество

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

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

Слайд 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.

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

. . Program vvod2; Const maxM=10; Var tab1: array[1..maxM] of integer; i: integer;

Слайд 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.

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

Слайд 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.

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

Слайд 22

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

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

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

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

Слайд 23

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

Сгенерировать 2 одномерных массива по 23 элемента в каждом. Вывести

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

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

Слайд 24

Сортировка массива - это расстановка элементов
массива в некотором порядке.

Убывающий порядок - каждый

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

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

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

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

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

Слайд 25

Алгоритм сортировки выбором по возрастанию

Очевидно, что первое место в массиве должен занять минимальный

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

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

Слайд 26

СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА

CONST
SIZE=5; {размер массива}
Var
a:array[1..SIZE] of

integer;
i:integer; {номер элемента, от которого ведется поиск } {минимального элемента}
min:integer;{номер минимального элемента в части массива} { от i до верхней границы массива}
j:integer; {номер элемента, сравниваемого с минимальным}
buf: integer; {буфер, используемый при обмене элементов} {массива}
k: integer; {индекс для ввода и вывода}

СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА CONST SIZE=5; {размер массива} Var a:array[1..SIZE]

Слайд 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;

СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА Begin writeln(‘ Введите в одной строке

Слайд 28

СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА

{вывод отсортированного массива}
writeln(‘ Массив отсортирован’);
for k:=1

to SIZE do write(a[k]:4);
readln;
End.

СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ ПРЯМОГО ВЫБОРА {вывод отсортированного массива} writeln(‘ Массив отсортирован’);

Слайд 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(‘ Сортировка’);

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

Слайд 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.

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

Слайд 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 различных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются минимальный и максимальный элементы массива.

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

Слайд 33

Поиск элемента в упорядоченном массиве

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

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

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

Слайд 34

Алгоритм деления пополам

Первоначально номера крайних элементов массива 1 и n берут в качестве

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

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

Слайд 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;

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

Слайд 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.

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

Слайд 37

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

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

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

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

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

Слайд 38

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

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

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

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

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

Слайд 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]

Описание двумерных массивов: Const n=4; m=5; Var A :array [1..n, 1..m] of integer;

Слайд 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.

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

Слайд 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]);

Вывод массивов в виде таблицы For i:=1 to n do begin writeln; end;

Слайд 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.

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

Слайд 50

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

Вывод массива:

Пример 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;

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

Слайд 52

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

Сгенерировать матрицу целых чисел в диапазоне от -5 до

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

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

Слайд 53

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

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

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

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

Слайд 54

Program 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.

Program max_str; Uses crt; Const m=5; n=6; var i,j:byte; a: array [1..m, 1..n]

Слайд 55

Задание

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

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

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

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

Слайд 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 - элементы расположены под побочной диагональю

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

Слайд 59

Основные свойства квадратной матрицы

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

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

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

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

Слайд 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;

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

Слайд 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

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

Имя файла: Массивы.-Основы-алгоритмизации-и-программирования.pptx
Количество просмотров: 19
Количество скачиваний: 0