![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Demm |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию. Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места. Если кто может,покажите как это реализовывается! Ввод, вывод и описания перем. не обязательно! |
![]() ![]() |
Spawn |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Репутация: ![]() ![]() ![]() |
Код type massiv = array[1..max] of integer; procedure sort(var A,B,C : massiv); var i,j,k : 1..max; begin i := 1; j := 1; k := 1; repeat if A[i]>B[j] then begin C[k] := B[j]; j = j + 1; end else begin C[k] := A[i]; i := i + 1; end; k := k + 1; if i>max then for i := j to max do begin C[k] := B[i]; k := k + 1; end else if j>max then for j := i to max do begin C[k] := A[j]; k := k + 1; end; until k=2*max; end; Вроде так. |
1153 |
![]()
Сообщение
#3
|
Гость ![]() |
помогите
![]() |
Demm |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Большое спасибо Spawn,сейчас попробую!
|
Demm |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня! Сообщение отредактировано: Demm - 29.05.2004 16:54 |
Spawn |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Репутация: ![]() ![]() ![]() |
Попробуй так:
Код const n = 100; {длина массива А} m = 90; {длина массива В} t = n + m; {длина результирующего массива} type mA = array[1..n] of integer; mB = array[1..m] of integer; mC = array[1..t] of integer; procedure sort(var A : mA, B : mB, C : mC); var i,j,k : 1..t; begin i := 1; j := 1; k := 1; repeat if A[i]>B[j] then begin C[k] := B[j]; j = j + 1; end else begin C[k] := A[i]; i := i + 1; end; k := k + 1; if i>n then for i := j to m do begin C[k] := B[i]; k := k + 1; end else if j>m then for j := i to n do begin C[k] := A[j]; k := k + 1; end; until k=t; end; Сообщение отредактировано: Spawn - 29.05.2004 23:07 |
Demm |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не работает
Вот Код const n = 4; {длина массива А} m = 5; {длина массива В} t = n + m; {длина результирующего массива} type mA = array[1..n] of integer; mB = array[1..m] of integer; mC = array[1..t] of integer; var i,j,k:integer; A:mA;B:mB;C:mC; procedure sort(var A : mA; B : mB; C : mC); begin i := 1; j := 1; k := 1; repeat if A[i]>B[j] then begin C[k] := B[j]; j := j + 1; end else begin C[k] := A[i]; i := i + 1; end; k := k + 1; if i>n then for i := j to m do begin C[k] := B[i]; k := k + 1; end else if j>m then for j := i to n do begin C[k] := A[j]; k := k + 1; end; until k=t; end; begin writeln('mass A'); for i:=1 to n do readln(A[i]); writeln('mass B'); for j:=1 to m do readln(B[j]); sort(A,B,C); writeln('poluch'); for k:=1 to t do write(C[k],' '); readln; end. Виснит и все тут! Сообщение отредактировано: Demm - 30.05.2004 13:53 |
Spawn |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Репутация: ![]() ![]() ![]() |
Виноват. Недоглядел.
Вот рабочая версия: Код const n = 4; {длина массива А} m = 5; {длина массива В} t = n + m; {длина результирующего массива} type mA = array[1..n] of integer; mB = array[1..m] of integer; mC = array[1..t] of integer; var i,j,k:integer; A:mA;B:mB;C:mC; procedure sort(var A : mA; var B : mB; var C : mC); begin i := 1; j := 1; k := 1; repeat if A[i]>B[j] then begin C[k] := B[j]; j := j + 1; end else begin C[k] := A[i]; i := i + 1; end; k := k + 1; if i>n then for i := j to m do begin C[k] := B[i]; k := k + 1; end else if j>m then for j := i to n do begin C[k] := A[j]; k := k + 1; end; until k>=t; end; begin writeln('mass A'); for i:=1 to n do read(A[i]); writeln('mass B'); for j:=1 to m do read(B[j]); sort(A,B,C); writeln('poluch'); for k:=1 to t do write(C[k],' '); readln; end. |
Demm |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Большое спасибо.Все круто!!!!
|
Spawn |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 9 Репутация: ![]() ![]() ![]() |
:D Всегда пожалуйста! :D
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 15:44 |