Есть ответ 👍

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

261
479
Посмотреть ответы 3

Ответы на вопрос:


Одно из "быстрых по написанию" решений, не учитывающих фактор наличия массивов. это разумно: 10 за решение - не та цена, за которую есть смысл составлять и отлаживать эффективный алгоритм поиска по массивам. // pascalabc.net 3.1, сборка 1256 от 21.06.2016 begin   var x: =arrrandom(readinteger('p=',20).sorted;   var y: =arrrandom(readinteger('q=',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

//школьный вариант с уродливым "пузырьком" //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. 

Program gt; var n: longint; procedure liniya(n: longint); var i: longint; begin for i: =1 to n do write('-'); end; begin readln(n); liniya(n); end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS