Разделы презентаций


Динамические массивы

Содержание

Динамический массив – массив, размер которого может меняться во время исполнения программы.1 ФормированиеДинамические массивыОбъявление массиваЗадание размера одномерного динамического массива:procedure SetLength(var a: System.Array; n: integer); Задание размера n-мерного динамического массива:procedure SetLength(var a:

Слайды и текст этой презентации

Слайд 1Динамические массивы
Формирование;
Удаление элемента;
Вставка элемента;
Многомерные массивы;
Контрольная точка 2.

Динамические массивыФормирование; Удаление элемента; Вставка элемента;Многомерные массивы;Контрольная точка 2.

Слайд 2Динамический массив – массив, размер которого может меняться во время

исполнения программы.
1 Формирование
Динамические массивы
Объявление массива
Задание размера одномерного динамического массива:
procedure SetLength(var

a: System.Array; n: integer);

Задание размера n-мерного динамического массива:
procedure SetLength(var a: System.Array; n1,n2,...: integer);

 Возвращает длину m-той размерности динамического массива (размерности нумеруются с нуля)
function Length(a: System.Array; m: integer): integer;

Индекс с 0 !!!

Динамический массив – массив, размер которого может меняться во время исполнения программы.1 ФормированиеДинамические массивыОбъявление массиваЗадание размера одномерного

Слайд 3Пример: Заполнить значениями динамический массив, размер массива устанавливает пользователь.
1 Формирование
Динамические

массивы
var
a :array of real;
i, N : integer;
begin

write('Введите размер массива: ');
readln(N);
// задание размера массива
SetLength(a,N);
// заполнение массива случайными значениями
for i := 0 to N-1 do a[i] := random(0,100);
// вывод значений на экран
for i := 0 to N-1 do writeln('a[',i,']=',a[i]);
end.

var
a :array of real;
i, N : integer;
begin
write('Введите размер массива: ');
readln(N);
// задание размера массива
SetLength(a,N);
// заполнение массива значениями
writeln('Введите значения элементов массива: ');
for i := 0 to N-1 do
begin
write('a[',i,']=');
readln(a[i]);
end;
end.

Пример: Заполнить значениями динамический массив, размер массива устанавливает пользователь.1 ФормированиеДинамические массивыvar  a :array of real; i,

Слайд 4Пример: Переписать в массив B не нулевые элементы массива A(N).
1

Формирование
Динамические массивы
const
N = 10;
var
a: array [0..N-1] of integer;

b: array of integer;
i,j : integer;
begin
for i := 0 to N-1 do
begin// заполнение массива значениями
a[i] := random(-2, 2);
writeln('a[', i, ']=', a[i]);
end;

j := 0;
for i := 0 to N-1 do
begin// анализ a и заполнение b
if a[i]<>0 then
begin
SetLength(b, length(b)+1);
b[j] := a[i];
j := j + 1;
end;
end;
writeln;
for i := 0 to length(b) - 1 do writeln('b[', i, ']=', b[i]);
end.

Пример: Переписать в массив B не нулевые элементы массива A(N).1 ФормированиеДинамические массивыconst N = 10;var a: array

Слайд 5Динамические массивы
Формирование;
Удаление элемента;
Вставка элемента;
Многомерные массивы;
Контрольная точка 2.

Динамические массивыФормирование; Удаление элемента; Вставка элемента;Многомерные массивы;Контрольная точка 2.

Слайд 62 Удаление элемента
Динамические массивы
Нужно удалить элемент с инд. 2
Переписать 3

в 2, 4 в 3
Уменьшить размер массива на 1

2 Удаление элементаДинамические массивыНужно удалить элемент с инд. 2Переписать 3 в 2, 4 в 3Уменьшить размер массива

Слайд 7Пример: Удалить из массива A нулевые элементы.
2 Удаление элемента
Динамические массивы
Вариант

1. Алгоритм решения:
Заполнить значениями динамический массив. Размер массива задает пользователь
При

наличии нулевого элемента сместить последующие на одну позицию влево. Уменьшить размер массива на 1.
Завершить вычисления при проверки последнего элемента.
Пример: Удалить из массива A нулевые элементы.2 Удаление элементаДинамические массивыВариант 1. Алгоритм решения:Заполнить значениями динамический массив. Размер

Слайд 82 Удаление элемента
Динамические массивы
var
a: array of real;
i,

j, N: integer;
begin
write('Введите размер массива: ');
readln(N);
SetLength(a, N);

// задание размера массива
for i := 0 to N - 1 do
begin// заполнение массива значениями
a[i] := random(-1, 1);
writeln('a[', i, ']=', a[i]);
end;
i := 0;
while i < length(a) do
begin
if a[i] = 0 then
begin // если элемент нулевой, то сдвигаем влево
for j := i + 1 to length(a) - 1 do a[j - 1] := a[j];
SetLength(a, length(a) - 1);
end
else i := i + 1;
end;
for i := 0 to length(a) - 1 do writeln('a[', i, ']=', a[i]);
end.

a[0]=0
a[1]=0
a[2]=1
a[3]=-1
a[4]=0
a[5]=1
a[6]=1
a[7]=-1
a[8]=0
a[9]=-1

a[0]=1
a[1]=-1
a[2]=1
a[3]=1
a[4]=-1
a[5]=-1

2 Удаление элемента Динамические массивыvar a: array of real; i, j, N: integer;begin write('Введите размер массива: ');

Слайд 9Пример: Удалить из массива A нулевые элементы.
2 Удаление элемента
Динамические

массивы
Вариант 2. Алгоритм решения:
Заполнить значениями динамический массив. Размер массива задает

пользователь
При наличии нулевого элемента сместить последующие на одну позицию влево.
Завершить анализ при проверки последнего элемента.
Уменьшить размер массива на число нулевых элементов.
Пример: Удалить из массива A нулевые элементы.2 Удаление элемента Динамические массивыВариант 2. Алгоритм решения:Заполнить значениями динамический массив.

Слайд 10Динамические массивы
Формирование;
Удаление элемента;
Вставка элемента;
Многомерные массивы;
Контрольная точка 2.

Динамические массивыФормирование; Удаление элемента; Вставка элемента;Многомерные массивы;Контрольная точка 2.

Слайд 113 Вставка элемента
Динамические массивы
Нужно вставить новый элемент со значением 11
Увеличить

размер массива
Переписать 4-5, 3-4, 2-3
Записываем 11 в 2

3 Вставка элементаДинамические массивыНужно вставить новый элемент со значением 11Увеличить размер массиваПереписать 4-5, 3-4, 2-3Записываем 11 в

Слайд 12Пример: Удвоить нулевые элементы массив A.
3 Вставка элемента
Динамические массивы
var

a: array of integer;
i,j,N : integer;
begin
write('Введите размер массива:

');
readln(N);
SetLength(a, N); // задание размера массива
for i := 0 to N-1 do
begin// заполнение массива значениями
a[i] := random(-2, 2);
writeln('a[', i, ']=', a[i]);
end;

i := 0;
while i < length(a) do
begin
if a[i] = 0 then
begin //если есть нулевой, то сдвигаем влево
setlength(a,length(a)+1);
for j := length(a)-1 downto i+1
do a[j]:= a[j-1];
inc(i);
end;
inc(i);
end;
writeln;
for i := 0 to length(a) - 1 do writeln('a[', i, ']=', a[i]);
end.

Пример: Удвоить нулевые элементы массив A.3 Вставка элемента Динамические массивыvar a: array of integer; i,j,N : integer;begin

Слайд 133 Вставка элемента
Динамические массивы
Введите размер массива: 10
a[0]=1
a[1]=1
a[2]=0
a[3]=0
a[4]=2
a[5]=-1
a[6]=1
a[7]=-2
a[8]=0
a[9]=-2

a[0]=1
a[1]=1
a[2]=0
a[3]=0
a[4]=0
a[5]=0
a[6]=2
a[7]=-1
a[8]=1
a[9]=-2
a[10]=0
a[11]=0
a[12]=-2

3 Вставка элементаДинамические массивыВведите размер массива: 10a[0]=1a[1]=1a[2]=0a[3]=0a[4]=2a[5]=-1a[6]=1a[7]=-2a[8]=0a[9]=-2a[0]=1a[1]=1a[2]=0a[3]=0a[4]=0a[5]=0a[6]=2a[7]=-1a[8]=1a[9]=-2a[10]=0a[11]=0a[12]=-2

Слайд 14Динамические массивы
Формирование;
Удаление элемента;
Вставка элемента;
Многомерные массивы;
Контрольная точка 2.

Динамические массивыФормирование; Удаление элемента; Вставка элемента;Многомерные массивы;Контрольная точка 2.

Слайд 154 Многомерные массивы
Динамические массивы
Объявление двумерного статического и динамического массивов
Задание

размера n-мерного динамического массива:
procedure SetLength(var a: System.Array; n1,n2,...: integer);
SetLength(a,

3,6); - задание размера массива 3x6 ([0..2,0..5])
4 Многомерные массивы Динамические массивыОбъявление двумерного статического и динамического массивовЗадание размера n-мерного динамического массива:procedure SetLength(var a: System.Array;

Слайд 164 Многомерные массивы
Динамические массивы
Пример: Рассчитать значение функции y= 5x+10

на отрезке. Сформировать массив, который будет содержать в первом столбце

значения аргумента, во втором – функции.

Алгоритм решения:
Считать границы вычисления функции;
Объявить двумерный массив;
Заполнить массив значениями.

4 Многомерные массивы Динамические массивыПример: Рассчитать значение функции y= 5x+10 на отрезке. Сформировать массив, который будет содержать

Слайд 174 Многомерные массивы
Динамические массивы
var
xy: array [,] of real;

i,N : integer;
a,b,h : real;
begin
write('Введите параметры отрезка: a,

b, h : ');
readln(a,b,h);
N := round((b-a)/h) + 1;
SetLength(xy, N, 2);
xy[0,0] := a;
xy[0,1] := 5*xy[0,0] + 10;
for i := 1 to N-1 do
begin
xy[i,0] := xy[i-1,0] + h;
xy[i,1] := 5*xy[i,0] + 10;
end;
for i := 0 to N-1 do
writeln('x=', xy[i,0]:3:2,' y=', xy[i,1]:3:2);
end.

Введите параметры отрезка: a, b, h : -1 3 0.3
x=-1.00 y=5.00
x=-0.70 y=6.50
x=-0.40 y=8.00
x=-0.10 y=9.50
x=0.20 y=11.00
x=0.50 y=12.50
x=0.80 y=14.00
x=1.10 y=15.50
x=1.40 y=17.00
x=1.70 y=18.50
x=2.00 y=20.00
x=2.30 y=21.50
x=2.60 y=23.00
x=2.90 y=24.50

4 Многомерные массивы Динамические массивыvar xy: array [,] of real; i,N : integer; a,b,h : real;begin write('Введите

Слайд 184 Многомерные массивы
Динамические массивы
Пример: Найти строку в матрице A(M,N) с

наибольшим средним арифметическим.
Алгоритм решения:
Заполнить массив значениями;
Вывести на экран матрицу;
Рассчитать среднее

арифметическое для каждой строки;
Выбрать из средних арифметических наибольшее.

4 Многомерные массивыДинамические массивыПример: Найти строку в матрице A(M,N) с наибольшим средним арифметическим.Алгоритм решения:Заполнить массив значениями;Вывести на

Слайд 194 Многомерные массивы
Динамические массивы
const
N = 10;
M =

5;
var
A: array [1..N,1..M] of integer;
i,j,row : integer;
sum,

mean: real;
begin
for i := 1 to N do
begin
for j := 1 to M do
begin
A[i,j] := random(10);
write (A[i,j],' ');
end;
writeln;
end;

row := 0;
mean := 0;
for i := 1 to N do
begin
sum := 0;
for j := 1 to M do sum := sum + A[i,j];
if (sum/M) > mean then
begin
mean := sum/M;
row := i;
end;
end;
writeln('Наибольшее среднее арифметическое ',mean:3:1,' в строке ',row);
end.

4 Многомерные массивы Динамические массивыconst N = 10; M = 5;var A: array [1..N,1..M] of integer; i,j,row

Слайд 204 Многомерные массивы
Динамические массивы
7 5

2 9

7
2 7 8 7 5
3 0 3 9 8
4 3 8 6 4
3 6 9 8 9
7 5 0 1 5
3 9 1 2 9
1 0 0 1 7
0 5 7 9 9
8 9 0 7 4

Наибольшее среднее арифметическое 7.0 в строке 5
4 Многомерные массивы Динамические массивы7     5     2

Слайд 21Динамические массивы
Формирование;
Удаление элемента;
Вставка элемента;
Многомерные массивы;
Контрольная точка 2.

Динамические массивыФормирование; Удаление элемента; Вставка элемента;Многомерные массивы;Контрольная точка 2.

Слайд 225 Контрольная точка 2
Динамические массивы
Состав теста 9 заданий:
Циклы for,

while, repeat..until (3 шт.); 
Циклы for, while, repeat..until с вложенным условием(3

шт.); 
Вложенные циклы: for в for, while в repeat..until, repeat..until в while (3 шт).

Вклад верно выполненного задания – 11.1% рейтинга
Время выполнения теста – 30 минут.

5 Контрольная точка 2 Динамические массивыСостав теста 9 заданий:Циклы for, while, repeat..until (3 шт.); Циклы for, while, repeat..until

Слайд 235 Контрольная точка 2
Динамические массивы
Что будет выведено на экране

при выполнении данной программы?
var
i: integer;
begin
for i := 8

to 14 do
write(i div 3);
end.

2333444

5 Контрольная точка 2 Динамические массивыЧто будет выведено на экране при выполнении данной программы?var  i: integer;beginfor

Слайд 245 Контрольная точка 2
Динамические массивы
Что будет выведено на экране

при выполнении данной программы?
var
i: integer;
begin
i := 12;
while i>=3

do
begin
if (i-1) mod 3 = 0 then
write(i);
i := i-1;
end;
end.

1074

5 Контрольная точка 2 Динамические массивыЧто будет выведено на экране при выполнении данной программы?var  i: integer;begini

Слайд 255 Контрольная точка 2
Динамические массивы
Что будет выведено на экране

при выполнении данной программы?
var
i, j: integer;
begin
for i :=

1 to 3 do
begin
j := 7-i;
repeat
write(j);
j := j-1;
until j<=4
end;
end.

6554

5 Контрольная точка 2 Динамические массивыЧто будет выведено на экране при выполнении данной программы?var  i, j:

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

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

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

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

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


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

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