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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2012, 12:14   #1
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию Элементы массива в возр. порядке

Саму задачу решил, но не умею вывыодить в порядке возр. массив. Помогите пожалуйста. Условие ниже, если кому надо.

Код:
var m:array [0..1000] of integer;
    v:array [0..1000] of integer;
    n1,n2,i1,i2,j,i,g,b,a,p:byte;
begin
begin
readln(n1);
for i1:=1 to n1 do
read(m[i1]);
end;
begin
readln(n2);
for i2:=1 to n2 do
read(v[i2]);
end;
for i1:=1 to n1 do
for i2:=1 to n2 do
if m[i1]=v[i2] then
write(m[i1],' ');
end.

Даны две натуральные числовые последовательности. Вывести в порядке возростания значения элементов, которые входят в обе числовые последовательности.
Входные данные:
В первой строке дано количество элементов N1 первой числовой последовательности (N1 <= 255). Во второй строке перечислены через пробел значения элементов первой числовой последовательности.
В третьей строке дано количество элементов N2 второй числовой последовательности (N2 <= 255). В четвертой строке - значения элементов второй числовой последовательности.
Значения элементов последовательностей даны в диапазоне от 1 до 255.

Выходные данные:
Вывести через пробел в порядке возростания толлько значения элементов, которые входят в обе числовые последовательности.
Пример входного файла (input.txt):
5
1 3 5 7 9
8
2 3 4 5 6 7 8 9
Пример выходного файла (output.txt):
3 5 7 9
RusseLfStyle вне форума Ответить с цитированием
Старый 09.04.2012, 03:17   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Тут само собой напрашивается применить множества. И само задание явно про них, и диапазоны в точности те, что надо )). А порядок подачи входных данных указывает на то, что желательно обойтись без числовых массивов. При этом, для экономии кода однотипный ввод лучше осуществить в цикле, для чего организовать массив множеств. Ну и, поскольку порядок ввода элементов не важен, то на параметре цикла тоже можно сэкономить )). Короче, чем трепаться, лучше взять и написать..
Код:
var
  s: array[1..2] of set of byte;
  a,i,n: integer;
begin
  for i:=1 to 2 do begin
    readln(n);
    s[i]:= [];
    for n:=n downto 1 do begin
      read(a);
      Include(s[i],a)
    end;
    readln
  end;
  for i:=0 to 255 do if i in s[1]*s[2] then write(i:4);
  readln
end.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВЫвести элементы массива в обратном порядке Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 1 01.12.2011 08:25
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59
Поместить элементы Одного массива, в начало другого в обратном порядке. Adrenalin4 Общие вопросы C/C++ 2 15.11.2010 21:51
Расположить элементы массива в порядке убывания частоты встречаемости элементов. QWERT12345 Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 22:30