var
a:array[1..100]of integer;
i,j,t,n:integer;
begin
randomize;
writeln('vvedite kol-vo elementov');
readln(n);
writeln('ishodnyj massiv');
for i:=1 to n do
begin
a[i]:=random(20)-10;
write(a[i],' ');
end;
writeln;
for i:=1 to n do
for j:=1 to n-1 do
if (a[j]>=0)and(a[j+1]<0)then
begin
t:=a[j];
a[j]:=a[j+1];
a[j+1]:=t;
end;
writeln('novyj massiv');
for i:=1 to n do
write(a[i],' ');
readln;
end.
1. Создадим одномерный массив с некоторыми числами. Давайте представим, что это массив a[], и у нас есть, например, следующие элементы:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
2. Теперь нужно переместить все отрицательные элементы в начало массива. Для этого мы будем использовать два индекса: один для прохода от начала массива, другой – от конца.
3. Используем while-цикл, чтобы перебрать все элементы массива. Проверяем каждый элемент и, если он отрицательный, меняем местами с элементом, находящимся на позиции, указанной первым индексом (позиция начала массива).
В нашем случае:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
Перебираем элементы поочередно:
-3 < 0 – отрицательное число, меняем местами с элементом на позиции 0:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
2 > 0 – положительное число, ничего не меняем:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
-7 < 0 – отрицательное число, меняем местами с элементом на позиции 1:
a[] = {-7, 2, -3, 1, 4, -5, 6, -9}
1 > 0 – положительное число, ничего не меняем:
a[] = {-7, 2, -3, 1, 4, -5, 6, -9}
-5 < 0 – отрицательное число, меняем местами с элементом на позиции 2:
a[] = {-7, -5, -3, 1, 4, 2, 6, -9}
-9 < 0 – отрицательное число, меняем местами с элементом на позиции 3:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
4 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Теперь у нас все отрицательные числа находятся в начале массива.
4. Осталось переместить все положительные элементы в конец массива, с сохранением порядка следования.
Снова используем while-цикл, но меняем условие проверки на положительное число. Также нужно изменить позицию, с которой мы начинаем перебор - теперь это первый положительный элемент после отрицательных чисел.
В нашем случае это элемент на позиции 4, значение 4.
Перебираем элементы поочередно:
4 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
2 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
6 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
1 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Теперь у нас все положительные числа находятся в конце массива.
5. Массив отсортирован! Теперь его порядок следования соответствует требованиям задачи.
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Мы использовали два цикла while для перебора элементов и проверки, является ли число отрицательным или положительным. Затем мы меняли местами только те элементы, которые отличались от желаемого порядка.
Таким образом, мы успешно переместили отрицательные элементы в начало массива, а положительные — в конец, сохраняя порядок следования каждой группы чисел.
a:array[1..100]of integer;
i,j,t,n:integer;
begin
randomize;
writeln('vvedite kol-vo elementov');
readln(n);
writeln('ishodnyj massiv');
for i:=1 to n do
begin
a[i]:=random(20)-10;
write(a[i],' ');
end;
writeln;
for i:=1 to n do
for j:=1 to n-1 do
if (a[j]>=0)and(a[j+1]<0)then
begin
t:=a[j];
a[j]:=a[j+1];
a[j+1]:=t;
end;
writeln('novyj massiv');
for i:=1 to n do
write(a[i],' ');
readln;
end.
1. Создадим одномерный массив с некоторыми числами. Давайте представим, что это массив a[], и у нас есть, например, следующие элементы:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
2. Теперь нужно переместить все отрицательные элементы в начало массива. Для этого мы будем использовать два индекса: один для прохода от начала массива, другой – от конца.
3. Используем while-цикл, чтобы перебрать все элементы массива. Проверяем каждый элемент и, если он отрицательный, меняем местами с элементом, находящимся на позиции, указанной первым индексом (позиция начала массива).
В нашем случае:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
Перебираем элементы поочередно:
-3 < 0 – отрицательное число, меняем местами с элементом на позиции 0:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
2 > 0 – положительное число, ничего не меняем:
a[] = {-3, 2, -7, 1, 4, -5, 6, -9}
-7 < 0 – отрицательное число, меняем местами с элементом на позиции 1:
a[] = {-7, 2, -3, 1, 4, -5, 6, -9}
1 > 0 – положительное число, ничего не меняем:
a[] = {-7, 2, -3, 1, 4, -5, 6, -9}
-5 < 0 – отрицательное число, меняем местами с элементом на позиции 2:
a[] = {-7, -5, -3, 1, 4, 2, 6, -9}
-9 < 0 – отрицательное число, меняем местами с элементом на позиции 3:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
4 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Теперь у нас все отрицательные числа находятся в начале массива.
4. Осталось переместить все положительные элементы в конец массива, с сохранением порядка следования.
Снова используем while-цикл, но меняем условие проверки на положительное число. Также нужно изменить позицию, с которой мы начинаем перебор - теперь это первый положительный элемент после отрицательных чисел.
В нашем случае это элемент на позиции 4, значение 4.
Перебираем элементы поочередно:
4 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
2 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
6 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
1 > 0 – положительное число, ничего не меняем:
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Теперь у нас все положительные числа находятся в конце массива.
5. Массив отсортирован! Теперь его порядок следования соответствует требованиям задачи.
a[] = {-7, -5, -3, -9, 4, 2, 6, 1}
Мы использовали два цикла while для перебора элементов и проверки, является ли число отрицательным или положительным. Затем мы меняли местами только те элементы, которые отличались от желаемого порядка.
Таким образом, мы успешно переместили отрицательные элементы в начало массива, а положительные — в конец, сохраняя порядок следования каждой группы чисел.