Просмотр содержимого документа
«ТИПОВЫЕ АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРНЫХ МАССИВОВ»
Урок #
Тема: ТИПОВЫЕ АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРНЫХ МАССИВОВ
1.Описание массива. Назначение: необходим при использовании процедур и функций программиста. | 2.Описание массива. Назначение: используется, когда нет процедур и функций программиста. |
const n=10; type massiv = array[1..n] of integer; var mas1: massiv; | const n=10; var mas1: array[1..n] of integer; |
1.
Ввод массива 
1) Поэлементный ввод 2) Формирование массива с
с клавиатуры: использованием генератора
На некоторых компьютерах идет такая схема алгоритма (зависит от процессора):
randomize;
For i:=1 to n do
mas1[i]:= – 50+random(100);
Универсальная схема алгоритма:
randomize;
x:=100;
For i:=1 to n do
begin
r:= random(x); mas1[i]:= – 50+r;
end;
случайных чисел:
For i:=1 to n do
begin
write('mas1[',i,']=');
readln(mas1[i]);
end;
3
) Ввод массива по формуле:
For i:=1 to n do
mas1[i]:= {формула};
2. Вывод массива на экран

1) Вывод в строку: 2) Вывод в столбик:
{ для mas1[i]:real;} {для mas1[i] : integer}
For i:=1 to n do
For i:=1 to n do For i:=1 to n do writeln(mas1[i]);
write(mas1[i]:5:1); write(mas1[i]:5);
writeln; writeln;
3. Алгоритмы обработки линейного массива

1) Сумма элементов массива 2) Произведение элементов массива
s:=0; p:=1;
for i:=1 to n do for i:=1 to n do
s:=s+mas1[i]; p:=p*mas[i];

3) Сумма отрицательных 4) Количество отрицательных
элементов массива элементов массива
s:=0; kol:=0;
for i:=1 to n do for i:=1 to n do
if mas1[i]
s:=s+mas1[i]; kol:=kol+1;

5) Есть ли в массиве элемент, 6) Заменить элементы с четными
равный заданному числу Х номероми числом Х
flag:=false;
for i:=1 to n do for i:=1 to n do
if mas1[i] = X then if i mod 2 =0 then
begin mas1[i]:=x;
flag:=true;
break;
end;

7) Поиск минимального 8) Поиск максимального
элемента элемента
min:=mas1[1]; num:=1; max:=mas1[1]; num:=1;
For i:=1 to n do For i:=1 to n do
if minmas1[i] then if max
begin begin
min:=mas1[i]; max:=mas1[i];
num:=i; num:=i;
end; end;
9
) Нахождение первого 10) Нахождение последнего
отрицательного элемента отрицательного элемента
for i:=n downto 1 do for i:=1 to n do
if mas1[i]
begin begin
x:=mas1[i]; x:=mas1[i];
num:=i; num:=i;
end; end;
Задание.
Дан линейный (одномерный) массив чисел, заданный случайным образом и содержащий положительные, отрицательные числа и нули. Выполнить следующие действия:
Найти сумму положительных элементов массива;
Найти сумму отрицательных элементов массива;
Найти количество положительных элементов массива;
Найти количество отрицательных элементов массива;
Найти номера и значения первого и последнего отрицательных элементов массива;
Найти сумму элементов массива, если среди них есть хотя бы один больший () единицы, и произведение - в противном случае;
Найти максимальный и минимальный элементы массива и их номера;
Найти значения двух наибольших элементов;
Найти сумму элементов массива, не превышающих максимального среди отрицательных;
Найти количество отрицательных элементов массива, превышающих отрицательное число, заданное с клавиатуры.
Найти сумму элементов массива, превышающих минимальный среди положительных;
Найти сумму и количество элементов из заданного промежутка чисел [a,b], причем a, b заданы с клавиатуры.