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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 19:37   #1
swillrocker
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 44
По умолчанию Одномерные массивы и операции с ними.

Даны две упорядоченные по невозрастанию последовательности a(1..m) и b(1..n) . Получить упорядоченную по невозрастанию последовательность длины n+m из членов данных последовательностей.
(Длину последовательности задать константой;использовать подпрограмму)

Код:
Program lab4;
const n=4; m=5; p=9;
var a: array[1..m] of real;
    b: array[1..n] of real;
    c: array[1..p] of real;
    i: integer;
begin
write('Enter num mas_A(po nevozrastaniy!!!):');
for i:=1 to n do
read(a[i]);
write('Enter num mas_B(po nevozrastaniy!!!):');
for i:=1 to m do
read(b[i]);
readln;
end.
Не пойму как "Получить упорядоченную по невозрастанию последовательность длины n+m из членов данных последовательностей. "

Последний раз редактировалось swillrocker; 11.05.2011 в 19:44.
swillrocker вне форума Ответить с цитированием
Старый 11.05.2011, 19:43   #2
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Завести третий массив(у вас это с), поочередно из двух массивов элементы перезаписать в с, затем отсортировать
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 11.05.2011, 19:56   #3
swillrocker
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от malinoff Посмотреть сообщение
Завести третий массив(у вас это с), поочередно из двух массивов элементы перезаписать в с, затем отсортировать
Значит я двигался в правильном направлении... Спасибо! Буду пытаться ))
swillrocker вне форума Ответить с цитированием
Старый 11.05.2011, 20:55   #4
swillrocker
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 44
По умолчанию

Код:
Program lab4;
const n=4; m=5; p=9;
var a: array[1..m] of real;
    b: array[1..n] of real;
    c: array[1..p] of real;
    i: integer;
begin
write('Enter num mas_A(po nevozrastaniy!!!):');
for i:=1 to n do
read(a[i]);
write('Enter num mas_B(po nevozrastaniy!!!):');
for i:=1 to m do
read(b[i]);
for i:=1 to p do
begin
c[i]:=a[i];
c[i+4]:=b[i];
end;
readln;
end.
Почему то при выводе зависает, да и конечный массив ещё надо упорядочить >_<
swillrocker вне форума Ответить с цитированием
Старый 11.05.2011, 23:54   #5
swillrocker
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 44
По умолчанию

Код:
Program lab4;
const m=5; n=4; p=9;
var a: array[1..m] of real;
    b: array[1..n] of real;
    c: array[1..p] of real;
    i: integer;
begin
write('Enter num mas_A(po nevozrastaniy!!!):');
for i:=1 to m do
read(a[i]);
write('Enter num mas_B(po nevozrastaniy!!!):');
for i:=1 to n do
read(b[i]);
for i:=1 to p do
c[i]:=a[i];
for i:=6 to p do
c[i]:=b[i-5];
for i:=1 to p do
write(c[i]:2:0,'');
readln;
end.
Вот осталось только упорядочить...
swillrocker вне форума Ответить с цитированием
Старый 12.05.2011, 06:59   #6
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Берете i-й элемент, сравниваете с i+1, если i-й <i+1 то меняете местами.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 12.05.2011, 17:20   #7
swillrocker
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 44
По умолчанию

Код:
Program lab4r;
const m=5; n=4;
var a: array[1..m] of integer;
    b: array[1..n] of integer;
    c: array[1..m+n] of integer;
Procedure read_arr(var a: array of integer; const l: byte);
var i: byte;
begin
for i:=1 to l do read(a[i]);
end;
Procedure glue_arr(var a3: array of integer; const a1,a2: array of integer;
const l1,l2: byte);
var i,j,k: byte;
begin
j:=l1+l2;
for i:=1 to j do
begin
case i of
1..l1: for k:=1 to l1 do a3[k]:=a1[k];
(l1+1)..j: for k:=(l1+1) to j do a3[k]:=a2[k-l1];
end;
end;
Procedure sort_arr(var a: array of integer; const l: byte);
var nom,i,j,k: byte;
    min: integer;
begin
k:=l;
for i=k downto 1 do
begin
min:=a[1];
nom:=1;
for j:=2 to i do
if a[j]<min then
begin
min:=a[j];
nom:=j;
end;
end;
a[nom]:=a[i];
a[i]:=min;
end;
Procedure write_arr(const a: array of integer; const l: byte);
var i: byte;
begin
for i:=1 to l do write(a[i]);
end;
begin
writeln('Enter arr_a:');
read_arr(a,m);
writeln('Enter arr_b:');
read_arr(b,n);
glue_arr(c,a,b,m,n);
sort_arr(c,m+n);
writeln('Result_Arr:');
write_arr(c,m+n);
end.
Вот почти сделал, только есть ошибки... Исправьте пожалуйста ((.
swillrocker вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические массивы, функции с ними наталья94 Помощь студентам 0 10.05.2011 21:32
одномерные массивы blitz Паскаль, Turbo Pascal, PascalABC.NET 4 13.04.2011 23:46
Множества и операции над ними.Паскаль ШМЫГА Фриланс 7 27.02.2011 09:18
Одномерные массивы oksik_777 Паскаль, Turbo Pascal, PascalABC.NET 4 02.06.2010 18:18
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12