Даны массивы целых: x из p элементов, y из q элементов, z из r элементов (p,q,r< =50). элементы массивов по возрастанию. выяснить, есть ли такие числа, которые встречаются в каждом из трех массивов. найти одно из таких чисел или сообщить об его отсутствии.
261
479
Ответы на вопрос:
Одно из "быстрых по написанию" решений, не учитывающих фактор наличия массивов. это разумно: 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Rayanna109.04.2021 13:11
-
sludkov01.04.2022 08:08
-
xaker228lol09.01.2021 12:32
-
saule1961122504.09.2021 13:18
-
MrPuk23.07.2020 12:10
-
alenushka7322.05.2021 16:36
-
alikber200415.01.2021 13:39
-
jotik991p010co24.02.2021 06:16
-
mishanya201119829.01.2020 18:13
-
Deniza0617.07.2022 09:48
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.