Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Alsi
5 / 5 / 1
Регистрация: 20.05.2011
Сообщений: 58
#1

Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию. - Turbo Pascal

11.06.2011, 09:44. Просмотров 1462. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста!

Даны три целочисленных массива A, B и C размера NA, NB, NC соответственно, элементы которых упорядочены по убыванию. Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию.

вот часть программы сортировки по убыванию
Pascal
1
2
3
4
5
6
7
8
9
10
11
for i:=2 to n do
begin
tmp:=arr[i];
j:=i-1;
while(tmp<arr[j]) and (j>0) do
begin
arr[j+1]:=arr[j];
j:=j-1;
end;
arr[j+1]:=tmp;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 09:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию. (Turbo Pascal):

Вставить b в массив А так, чтобы он остался возрастающим - Turbo Pascal
Дан возрастающий массив А(m) и число b. Вставить b в массив А так, чтобы он остался возрастающим. Помогите пожалуйста решить

Отсортировать массивы, объединить и результирующий массив отсортировать - Pascal
Помогите пожалуйста, нужно написать в паскале программу: Даны массив А(16), В(10).Отсортировать их по убыванию, а затем объединить в...

Объединить массивы: разместить в новый массив сначала первый по убыванию, затем второй по возрастанию - Pascal
Прошу расписать задачу полностью (от вара до энда) в рамках 7-ого класса. Спасибо! 1) Объединить массивы А и В так, чтобы сначала...

Вставить одномерный массив в двумерный массив так, чтобы второй столбец был отсортирован по убыванию - Pascal
Помогите пожалуйста решить задачку: Вставить в качестве новой строки одномерный массив В в двумерный массив А так, чтобы второй столбец...

Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию. - C++
Даны три целочисленных массива A, B и C размера NA, NB, NC соответ-ственно, элементы которых упорядочены по убыванию. Объединить эти...

Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию - Visual Basic
Даны три целочисленных массива A, B и C размера NA, NB, NC соответственно, элементы которых упорядочены по убыванию. Объединить эти массивы...

1
Puporev
Модератор
52415 / 40262 / 13596
Регистрация: 18.05.2008
Сообщений: 93,073
11.06.2011, 12:38 #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
uses crt;
const nmax=100;
type mas=array[1..3*nmax] of integer;
procedure Vvod(var a:mas;var n:integer;c:char);
var i:integer;
begin
writeln('Массив ',c);
repeat
write('Размер до ',nmax,' n=');
readln(n);
until n in [1..nmax];
{заполняем массив случайными числами по убыванию}
a[1]:=random(nmax)+nmax;
for i:=2 to n do
a[i]:=a[i-1]-random(10)-1;
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
end;
{процедура слияния двух массивов}
procedure Merge(a,b:mas;na,nb:integer;var c:mas; var nc:integer);
var i,j:integer;
begin
i:=1; j:=1; nc:=0; {устанавливаем счётчики}
while (i<=na) or (j<=nb) do {пока не дошли до конца каждого из массивов}
  begin
   if (i<=na) and (j<=nb) then {если оба массива ещё не закончились}
     begin
       if a[i]>b[j] then {то пишем в новый массив меньший из текущих элементов}
        begin
         inc (nc); {переходим к следующему элементу конечного массива}
         c[nc]:= a[i];
         inc (i); {переходим к следующему элементу соответствующего массива}
        end
       else
        begin
         inc (nc);
         c[nc]:= b[j];
         inc (j);
         end
     end
   else if j>nb then {иначе один из массивов уже закончился}
     begin {и мы пишем из того, в котором ещё есть элементы}
       inc (nc);
       c[nc]:= a[i];
       inc (i);
       end
   else if i>na then
     begin
       inc (nc);
       c[nc]:= b[j];
       inc (j);
     end;
  end;
end;
var a,b,c,p,d:mas;
    na,nb,nc,np,nd,m,i,j,k:integer;
begin
clrscr;
randomize;
vvod(a,na,'A');
vvod(b,nb,'B');
vvod(c,nc,'C');
Merge(a,b,na,nb,p,np);{сливаем a+b}
Merge(p,c,np,nc,d,nd);{сливаем a+b+c}
writeln('Результат слияния:');
for i:=1 to nd do
write(d[i]:4);
readln
end.
Можете взять другой алгоритм слияния.
Сортировки
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 12:38
Привет! Вот еще темы с ответами:

Объединить массивы так, чтобы результирующий массив остался упорядоченным по возрастанию (убыванию) - C++
1.53) Даны два одномерных массива A и B размерности n, элементы которых упорядочены по возрастанию (убыванию). Объединить массивы так,...

Объединить массивы так, чтобы результирующий массив С (размера 10) остался упорядоченным по возрастанию - Java SE
6.Даны два массива А и В размера 5, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив С...

Объединить массивы так, чтобы результирующий остался упорядоченным по убыванию - Pascal ABC
Даны три целочисленных массива A, B и C размера Na, Nb, Nc соответственно, элементы которых упорядочены по убыванию. Объединить эти массивы...

Объединить массивы так, чтобы результирующий массив C остался упорядоченным по возрастанию - C#
1.Даны два массива A и B, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив C остался...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru