Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
массивы.DOC
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
269 Кб
Скачать
☆

Сортировка элементов одномерного массива

for j:=1 to 9 do

begin

s:=a[j]; k:=j; {Поиск минимального элемента }

for i:=j+1 to 10 do

if a[i]<s then begin s:=a[i]; k:=i end;

a[k]:=a[j]; {Вынос "наверх" минимального элемента }

a[j]:=s;

end;

Предположим, что массив A содержит значения роста 10 учеников в сантиметрах. Требуется переместить числа в массиве A таким образом, что бы каждое последующее число было больше предыдущего (или равно ему). Т.е. перестроить шеренгу в порядке увеличения роста.

В случае трудностей понимания при первом прочтении это раздел можно опустить.

Основная идея алгоритма заключается в следующем:

9 раз среди оставшихся элементов ищется наименьший и если такой найден, то он меняется в первый раз с первым элементом, во второй раз - со вторым (на первом месте уже стоит найденный первый наименьший элемент). В 9-ый раз выбирается минимальный элемент из 9-го и 10-го элементов и меняется местами с 9-м элементом.

Методические указания по решению задач 1-5,7,9,12,13 из пункта 1.1.5

Задача 1. Подсчет ненулевых элементов

s:=0;

for i:=1 to 10 do

if a[i]<>0 then s:=s+1;

writeln(s);

Задача 2. Подсчет элементов, абсолютная величина которых больше 7

s:=0;

for i:=1 to 10 do

if ABS(a[i])>7 then s:=s+1;

writeln(s);

Задача 3. Поиск 7

i:=1;

while (i<=10) and (a[i]<>7) do i:=i+1;

if i>10 then writeln('нет ')

else writeln('да');

Задача 4. Разность максимального и минимального элементов

max:=a[1]; min:=a[1];

for i:=2 to 10 do

begin

if a[i]>max then max:=a[i];

if a[i]<min then min:=a[i];

end;

s:=max-min;

writeln(s);

Задача 5. Попарное сравнение 2-х массивов

s1:=0; s2:=0; s3:=0;

for i:=1 to 10 do

begin

if a[i]>b[i] then s1:=s1+1;

if a[i]=b[i] then s2:=s2+1;

if a[i]<b[i] then s3:=s3+1;

end;

writeln(s1,s2,s3);

Задача 7. Суммирование и подсчет

s:=0;

for i:=1 to 10 do s:=s+a[i];

r:=s/10;

n:=0;

for i:=1 to 10 do

if a[i]>r then n:=n+1;

writeln(n);

Задача 9. Поиск максимального, подсчет

max:=a[1];

for i:=1 to 10 do

if a[i]>max then max:=a[i];

s:=0;

for i:=1 to 10 do

if a[i]=max then s:=s+1;

writeln(s);

Задача 12.Поиск 0

i:=1;

while (i<=10) and (a[i]<>0) do i:=i+1;

if i>10 then writeln('нет ')

else writeln('первый 0 стоит на позиции',i);

Задача 13.Поиск отрицательного числа с КОНЦА (!) массива

i:=10;

while (i>=1) and (a[i]>=0) do i:=i-1;

if i<1 then writeln('отрицательных чисел нет ')

else writeln('последнее число<0 стоит на позиции',i);

1.1.3. Стандартная обработка двумерных массивов Двумерный массив и его части

Значительное количество практических задач требует обработки не одномерных, а двумерных массивов. Например, ниже представлен двумерный массив из 25 элементов, содержащий 5 строк и 5 столбцов:

5

-2

3

14

11

17

13

1

7

1

5

-2

3

14

20

8

0

9

10

-4

3

-6

3

14

16

Компонентами двумерного массива, требующими специальной обработки, могут быть его строки, столбцы и диагонали, например:

Вторая строка

Первая диагональ

(главная)

Вторая диагональ

(побочная)

Третий столбец

17 13 1 7 1

5

11

3

13

7

1

3

3

3

10

0

9

16

3

3