Предмет: Информатика, автор: User1996

Даны массивы целых: X из p элементов, Y из q элементов, Z из r элементов (p,q,r<=50). Элементы массивов упорядоченные по возрастанию. Выяснить, есть ли такие числа, которые встречаются в каждом из трех массивов. Найти одно из таких чисел или сообщить об его отсутствии.

Ответы

Автор ответа: Аноним
0
Одно из "быстрых по написанию" решений, не учитывающих фактор наличия упорядоченности массивов. Это разумно: 10 баллов за решение - не та цена, за которую есть смысл составлять и отлаживать эффективный алгоритм поиска по упорядоченным массивам.

// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
  var x:=ArrRandom(ReadInteger('p='),-20,20).Sorted;
  var y:=ArrRandom(ReadInteger('q='),-10,15).Sorted;
  var z:=ArrRandom(ReadInteger('r='),1,18).Sorted;
  x.Println; y.Println; z.Println;
  var r:=x.Intersect(y.Intersect(z));
  if r.Count=0 then Writeln('Нет общих элементов')
  else begin Write ('Общие элементы: '); r.Println end
end.

Тестовое решение
p= 15
q= 13
r= 18
-19 -16 -15 -11 -7 -7 -2 0 0 2 4 7 10 14 20
-8 -6 -4 -4 -4 -3 -1 4 4 9 13 13 15
1 1 2 2 2 4 4 5 6 9 10 12 12 14 14 15 15 17
Общие элементы: 4
Автор ответа: Аноним
0
Если нужно только одно число, а совпадающих больше, можно в программе вместо r.Println написать r.Take(1).Println
Автор ответа: Gleb1Kosyrev
0
//Школьный вариант с уродливым "пузырьком"
//Pascal ABC.NET 3.1 сборка 1256

Const
 n=10;
 m=20;
 z=30;

Var
 ar1:array[1..n] of integer;
 ar2:array[1..m] of integer;
 ar3:array[1..z] of integer;
 i,k,j:integer;
 b:boolean;

begin
randomize;
k:=-1;
b:=false;
  for i:=1 to n do
    ar1[i]:=random(20);
  for i:=1 to n-1 do
   for j:=i+1 to n do
    if ar1[i]>ar1[j] then swap(ar1[i],ar1[j]);
  writeln('Array 1:');
  for i:=1 to n do
   write(ar1[i]:4);
  writeln;
  for i:=1 to m do
    ar2[i]:=random(20);
  for i:=1 to m-1 do
   for j:=i+1 to m do
    if ar2[i]>ar2[j] then swap(ar2[i],ar2[j]);
    writeln('Array 2:');
  for i:=1 to m do
   write(ar2[i]:4);
  writeln;
  for i:=1 to z do
    ar3[i]:=random(20);
  for i:=1 to z-1 do
   for j:=i+1 to z do
    if ar3[i]>ar3[j] then swap(ar3[i],ar3[j]);
   writeln('Array 3:');
  for i:=1 to z do
   write(ar3[i]:4);
   for i:=1 to n do
    begin
     k:=-1;
     for j:=1 to m do
     if ar1[i]=ar2[j] then
       begin
       k:=ar1[i];
       break;
      end;
     if k=-1 then continue;
     for j:=1 to z do
     if k=ar3[j] then
      begin
       b:=true;
       break;
      end;
    if b=true then break;
   end;
 writeln;
 writeln('Result:');
 if b=false then writeln('Нет') else writeln(k);
end. 
Автор ответа: Аноним
0
"Пузырек"-то как раз неважен - массивы по условию УЖЕ упорядочены, так что он - лишь способ получения исходных массивов.
Автор ответа: Аноним
0
Ваша программа делает именно то, что указано в задаче - находит ОДНО (первое) из совпадающих чисел. Даже если таких чисел несколько. Мой вариант находит их все, хотя, быть может, это и не совсем правильно.
Автор ответа: Gleb1Kosyrev
0
Поправил последнее условие.
Похожие вопросы
Предмет: Обществознание, автор: kikuki85
Предмет: Другие предметы, автор: laurabaglan9022
8. Осадками является

A) ветер

B) град

C) молния

D) листопад

9. Растение, которое растёт чаще всего вдоль дорог –

A) подорожник

B) кувшинка

C) мята

D) лилия

10. Впадина, у которой пологие склоны, поросшие травой, кустарниками, деревьями – это …

A) холм

B) овраг

C) балка

D) гора

11. Обширные участки земной поверхности, высоко приподнятые над прилегающими равнинами, называются

A) овраги

B) горы

C) равнины

D) возвышенности

12. Происхождение угля

A) рудное

B) осадочное

C) животное

D) растительное

13. Основное свойство каменного угля - ...

A) гибкость

B) плавкость

C) прочность

D) горючесть

14. Сердце человека

A) удаляет из крови вредные вещества

B) снабжает организм кислородом

C) переваривает пищу

D) приводит в движение кровь

15. Громкие звуки ухудшают

A) вкус

B) зрение

C) слух

D) обоняние

16. Органы кровообращения

A) сердце, кровеносные сосуды

B) легкие, трахея, бронхи

C) головной мозг, спинной мозг, нервы

D) ротовая полость, глотка, пищевод, печень, желудок, кишечник

17. Государственный праздник, который отмечается 25 октября

A) День Конституции

B) День Республики

C) День Независимости

D) День учителя

18. Событие на котором не исполняется гимн Республики Казахстан -

A) начало дискотеки

B) открытие памятника

C) вручение спортсменам золотых медалей

D) начало радиовещания

19. Казахстан граничит со следующими государствами

A) C) Китай, Россия, Туркменистан, Узбекистан, Молдова

B) B) Россия, Китай, Кыргызстан, Узбекистан, Туркменистан

C) D) Туркменистан, Китай, Узбекистан, Кыргызстан, Латвия

D) A) Россия, Украина, Кыргызстан, Узбекистан, Китай

20. Основной Закон государства

A) Правительство

B) Парламент

C) Конституция

D) Мажилис





Предмет: Математика, автор: marina1074
Предмет: География, автор: kafel2018