Размещено 2 года назад по предмету
Информатика
от yepboo4
В N колхозах выращивают некоторые сельскохозяйственные культуры из имеющегося перечня. Определить культуры: • возделываемые во всех колхозах; • возделываемые только в некоторых колхозах.
Python Вот пример на паскале: uses crt; type kultura=(kr,kp,sv,ps,kk,ms); mnz=set of kultura; const nmax=10; sp:array[0..5] of string=('картофель','капуста','свекла', 'пшеница','кукуруза','маис'); var m:array[1..nmax] of mnz; res:mnz; j:kultura; n,i,k,p:byte; nz:string; begin clrscr; repeat write('Количество колхозов до ',nmax,' n='); readln(n); until n in [1..nmax]; writeln('Перечислите какие культуры возделывают в колхлзах:'); for i:=1 to n do begin writeln('Колхоз ',i); m[i]:=[]; writeln('0-картофель 1-капуста 2-свекла 3-пшеница 4-кукуруза 5-маис 6-выход'); repeat readln(k); if k in [0..5] then m[i]:=m[i]+[kultura(k)]; until k=6; end; writeln('Возделываются во всех колхозах'); res:=[]; for j:=kr to ms do begin k:=0; for i:=1 to n do if j in m[i] then k:=k+1; if k=n then res:=res+[j]; end; if res=[] then writeln('Таких культур нет') else for j:=kr to ms do if j in res then write(sp[ord(j)],' '); writeln; writeln('Возделываются только в некоторых колхозах:'); res:=[]; for j:=kr to ms do begin for i:=1 to n do if j in m[i] then res:=res+[j]; end; for j:=kr to ms do if j in res then write(sp[ord(j)],' '); writeln; writeln('Нет ни в одном колхозе:'); res:=[]; for j:=kr to ms do begin k:=0; for i:=1 to n do if not(j in m[i]) then k:=k+1; if k=n then res:=res+[j]; end; if res=[] then writeln('Таких культур нет') else for j:=kr to ms do if j in res then write(sp[ord(j)],' '); readln end.
Второй пример этой задачи uses crt; const n=5; type TS=set of 1..10; var S,VV,VN:TS; V:array[1..n] of TS; k,i,x,code:byte; ch:string[1]; Procedure vivod; begin Case i of 1:writeln('пшеница'); 2:writeln('рожь'); 3:writeln('пшено'); 4:writeln('рис'); 5:writeln('ячмень'); 6:writeln('кукуруза '); 7:writeln('гречка'); 8:writeln('овёс'); 9:writeln('фосоль'); 10:writeln('горох'); end; end; begin {writeln('введите список культур возделываемых в ‘,n,’ колхозах');} v[1]:=[3,6,7]; v[2]:=[2,5,6,7,10]; v[3]:=[1,2,6,7]; v[4]:=[6,7,1,10]; v[5]:=[6,7,2,1,5]; vv:=v[1]*v[2]*v[3]*v[4]*v[5]; vn:=v[1]+v[2]+v[3]+v[4]+v[5]-vv; writeln('культуры возделываемых во всех колхозах'); For i:=1 to 10 do if i in vv then vivod; writeln; writeln('культуры возделываемых в некоторых колхозах'); For i:=1 to 10 do if i in vn then vivod; end.