Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Нужна помощь по массивам

Автор: V@ntuz 25.12.2005 18:44

Если не трудно можете помочь? Даны массивы А [1..6],В [1..6],С [1..6]. Переставить элементы в них таким образом, чтобы слева подряд были записаны отрицательные, а справа положительные ( с использованием процедуры). Заранее спасибо!

Автор: klem4 25.12.2005 18:46

Помоему ты неджавно уже задавал http://forum.pascal.net.ru/index.php?showtopic=8272&hl=, а ты в курсе что дублировать темы не хорошо ? dry.gif

Ответ кстати будет аналогичный : http://forum.pascal.net.ru/index.php?showtopic=3065

Выбирай любой

Автор: volvo 26.12.2005 14:57

blink.gif При чем тут сортировка? При сортировке и порядок положительных/отрицательных элементов друг относительно друга может измениться, а нужно просто перенести отрицательные перед положительными, скорее всего - сохраняя порядок...

const
n = 6;
type
arrType = array[1 .. n] of integer;

procedure reform(var arr: arrType);
var T, i, j, last_neg: integer;
begin

last_neg := 0;
for i := 1 to n do begin
if arr[i] < 0 then begin
inc(last_neg); T := arr[i];
for j := i downto last_neg + 1 do
arr[j] := arr[j - 1];
arr[last_neg] := T;
end;
end

end;

const
a: arrType = (-1, 2, 3, -3, -5, 4);
var i: integer;

begin
reform(a);

for i := 1 to n do
write(a[i]:4);
writeln;
end.

Автор: klem4 26.12.2005 15:11

Ээ ну так-то оно так, только вот в задании у него про то что надо порядок сохранять не сказано

Автор: V@ntuz 26.12.2005 16:36

Агромное спасибо! Завтра уже будет зачет.

Автор: Кэти 27.12.2005 1:09

Люди помогите срочно надо решить массив, а я в этой теме не соображаю "При выводе на экран элементов массива вставить два элемента: первый после максимального элемента, второй перед максимальным элементом." Умоляю помогите!!!!!!

Автор: GoodWind 27.12.2005 1:22

Кэти, ты правила читала?
Создай свою тему и спрашивай.