Массивы, сортировка |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Массивы, сортировка |
Demm |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: 0 |
Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию. Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места. Если кто может,покажите как это реализовывается! Ввод, вывод и описания перем. не обязательно! |
Spawn |
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Код 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
|
Гость |
помогите ввести с клавы масив из 10 целых чисел. вывести масив на экран. среди всех нечётных элементов(элементов с нечётным значением) найти максимальный. вывести результат.[color=teal][/color]
|
Demm |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: 0 |
Большое спасибо Spawn,сейчас попробую!
|
Demm |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: 0 |
У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня! Сообщение отредактировано: Demm - |
Spawn |
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Попробуй так:
Код 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 - |
Demm |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: 0 |
Не работает
Вот Код 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 - |
Spawn |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Виноват. Недоглядел.
Вот рабочая версия: Код 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 Пол: Мужской Репутация: 0 |
Большое спасибо.Все круто!!!!
|
Spawn |
Сообщение
#10
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
:D Всегда пожалуйста! :D
|
Текстовая версия | 4.10.2024 13:20 |