Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2007, 20:48   #1
Bagsi
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 21
Сообщение Решите пожалуйста на Паскале

1.
const k=50;m=20;n=70;{n=k+m}
var x:array[1..k] of real; y:array[1..m] of real;
z:array[1..n] of real;
Элементы каждого из массивов x и y упорядочены по неубыванию.Объеденить элементы этих двух массивов z так, чтобы и он был упорядочен по неубыванию.
Bagsi вне форума Ответить с цитированием
Старый 30.10.2007, 20:54   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Элементы каждого из массивов x и y упорядочены по неубыванию
Это значит по возрастанию, или есть еще варианты?
_Dmitry вне форума Ответить с цитированием
Старый 30.10.2007, 21:11   #3
Bagsi
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 21
По умолчанию

Это значит по возрастанию
Bagsi вне форума Ответить с цитированием
Старый 30.10.2007, 21:33   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Неубывание - более точный термин при сортировке массивов, т.к. часто встречаются интервалы с одинаковыми значениями. Эти интервалы нельзя назвать ни возрастанием ни убыванием, также как ноль и не отрицательное и не положительное число.
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 22:36   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Вот, что придумалось:
Код:
const
  k=50;
  m=20;
  n=k+m;
var
  x: array[1..k] of real;
  y: array[1..m] of real;
  z: array[1..n] of real;
  i,j,ix,iy: integer;
begin
  randomize;
  x[1]:=random*100;
  for i:=2 to k do
    x[i]:=x[i-1]+random*100;
  y[1]:=random*100;
  for i:=2 to m do
    y[i]:=y[i-1]+random*100;
  ix:=1; iy:=1;
  for i:=1 to n do
    if x[ix] > y[iy] then
      begin
        z[i]:=y[iy];
        iy:=iy+1;
        if iy > m then break;
      end
    else
      begin
        z[i]:=x[ix];
        ix:=ix+1;
        if ix > k then break;
      end;
  i:=i+1;
  if i <= n then
    if ix > k then
      for j:=i to n do z[j]:=y[iy+j-i]
    else
      for j:=i to n do z[j]:=x[ix+j-i];
end.
_Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решите пожалуйста задачу на Паскале Bagsi Помощь студентам 15 23.01.2009 11:35
SOS .Решите пожалуйста задачу на Паскале miron Помощь студентам 8 27.03.2008 15:32
Решите задачу на Паскале пожалуйста! Side Unseen Помощь студентам 5 31.10.2007 19:22
Решите пожалуйста задачу на Паскале Bagsi Помощь студентам 1 30.10.2007 14:56
Решите пожалуйста Bagsi Помощь студентам 1 28.10.2007 20:58