надо в программе С++ по информатике Необходимо протабулировать функцию у на заданном отрезке, затем записать в одномерный массив B все значения х, а в целочисленный массив C – все значения функции до минимального ее значения, округленные до целого.
y = (x2+x+2)ln(x+2) [-3, 2] ,h =0.5
Далее найти максимальный элемент в массиве B, а в массиве C – минимальный.
Сформировать матрицу A из массива B и массива C. Элементы главной диагонали матрицы - единицы, а вне главной диагонали должны вычисляться по формуле: A[I][J] = B[I]*C[J] – B[J]*C[I].
Размерность матрицы A– минимальная из размерностей массивов B и C. Определить количество отрицательных элементов в матрице К. В случае если количество отрицательных элементов больше трети всех элементов массива, необходимо заменить все отрицательные элементы на нули, а если количество отрицательных элементов меньше, то оставить без изменения.
Затем все значения исходной функции на отрезке вывести на печать в виде таблицы "Х Y", массивы B, C до и после изменений в виде строк с заголовками, матрицу К до и после изменения, все искомые результаты.
Внимание! Если программа не работает, обновите версию!
procedure BubbleSort(a:array of integer;
descending:Boolean:=False; // нужна ли сортировка по невозрастанию
u:integer:=-1; // начальный индекс
v:integer:=-1); // конечный индекс
// Простая пузырьковая сортировка элементов с индексами с u по v
begin
// обеспечим корректность параметров u и v
if u<0 then u:=0;
var n:=a.Length;
if (v<0) or (v>=n) then v:=n-1;
if u>v then Swap(u,v)
else if u=v then Exit;
// собственно, сортировка
if descending then begin // по невозрастанию
for var i:=v-1 downto u do
for var j:=u to i do
if a[j]<a[j+1] then Swap(a[j],a[j+1])
end
else begin
for var i:=v-1 downto u do // по неубыванию
for var j:=u to i do
if a[j]>a[j+1] then Swap(a[j],a[j+1])
end
end;
begin
Write(': ');
var a:=ArrRandom;
a.Println;
var (imin,imax):=(a.IndexMin,a.IndexMax);
var b:=Copy(a);
Write('1: '); BubbleSort(b,False,0,imax); b.Println;
b:=Copy(a);
Write('2: '); BubbleSort(b,False,imin); b.Println;
b:=Copy(a);
Write('3: '); BubbleSort(b,True,imax,imin); b.Println
end.
Пример
: 70 61 10 72 17 84 19 35 83 47
1: 10 17 61 70 72 84 19 35 83 47
2: 70 61 10 17 19 35 47 72 83 84
3: 70 61 84 72 17 10 19 35 83 47
const n=20;
var
a:array[1..n] of integer;
max,imax,i,j,t:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=Random(51)-25;
Write(a[i],' ')
end;
Writeln;
max:=a[1]; imax:=1;
for i:=2 to n do
if a[i]>max then begin max:=a[i]; imax:=i; end;
writeln('max = ',max);
for i:=1 to imax-1 do
for j:=1 to imax-i do
if a[j]>a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;
Writeln('Отсортированный массив:');
for i:=1 to n do Write(a[i],' ');
Writeln;
end.
Пример:
Исходный массив:
-5 -17 -19 4 -10 16 21 -23 22 24 -5 19 11 -24 6 -25 13 3 9 0
max = 24
Отсортированный массив:
-23 -19 -17 -10 -5 4 16 21 22 24 -5 19 11 -24 6 -25 13 3 9 0
2.
const n=20;
var
a:array[1..n] of integer;
min,imin,i,j,t:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=Random(51)-25;
Write(a[i],' ');
end;
Writeln;
min:=a[1]; imin:=1;
for i:=2 to n do
if a[i]<min then begin min:=a[i]; imin:=i; end;
writeln('min = ',min);
for i:=1 to n-imin-1 do
for j:=imin to n-i do
if a[j]>a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;
Writeln('Отсортированный массив:');
for i:=1 to n do Write(a[i],' ');
Writeln;
end.
Пример:
Исходный массив:
3 -24 -16 -9 -25 3 -25 17 -22 -3 8 2 -7 -8 -8 -24 -23 12 24 -24
min = -25
Отсортированный массив:
3 -24 -16 -9 -25 -25 -24 -24 -23 -22 -8 -8 -7 -3 2 3 8 12 17 24
3.
const n=20;
var
a:array[1..n] of integer;
max,imax,min,imin,i,j,t:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=Random(51)-25;
Write(a[i],' ')
end;
Writeln;
max:=a[1]; imax:=1;
min:=a[1]; imin:=1;
for i:=2 to n do
begin
if a[i]>max then begin max:=a[i]; imax:=i; end;
if a[i]<min then begin min:=a[i]; imin:=i; end;
end;
writeln('max = ',max,' min = ',min);
if imax>imin then begin
for i:=1 to imax-imin-1 do
for j:=imin to imax-i do
if a[j]>a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end
end else begin
for i:=1 to imin-imax-1 do
for j:=imax to imin-i do
if a[j]<a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; end;
Writeln('Отсортированный массив:');
for i:=1 to n do Write(a[i],' ');
Writeln;
end.
Пример:
Исходный массив:
-12 13 1 -17 -13 -10 23 5 8 -11 -9 -2 17 19 10 -5 14 10 -20 -9
max = 23 min = -20
Отсортированный массив:
-12 13 1 -17 -13 -10 23 19 17 14 10 10 8 5 -2 -5 -9 -11 -20 -9