Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 55
1

Выполнить сортировку массива включением

28.03.2014, 23:06. Показов 453. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве положительные элементы уменьшите вдвое, а отрицательные замените на значения их индексов.

У меня сортирует как-то, но неправильно.. не по возрастанию( помогите пожалуйста исправить ошибку в сортировке.

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
Program Practica9;
uses crt;
const n=4;
      k=5;
var i,j,s,M, idx: integer;
    l: real;
    a: array [1..n] of integer;
    c: array [1..k] of integer;
    b: array [1..k+n] of real;
begin
  clrscr;
  randomize;
  j:=1;
  for i:=1 to n do begin
    a[i]:=Random(100)-5;
    b[j]:=a[i];
    inc(j);
  end;
  for i:=1 to k do begin
    c[i]:=Random(100)-17;
    b[j]:=c[i];
    inc(j);
  end;
  Writeln('Ishodnyi massiv: ');
  for i:=1 to n+k do
  Write(B[i]:3:0);
  Writeln;
  for i:=2 to n+k do
  begin
    s:=i-1;
    L:=b[i];
    While (s>0) and (L<=B[i]) do begin
      b[s+1]:=b[s];
      dec(s);
    end;
    b[s+1]:=L;
  end;
  j:=0;
  writeln('Otsortirovannyi massiv: ');
  for i:=1 to k+n do
  begin
  Write(b[i]:3:0);
    if b[i]<M then
    inc(j);
  end;
  for i:=1 to k+n do
  if b[i]>0 then
  b[i]:=b[i]/2 else
  if b[i]<0 then
  begin
  idx:=i;
  b[i]:=idx;
  end;
  writeln;
  writeln('Novyi massiv:');
  for i:=1 to k+n do
  write(b[i]:3:0);
  readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 23:06
Ответы с готовыми решениями:

Выполнить сортировку включением. Подсчитайте сумму положительных элементов полученного массива
Задан массив A(N). Добавить массив X(М). Выполнить сортировку включением. Подсчитайте сумму...

Выполнить сортировку включением
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве,...

Выполнить сортировку включением
Дан целочисленный массив C(L). Добавить массив X(N). Выполнить сортировку включением. Найдите...

Выполнить сортировку включением. В полученном векторе удалите элементы кратные шести
17. Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном...

1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.03.2014, 07:55 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
Program Practica9;
uses crt;
const n=4;
      k=5;
var ax,c: array [1..n+k] of real;
    m,i,j,p: integer;
    x:real;
begin
  clrscr;
  randomize;
  writeln('Исходный массив AX');
  for i:=1 to n do
   begin
    ax[i]:=-5+10*random;
    write(ax[i]:5:1)
   end;
  writeln;
  writeln('Исходный массив C');
  for i:=1 to k do
   begin
    c[i]:=-5+10*random;
    write(c[i]:5:1)
   end;
  writeln;
  m:=n;
  for i:=1 to k do
   begin
    m:=m+1;
    ax[m]:=c[i]
   end;
  Writeln('Объединенный массив A+C: ');
  for i:=1 to m do
  Write(ax[i]:5:1);
  Writeln;
  for i:=2 to m do
   begin
    x:=ax[i];{запоминаем очередной элемент}
    j:=1;{смотрим что слева от него}
    while x>ax[j] do inc(j);{пока все меньше данного, идем вперед}
    for p:=i-1 downto j do{нашли меньший, сдвигаем массив от этого элемента-1}
    ax[p+1]:=ax[p];{на 1 вправо}
    ax[j]:=x;{вставляем найденный элемент на место}
   end;
  writeln('Отсортированный массив:');
  for i:=1 to m do
  Write(ax[i]:5:1);
  writeln;
  writeln('Новый массив:');
  for i:=1 to m do
   begin
    if ax[i]>0 then ax[i]:=ax[i]/2
    else if ax[i]<0 then ax[i]:=i;
    write(ax[i]:5:1)
   end;
  writeln;
  readln;
end.
1
29.03.2014, 07:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2014, 07:55
Помогаю со студенческими работами здесь

Выполнить сортировку включением. В полученном массиве найти элементы >5 и создайте из них новый массив
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве...

Сортировка. Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением
16. Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном...

Задан массив А (N). Добавить массив С(К). Выполнить сортировку включением
Задан массив А (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве ...

Задан массив A(N). Добавить массив С(К). Выполнить сортировку включением
Задан массив A(N). Добавить массив С(К). Выполнить сортировку включением. В полученном заданном...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru