Другие языки программирования и технологии

паскаль ребят помогите завтра сдать надо. буду очень благодарен

Эммм.. . Не далее, как пару-тройку часов назад писала подобную программу.

program N58159138;
var arr:array[1..100] of real;
n,i,j,ineg:integer;
s,tmp:real;
begin
write('Введите размер массива: ');
readln(n);
writeln('Исходный массив: ');
randomize;
ineg := 0;
for i := 1 to n do
begin
arr[ i ] := random * 7 - 2;
write(arr[ i ]:8:2);
if (ineg = 0) and (arr[ i ] < 0) then ineg := i;
end;
writeln;
s := 0;
i := ineg + 1;
while (i <= n) and (arr[ i ] >= 0) do
begin
s := s + arr[ i ];
inc(i); {или i := i + 1;}
end;
writeln('Сумма элементов между 1-м и 2-м отрицательными ',s:0:2);
{Преобразование массива}
j := 1;
for i := 1 to n do
if abs(arr[ i ]) <= 1 then
begin
tmp := arr[ j ];
arr[ j ] := arr[ i ];
arr[ i ] := tmp;
inc(j); {или j := j + 1;}
end;
writeln('Преобразованный массив: ');
for i := 1 to n do
write(arr[ i ]:8:2);
readln
end.

Или, если важно сохранить порядок следования элементов в массиве, то:
{Преобразование массива}
for i := 2 to n do
if abs(arr[ i ]) <= 1 then
begin
tmp:=arr[ i ];
j := i-1;
while (j > 0) and (abs(arr[ j ]) > 1) do
begin
arr[ j+1 ] := arr[ j ];
dec(j); {или j := j - 1;}
end;
arr[ j+1 ] := tmp;
end;

P.S. У меня иногда создаётся впечатление, что здесь сидят одноклассники или одногруппники из одного учебного заведения. Одни и те же задания.
Евгений Оболонко
Евгений Оболонко
51 590
Лучший ответ
Чем помочь то?
Temirlan Zhakenov
Temirlan Zhakenov
28 666
Полагаю что код надо написать =)
да вроде все понятно тут