Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.62 KB | None | 0 0
  1. {Лабораторная работа 2}
  2. program lab2;
  3. const lmax=20; {максимальная длина массива}
  4. var
  5. r: array[1..lmax] of real;
  6. i, n, nmax, nmin, m, k: integer;
  7. a, max, h, x, min, sr: real;
  8. begin
  9. cls;
  10.  writeln(‘Лабораторная работа 2');
  11. {Задание 1}
  12. writeln('Задание 1');
  13. {Ввод исходных данных для задания 1}
  14. writeln('Введите длину массива от 1 до , lmax);
  15.  read(n);
  16.  writeln('Введите a=');
  17.  read(a);
  18.  writeln(' Введите x=');
  19.  read(x);
  20.  writeln(' Введите h=');
  21.  read(h);
  22.  {инициализация}
  23.  for i:=1 to n do
  24.  begin
  25.    r[i]:=0.8*cos(a*x - i*h); {заполнение массива по формуле}
  26.    writeln(r[i]:10:3);  {вывод массива на экран}
  27.  end;
  28.   {Задание 2}
  29.  writeln('Задание 2');
  30.  nmin:=0; {номер минимума}
  31.  nmax:=0; { номер максимума}
  32.  min:=1E38; {значение минимума}
  33.  max:=-1E38; { значение  максимума}
  34.  for i:=1 to n do
  35.  begin
  36.  if r[i]>max  then
  37.  begin
  38.  max:=r[i];
  39.  nmax:=i;
  40.   end;
  41.  
  42.  if r[i]<min  then
  43.  begin
  44.  min:=r[i];
  45.  nmin:=i;
  46.  end;
  47.    end;
  48.  {Найдены значения минимума и максимума. Удалим положительные эл-ты, заключенные в этих границах}
  49. k:=0;
  50. i:=1;
  51. for i:=1 to n do begin
  52. if nmax>nmin then begin
  53.     if (i>nmin) and (i<nmax) then begin  {расположен между min и max}
  54.       if r[i]<=0  then begin  {отрицательный - остается}
  55.         k := k + 1;
  56.         r[k] := r[i];
  57.       end;
  58.     end
  59.     else begin {расположен не между min и max - остается}
  60.       k := k + 1;
  61.       r[k] := r[i];
  62.     end;
  63. end
  64.  else
  65.        if (i>nmax) and (i<nmin) then begin  { расположен между min и max }
  66.       if r[i]>=0  then begin  { отрицательный - остается }
  67.         k := k + 1;
  68.         r[k] := r[i];
  69.       end;
  70.     end
  71.     else begin { расположен не между min и max - остается }
  72.       k := k + 1;
  73.       r[k] := r[i];
  74.     end;
  75. end;
  76. {Вывод задания 2}
  77. writeln('Массив R после удаления:');
  78. for i := 1 to k do begin
  79. writeln(r[i]:10:3);
  80. end;
  81. {Задание 3}
  82. sr:=0; m:=0;
  83. for i:=1 to n do
  84.   begin
  85.     if i>nmax then
  86.       begin
  87.         sr:=sr+r[i];
  88.         m:=m+1;
  89.       end;
  90.    end;
  91.  writeln('Среднее арифметическое элементов, расположенных после max :', sr/m);
  92. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement