ПЗ № 45

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 45


ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ

Постановка задачи:

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.