Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 3
Регистрация: 17.10.2009
Сообщений: 14

Сортировка выбором

06.11.2009, 20:00. Показов 1504. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить такое задание:
Даны две последовательности а1 < а2 < ... < аn и b1 < b2 < ... < bm. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей. Примечание. Дополнительный массив не использовать.
вот я тут накидал программу вродебы пашет правельно, но она не удволетворяет примечанию(Дополнительный массив не использовать.) и она громозкая, это не такая проблема просто может есть короче её решение...
вот сама программа:
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
89
90
91
92
93
94
95
96
97
98
99
Program Sorry;
Uses CRT;
type
arr= array [1..100] of integer;
Var
a: array [1..100] of integer;
b: array [1..100] of integer;
c: array [1..100] of integer;
n,m,i,j,max,k,t,u,g: integer;
Procedure mas(var a:arr);
var
i,j,min,k: integer;
begin
 for i:=1 to n-1 do
     begin
      k:=i; min:=a[i];
      for j:=i+1 to n do
       if a[j]<min then
          begin
          min:=a[j];
          k:=j;
          end;
     A[k]:=a[i];
     a[i]:=min;
end;
end;
Begin
randomize;
writeln('Введите размерность первого массива n ');
 readln(n);
writeln('Введите размерность второго массива m ');
 readln(m);
{---Формирование массива-а---}
writeln('Исходный массив a');
  for i:=1 to n do begin
   a[i]:=random(10)-5;
   write(a[i],' ');
                       end;
writeln;
writeln('Массив a после сортировки');
  for i:=1 to n do begin
    mas(a);
    write(a[i],' ');
                       end;
{---------------------------}
writeln;
{---Формирование массива-b---}
writeln('Исходный массив b');;
  for j:=1 to m do begin
    b[j]:=random(10)-5;
    write(b[j],' ');
                        end;
writeln;
writeln('Массив b после сортировки') ;;
  for j:=1 to m do begin
    mas(b);
    write(b[j],' ');
                        end;
{---------------------------}
writeln;
{---Склеивание и сортировка массива ---}
i:=1; j:=1; k:=1; {устанавливаем счётчики}
while (i<=n) or (j<=m) do {пока не дошли до конца каждого из массивов}
  begin
   if (i<=n) and (j<=m) then {если оба массива ещё не закончились}
     begin
       if a[i]<b[j] then {то пишем в новый массив меньший из текущих элементов}
        begin
         c[k]:= a[i];
         inc (i); {переходим к следующему элементу соответствующего массива}
         inc (k); {переходим к следующему элементу конечного массива}
        end
       else
        begin
         c[k]:= b[j];
         inc (j);
         inc (k);
        end
     end
   else if j>m then {иначе один из массивов уже закончился}
     begin {и мы пишем из того, в котором ещё есть элементы}
       c[k]:= a[i];
       inc (i);
       inc (k);
     end
   else if i>n then
     begin
       c[k]:= b[j];
       inc (j);
       inc (k);
     end;
  end;
u:=n+m;
writeln('Склееный и отсортированый массив C состоящий из массивов a и b:');
 for i:=1 to u do
   write(c[i],' ');
{-----------------------------------}
readln;
end.
Заранее спасибо...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.11.2009, 20:00
Ответы с готовыми решениями:

Сортировка массивов. Сортировка выбором
Помогите пожалуйста, я что-то совсем запуталась при составлении данной программы... Сортировка выбором. Дана последовательность чисел...

Сортировка выбором
Сортировка выбором. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить элементы так, чтобы они были расположены по...

Сортировка выбором
Отсортировать каждый столбец матрицы с четным номером по невозрастанию, а с нечетным - по неубыванию.

1
0 / 0 / 3
Регистрация: 17.10.2009
Сообщений: 14
07.11.2009, 12:05  [ТС]
Всё спасибо не надо сам сделал =)
вот программа:
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
Program Sorry;
Uses CRT;
type
arr= array [1..100] of integer;
Var
a: array [1..100] of integer;
b: array [1..100] of integer;
c: array [1..100] of integer;
n,m,i,j,max,min,k,t,u,g: integer;
Procedure mas(var a:arr;n:integer);
var
i,j,min,k: integer;
begin
 for i:=1 to n-1 do
     begin
      k:=i; min:=a[i];
      for j:=i+1 to n do
       if a[j]<min then
          begin
          min:=a[j];
          k:=j;
          end;
     A[k]:=a[i];
     a[i]:=min;
end;
end;
Begin
randomize;
writeln('4. Даны две последовательности а1 < а2 < ... < аn и b1 < b2 < ... < bm. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей. Примечание. Дополнительный массив не использовать. ');
writeln('                             Решение задачи: ');
writeln('Введите размерность первого массива n ');
 readln(n);
writeln('Введите размерность второго массива m ');
 readln(m);
{---Формирование массива-а---}
writeln('Исходный массив a: ');
 for i:=1 to n do begin
  a[i]:=random(10)-3;
  write(a[i],' ');
                  end;
writeln;
writeln('Массив a после сортировки: ');
 for i:=1 to n do begin
  mas(a,n);
  write(a[i],' ');
                  end;
{---------------------------}
writeln;
{---Формирование массива-b---}
writeln('Исходный массив b: ');;
 for j:=1 to m do begin
  b[j]:=random(10)-5;
  write(b[j],' ');
                  end;
writeln;
writeln('Массив b после сортировки: ') ;;
 for j:=1 to m do begin
  mas(b,m);
  write(b[j],' ');
                  end;
{---------------------------}
writeln;
{---Склеивание и сортировка массива ---}
u:=n+m;
 For i:=1 to n do
  a[i]:=a[i];
 For t:=n to u do
  for j:=1 to m do
  a[j+n]:=b[j];
writeln('Новая последовательнсть состоящая из элементов a и b (Примечание: не использован новый массив): ');
 for t:=1 to n+m do
  write(a[t],' ');
writeln;
writeln('Сортировка новой последовательности: ');
 For i:=1 to u do begin
  mas(a,u);
  write(a[i],' ');
                  end;
{-----------------------------------}
readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2009, 12:05
Помогаю со студенческими работами здесь

Сортировка выбором
Сортируем массив так:найти мин элемент,который копируем в первую ячейку другого массива,и снова находим мин в первом массиве и во вторую...

Сортировка выбором
Скажите как написать сортировку выбора, чтобы были swap , less? пишу на лазарусе. var a: array of integer; i,min,ind,j:...

Сортировка выбором
Помогите пожалуйста, в задаче надо вывести минимальное число из данных четырёх. Как сделать так, чтобы не выдавалась комбинация чисел,...

Сортировка выбором
Написать программу которая методом выбора сортируют по убыванию введений з клавиатури одномерний масив Добавлено через 52 минуты ...

Сортировка выбором.
Дана последовательность чисел а1,а2,...an. Требуется переставить элементы так чтобы они были расположены по убыванию. Для этого в массиве...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru