Forum of Computer Science Faculty of Baku State University

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Forum of Computer Science Faculty of Baku State University » Programming » Массив...


Массив...

Сообщений 1 страница 5 из 5

1

Задача 12.17.  Даны натуральное число n   и действительные числа a1, a2,…, an Переместить:.б) отрицательные  элементы массива в начало, сдвинув положительные элементы в конец, не меняя взаимное расположение ни отрицательных, ни положительных элементов; :stupor:

+1

2

Код:
PROGRAM RN_12_17_v2;

CONST
  NA=8;
  A:array [1..NA] of  integer=(1,14,3,19,-48,11,0,9);

VAR
  B:array [1..NA] of  integer;
  i,n,dt:byte;

BEGIN
  writeln;
  for i:=1 to NA do
    write(A[i]:4);
  writeln;

  for i:=1 to NA do
    B[i]:=A[i];

  dt:=1;
  n:=0;
  repeat
    repeat
      INC(n);
    until (B[n]<0) or (n=NA);

    if B[n]<0  then
      begin
        INC(dt);
        for i:=n downto dt do
          begin
            t:=B[i];
            B[i]:=B[i-1];
            B[i-1]:=t;
          end;
      end;
  until n=NA;

  for i:=1 to NA do
    write(B[i]:4);
  writeln;

END.

Если кому разъяснить, пожалуйста.

+ Личный респект за твой код, благодарность за топик.

+1

3

Эта задача должна решаться с одним массивом и за один проход, то есть все происходит в массиве А и в одном цикле

0

4

Rammah написал(а):

Эта задача должна решаться с одним массивом

Да, конечно. Второй от того, что я решение напрямую скопировал из решенния 12.17, а оно имеет подпункты. И что бы не портить массив А, я и создал там В.

-1

5

Rammah написал(а):

Эта задача должна решаться в одном цикле

for n:=2 to NA do
  if B[n]<0  then
    begin
      INC(dt);
      for i:=n downto dt do
        begin
          t:=B[i];
          B[i]:=B[i-1];
          B[i-1]:=t;
        end;
    end;

Данное решение можно считать решение через 1 обход? Так как, ведь перекручивать части массива придётся всеравно через новый цикл.

+ Ещё можно крутить до тех пор, пока первый не станет отрицательным, потом крутить со второго и т.д.. Но и там, два цикла.

:dontknow:

0


Вы здесь » Forum of Computer Science Faculty of Baku State University » Programming » Массив...