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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2014, 20:44   #1
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию Заданы два массива A и B

Заданы два массива A и B. В каждом из этих массивов нет повторяющихся элементов. Построить пересечение заданных массивов (то есть получить в порядке возрастания все числа, принадлежащие двум массивам одновременно)
maxim1592 вне форума Ответить с цитированием
Старый 27.05.2014, 21:44   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Собственные наработки?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 27.05.2014, 21:51   #3
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

нету, не знаю как прописать....
maxim1592 вне форума Ответить с цитированием
Старый 27.05.2014, 22:23   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Тогда почитайте теорию про массивы:

http://www.pascal.helpov.net/index/o...al_programming
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 28.05.2014, 00:15   #5
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

Код:
Program pr;
Var
   a, b, c: array [1..100] of integer;
   I, n: byte;
Begin
   Write ('введите размерность массива:');
   Readln(n);
   For i:=1 to n do
      Readln (a[i]); { ввод массива a}
   For i:=1 to n do
      Readln (b[i]); { ввод массива b}
   For i:=1 to n do
"
в это месте должна программа строить пересечение массивов(т.е. в порядке возрастания
"
      write (c[i],' '); { вывод массива с }
end.
помогите дописать программу

Последний раз редактировалось Stilet; 28.05.2014 в 08:08.
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 08:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы так написал:
Код:
Program pr;
Var
   a, b, c: array [1..100] of integer;
   i, n, j, KC: byte;
Begin
   Write ('введите размерность массива:');
   Readln(n);
   For i:=1 to n do
      Readln (a[i]); { ввод массива a}
   For i:=1 to n do
      Readln (b[i]); { ввод массива b}

   KC := 0; {количество найденный пересечений}
   For i:=1 to n do begin
      j := 1;
      while (j<=n) and (a[i]<>b[j]) do Inc(j);
      if j<=n then {число найдено - добавляем его в массив C}  
        begin
           Inc(KC);
           c[KC] := a[i];  {или c[KC] := b[j]; - это неважно, т.к. a[ i ] и b[ j ] равны}
        end;
      end;   

   {вывод результата}
   if KC = 0 then WriteLn('Таких чисел нет!')
   else begin
     Write('Массив пересечений: ');
     for i:=1 to KC do
        write(c[i],' '); { вывод массива с }
   end;
   WriteLn;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.05.2014, 14:09   #7
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

спасибо большое
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 14:25   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от maxim1592 Посмотреть сообщение
спасибо большое
пожалуйста.


p.s. учтите, что в данном случае числа не будут в порядке возрастания, как того требует задание. Более того, подозреваю, что авторы задачи предполагали, что исходные массивы будут отсортированы. Ну тогда задача может быть решена более эффективным (с точке быстродействия) способом (не нужно будет перебирать каждый элемент массива, проверяя его наличие во втором массиве.)
Впрочем, возможно, что достаточно (чтобы соблюсти условия задачи) будет просто отсортировать массив C
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заданы два массива Vanya_11 Помощь студентам 0 25.05.2013 20:04
ПАСКАЛЬ.Заданы два одномерных массива.Объединить их в один массив, включив второй массив между K-ым и (K+1)-м элементами первого. dmitriy20104 Помощь студентам 7 06.07.2012 20:44
Два одномерных массива A и B. Сформировать два новых массива. Паскаль. Где ошибка в коде? Tomny Помощь студентам 1 27.03.2011 16:47
Ассемблер.Заданы два массива слов.сли в каждом из них есть 2 отрицательных числа, то каждый 2-й элемент Лилея Помощь студентам 0 21.01.2011 20:20