Числовая последовательность формируется по правилу: Uо=cos(x); U1=cos(x+h); U2=cos(x+2h); Un=cos(x+nh). Среди тех элементов последовательности U=(Uo,U1,…Un) , которые превышают по модулю заданное значение b , найти максимальный и минимальный элементы, после чего поменять их местами (0

uses crt;
const max=100;
var u:array[0..max] of real;
    n,i,imn,imx:byte;
    x,h,b,t,mx,mn:real;
begin
clrscr;
repeat
write('Размер последовательности n=');
readln(n);
until n in [1..max];
write('Введите x=');
readln(x);
write('Введите h=');
readln(h);
repeat
write('Введите число для поиска 0<b<1 b=');
readln(b);
until (b>0)and(b<1);
writeln('Исходная последовательность:');
for i:=0 to n do
 begin
  u[i]:=cos(x*h*i);
  write(u[i]:6:2);
 end;
writeln;
writeln;
imn:=0;imx:=0;
mx:=-1;mn:=1;
for i:=0 to n do
if abs(u[i])>abs(b)then
 begin
  if u[i]>mx then
   begin
    mx:=u[i];
    imx:=i;
   end;
  if u[i]<mn then
   begin
    mn:=u[i];
    imn:=i;
   end;
 end;
if imn=0 then write('В последовательности нет элементов по модулю больше ',b:0:2)
else
 begin
  writeln('минимальный  элемент=',mn:0:2,' его номер=',imn);
  writeln('максимальный элемент=',mx:0:2,' его номер=',imx);
  t:=u[imx];u[imx]:=u[imn];u[imn]:=t;
  writeln;
  writeln('Последовательность после обмена мин и макс элементов:');
  for i:=0 to n do
  write(u[i]:6:2);
 end;
readln
end.
readln
end.

Leave a Comment

+ 59 = 68