Сформировать и вывести массив по правилу

Marina677

. Сформировать и вывести массив B(16) по правилу bi=.... Массив А и коэффициент k-вводятся. Найти m=... Рассортировать массив B по возрастанию.
5 ответов

Marina677

Сформировать и вывести массив B(16) по правилу bi=
for i:= 1 to 16 do
begin
    b[i]:=a[i]*sqrt(1+1/sqr(i))+k*sin(a[i]);
    Write(b[i]:0:2,' ')
end;
Найти m=
max:=abs(a[1]);
for i:=2 to 16 do
    if abs(a[i])>max then max:=abs(a[i]);
Зачем нужна сумма? Ну да ладно:
s:=0;
for i:=1 to 16 do
    s:=s+b[i];
Рассортировать массив B по возрастанию.
for i:=1 to 15 do
begin
    imin:=i;
    for j:=i+1 to 16 do
        if b[j]<b[imin] then imin:=j;
    temp := b[i];
    b[i] := b[imin];
    b[imin] := temp
end;


Marina677

а как всё это совместить в одну программу?


Marina677

var k,i,j,imin: Integer;
    a,b: array[1..16] of Real;
    temp,s,max: Real;
 
begin
    Randomize;
    Write('Enter k: ');
    ReadLn(k);
    for i:=1 to 16 do
    begin
        a[i] := random * 20;   //Можешь задать вручную Read(a[i])
        Write(a[i]:0:2,' ')
    end;
    //если вручную, то после end; добавь ReadLn;
    WriteLn;
    WriteLn;
    for i:= 1 to 16 do
    begin
        b[i]:=a[i]*sqrt(1+1/sqr(i))+k*sin(a[i]);
        Write(b[i]:0:2,' ')
    end;
    WriteLn;
    WriteLn;
    s:=0;
    for i:=1 to 16 do
        s:=s+b[i];
    max:=abs(a[1]);
    for i:=2 to 16 do
        if abs(a[i])>max then max:=abs(a[i]);
    for i:=1 to 15 do
    begin
        imin:=i;
        for j:=i+1 to 16 do
            if b[j]<b[imin] then imin:=j;
        temp := b[i];
        b[i] := b[imin];
        b[imin] := temp
    end;
    for i:=1 to 16 do
    begin
        Write(b[i]:0:2,' ')
    end;
    WriteLn;
    WriteLn;
    WriteLn('max|a[1..16]| = ',max:0:2);
    WriteLn('S(b[1..16]) = ',s:0:2)
end.


Marina677

почему в этой программе нету формул?


Marina677

Как это нет? Первая
b[i]:=a[i]*sqrt(1+1/sqr(i))+k*sin(a[i]);
Вторая (поиск максимального)
max:=abs(a[1]);
    for i:=2 to 16 do
        if abs(a[i])>max then max:=abs(a[i]);
Третья (вычисление суммы)
s:=0;
    for i:=1 to 16 do
        s:=s+b[i];