var a: array[1..MAX_SIZE] of integer; i, size: integer;
procedure delete_odd_elements(); var i, j: integer; begin i := 1; repeat if odd(a[i]) then begin dec(size); for j := i to size do a[j] := a[j + 1] end else inc(i); until i > size; end;
begin writeln('Исходный массив: '); size := MAX_SIZE; for i := 1 to size do begin a[i] := random(100); write(a[i] : 3); end; delete_odd_elements; writeln; writeln('Полученный массив: '); for i := 1 to size do write(a[i] : 3); end.
Язык не указан, решение приводится на языке Pascal. Поскольку в стандарте языка не определена функция арккосинуса, используем для её вычисления следующую формулу:
const m=10; n=6; var a:array[1..m,1..n] of real; i,j,nn,np:integer; t:real; begin Randomize; Writeln('Исходный массив'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=100*Random-50; Write(a[i,j]:4:0) end; Writeln end; Writeln('Преобразованный массив'); for i:=1 to m do begin for j:=1 to n do begin t:=i/(i+j); a[i,j]:=a[i,j]*arctan(sqrt(1-sqr(t))/t); Write(a[i,j]:8:3) end; Writeln end; Writeln('Количество положительных и отрицательных по столбцам'); for j:=1 to n do begin nn:=0; np:=0; for i:=1 to m do if a[i,j]>0 then Inc(np) else if a[i,j]<0 then Inc(nn); Writeln(np,nn:5) end end.
Оны как бы важные