IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы, сортировка
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию.
Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места.
Если кто может,покажите как это реализовывается!
Ввод, вывод и описания перем. не обязательно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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;


Вроде так.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






помогите unsure.gif ввести с клавы масив из 10 целых чисел. вывести масив на экран. среди всех нечётных элементов(элементов с нечётным значением) найти максимальный. вывести результат.[color=teal][/color]
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Большое спасибо Spawn,сейчас попробую!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня!

Сообщение отредактировано: Demm -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Большое спасибо.Все круто!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 9

Репутация: -  0  +


:D Всегда пожалуйста! :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.10.2024 13:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name