Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Инф_Паскаль_3_2007.doc
Скачиваний:
5
Добавлен:
14.08.2019
Размер:
338.94 Кб
Скачать

6.3. Фрагменты программ обработки массивов

6.3.1 Заполнение массивов

Заполнение двумерного массива размерности, заданной пользователем, числами, введенными пользователем с клавиатуры

Writeln('Введите число строк - m');

Readln(m);

Writeln('Введите число столбцов - n');

Readln(n);

For i:=1 to m do

For j:=1 to n do

Begin

Writeln('Введите элемент [',i, ',',j, '] ');

Readln(Matrix[i,j]);

End;

Заполнение массива размерности 35 случайными числами

Randomize;

For i:=1 to 3 do

For j:=1 to 5 do

Matrix[i,j]:=random(100);

6.3.2 Вывод элементов массива на экран

Вывод элементов массива размерности 35 на экран последовательно в столбец

For i:=1 to 3 do

For j:=1 to 5 do

Writeln('Элемент [',i, ',',j, '] = ', Matrix[i,j]:3:3);

Вывод элементов массива размерности 35 на экран последовательно в стоку

For i:=1 to 3 do

For j:=1 to 5 do

Write(' Элемент [',i, ',',j, '] = ', Matrix[i,j]:3:3);

Вывод элементов массива размерности 35 на экран построчно

For i:=1 to 3 do begin

For j:=1 to 5 do

begin

write(' [',i,',',j,']=',Matrix[i,j]:3:3);

end;

readln;

end;

Вывод элементов одномерного массива, стоящих на четных местах, на экран построчно

For i:= 1 to n div 2 do

Write (X[2*i]);

6.3.3. Подсчет отрицательных и положительных элементов, их сумм и средних значений

Ko:=0;

Kp:=0;

So:=0;

Sp:=0;

For i:=1 To N Do

If X[i]>0 Then

Begin

Kp:=Kp+1;

Sp:=Sp+X[i]

End

Else

If X[i]>0 Then

Begin

Ko:=Ko+1;

So:=So+ X[i]

End;

If Ko<>0 Then

Begin

Sro:= So/Ko;

Writeln('Количество отрицательных чисел = ', Ko);

Writeln('Сумма отрицательных чисел = ', So:8:2);

Writeln('Среднее отрицательных чисел = ',Sro:8:2);

End

Else Writeln('В массиве нет отрицательных чисел.');

If Kp<>0 Then

Begin

Srp:= Sp/Kp;

Writeln('Количество положительных чисел = ', Kp);

Writeln('Сумма положительных чисел = ', Sp:8:2);

Writeln('Среднее положительных чисел = ', Srp:8:2);

End

Else Writeln('В массиве нет положительных чисел.');

End;

6.3.4. Нахождение минимального и максимального элементов двумерного массива

max:=mass[1,1]; k:=1; l:=1;

min:=mass[1,1]; s:=1; t:=1;

for i:=1 to m do

for j:=1 to n do

begin

if mass[i,j]>max then begin

max:=mass[i,j];

k:=i; l:= j;

end

else if mass[i,j]<min then begin

min:=mass[i,j];

s:=i; t:= j;

end;

end;

writeln ('Максимальный элемент массива [',k,',',l,']=',max:2:2);

writeln ('Минимальный элемент массива [',s,',',t,']=',min:2:2);

6.3.5. Сортировка массива

Сортировка – это расположение чисел в порядке возрастания или убывания.

Наиболее распространенный и простой метод сортировки – метод «пузырька». Он требует минимального объема памяти для данных, но затраты времени на реализацию этого метода велики. Суть метода «пузырька» в следующем.

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

1) числа сравниваются попарно: первое со вторым; второе с третьим; i-тое – с (i+1) - тым;

2) если меньшее стоит в паре на втором месте (числа в паре не упорядочены по возрастанию), то сравниваемые числа меняются местами.

За один такой просмотр массива минимальное число «вытолкнется», по крайней мере, на одно место вверх (вперед), а максимальное – переместится в самый конец (вниз), т.е. минимальное число как легкий пузырек воздуха в жидкости постепенно «всплывает» в начало последовательности. Отсюда – название метода. За n-1 просмотр произойдет полное упорядочение массива при любом исходном расположении чисел в нем.

For k := 1 To n-1 Do

For i := 1 To n-1 Do

If X[i] > X[i+1] Then

Begin

A:=X[i];

X[i]:=X[i+1];

X[i+1]:=A

End;