Вопрос по информатике:
Задан массив из 20 чисел. Преобразовать его по следующему принципу: все отрицательные элементы перенести в начало массива, а все остальные в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива. Элементы массива не сортировать.
Буду очень благодарна за помощь :)
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 08.08.2017 10:27
- Информатика
- remove_red_eye 8300
- thumb_up 6
Ответы и объяснения 2
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
- 09.08.2017 19:01
- thumb_up 37
Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
var a:=ArrRandom(20,-99,99); a.Println;
a.Where(x->xx>=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->xx>=0)).ToArray;
a.Println
end.
- 01.01.1970 00:00
- thumb_up 44
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.