ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ
Постановка задачи:
1. Повторить тему "массивы (вектора и матрицы)".
2. В контрольной работе 2 задания:
обработка одномерного массива (вектора);
а) 1 -я обработка;
б) 2 -я обработка.
3. программа должна иметь блочную структуру.
ЗАДАНИЕ: Заполнить одномерный числовой массив и выбрать из него отрицательные элементы. Найти среднее арифметическое отрицательных элементов массива. Отрицательные элементы отсортировать по возрастанию.
ПРИМЕР РЕШЕНИЯ:
Program Vektor;
uses crt;
type mas=array[1..40] of integer;
var i, k, s, n, p, q: integer;
a, d: mas;
procedure Input;
begin
randomize;
p:= -10;
q:= 10;
for i:=1 to n do
a[i]:=random(q-p+1)+p;
end;
procedure Print (y: mas; x: integer);
begin
for i:=1 to x do
write(y[i],' ');
writeln;
writeln;
end;
procedure Vybor;
begin
k:=0;
for i:=1 to n do
if a[i]<0 then
begin
k:=k+1;
d[k]:=a[i];
end;
end;
function Sredn_Arifm: real;
begin
s:=0;
if k<>0 then
begin
for i:=1 to k do
s:=s+d[i];
Sredn_Arifm:=s/k;
end
else
Sredn_Arifm:=0
end;
procedure Sort;
var l,j,min: integer;
begin
k:=0;
l:=0;
for i:=1 to k-1 do
begin
min:=d[i];
for j:=i+1 to k do
if d[j]<min then
begin
min:=d[j];
l:=j;
d[l]:=d[i]; d[i]:=min
end
end
end;
Begin
ClrScr;
write('Число элементов(<40) : ');
readln(n);
clrscr;
Input;
write('Исходный массив A: ');
Print(a,n);
Vybor;
write('Mассив D: ');
Print(d,k);
writeln('Среднее арифметическое отрицательных элементов массива равно ',Sredn_Arifm);
if Sredn_Arifm=0 then
writeln('Нет отрицательных элементов');
Sort;
if Sredn_Arifm<>0 then
begin
write('Отсортированный массив по возрастанию: ');
Print(d,k)
end;
readkey;
End.