В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
GFGFDGDF
GFGFDGDF
26.03.2023 16:26 •  Информатика

Задан массив из 20 чисел. преобразовать его по следующему принципу: все отрицательные элементы перенести в начало массива, а все остальные в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива. элементы массива не сортировать. буду за : )

Показать ответ
Ответ:
anakukla2
anakukla2
28.09.2020 10:24
Const n=20;
var a:array[1..n] of integer;
i,j,k,c:integer;
begin
Randomize;
for i:=1 to n do
 begin
 a[i]:=random(51)-25;
 write(a[i]:4);
 end;
writeln;
k:=0;
for i:=1 to n do
 if a[i]<0 then
  begin
  k:=k+1;
  c:=a[i];
  for j:=i-1 downto k do a[j+1]:=a[j];
  a[k]:=c;
  end;
for i:=1 to n do write(a[i]:4);
writeln;
end.

Пример:
   5  25  24 -20  13  18  -2  21 -24  14  -2 -25 -18  13  23  11  22 -22 -21 -22
 -20  -2 -24  -2 -25 -18 -22 -21 -22   5  25  24  13  18  21  14  13  23  11  22
0,0(0 оценок)
Ответ:
denisskidan201
denisskidan201
28.09.2020 10:24
Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
  var a:=ArrRandom(20,-99,99); a.Println;
  a.Where(x->x<0).Concat(a.Where(x->x>=0)).Println
end.

Тестовое решение
88 94 55 -38 43 -72 3 -26 -1 -23 84 93 40 -8 -25 77 4 39 -50 3
-38 -72 -26 -1 -23 -8 -25 -50 88 94 55 43 3 84 93 40 77 4 39 3

Замечание:
Если стоит задача получить именно массив, а потом его вывести, можно написать так:
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
  var a:=ArrRandom(20,-99,99); a.Println;
  a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray;
  a.Println
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота