1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 93
1

Переставить элементы массива так, чтобы сначала следовали все отрицательные числа, а затем все остальные

27.12.2012, 20:00. Показов 2115. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан одномерный массив целых чисел. Переставить элементы в массиве таким образом, чтобы сначала следовали все отрицательные числа, а затем все остальные.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2012, 20:00
Ответы с готовыми решениями:

Переставить элементы массива так, чтобы сначала следовали все отрицательные числа, а затем все остальные
Помогите, пожалуйста, решить задачу в Pascal Дан целочисленный массив размером N. Преобразовать...

Переставить элементы в массиве, чтобы сначала следовали все отрицательные числа, а затем все остальные
Здраствуйте! У меня было такое задание. Дан одномерный массив целых чисел. Переставить элементы в...

Упорядочить элементы файла так, чтобы сначала следовали все положительные компоненты, а затем все остальные
составить программы с помощью которых: -сформировать файл из целых чисел, которые должны быть...

Переставить элементы в массиве таким образом, чтобы сначала следовали все отрицательные числа
Дан одномерный массив целых чисел. Переставить элементы в массиве таким образом, чтобы сначала...

6
durila :d
125 / 107 / 98
Регистрация: 21.12.2012
Сообщений: 160
27.12.2012, 20:15 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Здравствуйте, вот вариант решения
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
program _array;
 
const 
 
  N = 10;
  
type
 
 TArray = array [1..N] of integer;
 
var
 
  Mas      :Tarray;
  
Procedure FillArray(var aMas        :TArray;
                    Fhand           :boolean);
{             Процедура заполнения одномерного массива    
   Fhand (TRUE/FALSE): тип заполнения ( вручную / случайными значениями}
 
 function RandomInt(X1,X2:integer):Integer;
 {Функция возвращает случайное целое 
 значение из диапазона X1..X2                 }
  var
   x:integer;
  begin
   repeat
    x:=random(Abs(X2));
    if odd(random(2))
    then x:=-x;
   until x in [X1..X2];
   RandomInt:=x;
 end;
 
var
  i:integer;
begin
 if fhand then 
 for i:=1 to N do begin
                   Write('Mas[',i,']: ');
                   readln(aMas[i]);
                  end
         else 
 for i:=1 to N do aMas[i]:=RandomInt(-100,100);
 
end;   
 
procedure OutArray(head:string;const Mas:TArray);
{ процедура вывода массива на экран }    
var
 i:integer;
begin
 Writeln(head);
 for i:=1 to N do write(Mas[i],' ');
 writeln();
end;
                    
procedure ModArray(var Mas:TArray);
 var
  i,k:integer;
  tMas:Tarray;
begin
 for i:=1 to N do 
 if Mas[i]<0 then begin
                   inc(k);
                   tMas[k]:=mas[i];
                  end;
 for i:=1 to N do 
 if Mas[i]>=0 then begin
                    inc(k);
                    tMas[k]:=mas[i];
                   end;
 for i:=1 to N do mas[i]:=tMas[i];                   
end;
 
 
 
BEGIN
 
{ fill & print array }
 randomize;
 FillArray(Mas,FALSE); {TRUE если вручную}
 OutArray('Сформирован массив: ',Mas);
 
{ process & output }
 ModArray(mas);
 OutArray('После модификации: ',mas)
END.
1
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 16
27.12.2012, 22:06 3
exit cod 201 не работает. сделаете до конца? или что то ее всетаки откроет?

Добавлено через 1 минуту
может ее по проще можно сделать. сделайте плиз
0
durila :d
125 / 107 / 98
Регистрация: 21.12.2012
Сообщений: 160
27.12.2012, 22:22 4
Цитата Сообщение от kadysh Посмотреть сообщение
exit cod 201 не работает. сделаете до конца? или что то ее всетаки откроет?

Добавлено через 1 минуту
может ее по проще можно сделать. сделайте плиз
В PascaABC.net компилируется без проблем.
Для FPC или Turbo Pascal нужно изменить вот эту строчку (31) кода
Pascal
1
until x in [X1..X2];
на
Pascal
1
until (x >= X1) and (x <= X2);
По поводу проще сделать.
Конечно можно, только мне это не нужно, а нужно Вам. Я предоставил Вам вариант решения, дальше Сами.
1
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 16
27.12.2012, 22:50 5
я просто не бум бум в программировании(

Добавлено через 1 минуту
»*Ошибка -100 - выход за границы диапазона типа byte (Program1.pas, строка 0)

Добавлено через 38 секунд
это в аbc

Добавлено через 1 минуту
можете pas рабочий скинуть?

Добавлено через 13 минут
помогите плиз
0
durila :d
125 / 107 / 98
Регистрация: 21.12.2012
Сообщений: 160
27.12.2012, 23:03 6
Цитата Сообщение от kadysh Посмотреть сообщение
я просто не бум бум в программировании(

Добавлено через 1 минуту
»*Ошибка -100 - выход за границы диапазона типа byte (Program1.pas, строка 0)

Добавлено через 38 секунд
это в аbc
Потому что abc и abc.net это разные вещи.

Вот рабочий вариант для fpc/turbo pascal/abc/abc.net
Кликните здесь для просмотра всего текста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
program _array;
 
const 
 
  N = 10;
  
type
 
 TArray = array [1..N] of integer;
 
var
 
  Mas      :Tarray;
  
Procedure FillArray(var aMas        :TArray;
                    Fhand           :boolean);
{             Процедура заполнения одномерного массива    
   Fhand (TRUE/FALSE): тип заполнения ( вручную / случайными значениями}
 
 function RandomInt(X1,X2:integer):Integer;
 {Функция возвращает случайное целое 
 значение из диапазона X1..X2                 }
  var
   x:integer;
  begin
   repeat
    x:=random(Abs(X2));
    if odd(random(2))
    then x:=-x;
   until (x>=x1) and (x<=x2);
   RandomInt:=x;
 end;
 
var
  i:integer;
begin
 if fhand then 
 for i:=1 to N do begin
                   Write('Mas[',i,']: ');
                   readln(aMas[i]);
                  end
         else 
 for i:=1 to N do aMas[i]:=RandomInt(-100,100);
 
end;   
 
procedure OutArray(head:string;const Mas:TArray);
{ процедура вывода массива на экран }    
var
 i:integer;
begin
 Writeln(head);
 for i:=1 to N do write(Mas[i],' ');
 writeln;
end;
                    
procedure ModArray(var Mas:TArray);
 var
  i,k:integer;
  tMas:Tarray;
begin
 k:=0;
 for i:=1 to N do 
 if Mas[i]<0 then begin
                   inc(k);
                   tMas[k]:=mas[i];
                  end;
 for i:=1 to N do 
 if Mas[i]>=0 then begin
                    inc(k);
                    tMas[k]:=mas[i];
                   end;
 for i:=1 to N do mas[i]:=tMas[i];                   
end;
 
 
 
BEGIN
 
{ fill & print array }
 randomize;
 FillArray(Mas,FALSE); {TRUE если вручную}
 OutArray('Сформирован массив: ',Mas);
 
{ process & output }
 ModArray(mas);
 OutArray('После модификации: ',mas)
END.
1
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 16
27.12.2012, 23:37 7
можете еще блок схему дать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2012, 23:37
Помогаю со студенческими работами здесь

Переставить элементы массива так, чтобы сначала располагались все единицы, затем все двойки и, наконец, все нули
Ребят помогите пожалуйста В массив x(N) каждый элемент равен 0,1 или 2. Приставить элементы...

Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы
В массиве А каждый элемент равен 0, 1, 2. Переставить элементы массива так, чтобы сначала...

Переставить элемента массива, так чтобы сначала было расположены все положительные элементы, потом все отрицательные
Всем добрый вечер! Есть задача: Кто знает как ее решить - помогите, с меня спасибо:)

Переставить элементы массива так, чтобы сначала шли нули, потом отрицательные, а затем положительные элементы
Дан одномерный массив, который содержит не более 60 вещественных чисел, среди которых есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru