Как в этой программе на python второй for переделать в while Каждый из N школьников некоторой школы знает Mi языков. Определи, какие языки знают все школьники и языки, которые знает хотя бы один из школьников.
q = int(input("Количество учеников: "))
e = []
for i in range(q):
b = set(input("Какие языки знает ученик (через пробел): ").split())
e.append(b)
all = e[0]
one = e[0]
for a in e:
all = all.intersection(a)
one = one.union(a)
print("Все школьники знают", all)
print("Хотя бы один школьник знает", one)
pascal
Объяснение:
var
a: array [1..21] of integer;
i, max, imax: integer;
begin
randomize;
WriteLn('Исходный массив:');
for i := 1 to 21 do
begin
a[i] := random(66) - 13;
Write(a[i], ', ');
end;
WriteLn;
WriteLn('Результат задания 1:');
for i := 1 to 21 do
begin
if i mod 2 = 0 then a[i] := -3 * a[i];
Write(a[i], ', ');
end;
WriteLn;
WriteLn('Результат задания 2:');
for i := 1 to 21 do
begin
if a[i] < 10 then a[i] := - a[i];
Write(a[i], ', ');
end;
WriteLn;
max := -13;
WriteLn('Результат задания 3:');
for i := 1 to 21 do
begin
if abs(a[i]) > 40 then a[i] := a[i] - 15;
Write(a[i], ', ');
if a[i] > max then
begin
max := a[i];
imax := i;
end;
end;
WriteLn;
a[imax] := sqr(imax);
WriteLn('Результат задания 4:');
for i := 1 to 21 do
Write(a[i], ', ');
end.
program z1;
var a:array [1..21] of integer;
i,m: integer;
begin;
write('0.');
for i:=1 to 21 do
begin
a[i]:=random(66)-13;
write(a[i]:5)
end;
writeln;
write('1.');
for i:=1 to 21 do
begin
if i mod 2 = 0 then a[i]:=-3*a[i];
write(a[i]:5)
end;
writeln;
write('2.');
for i:=1 to 21 do
begin
if a[i] < 10 then a[i]:=-a[i];
write(a[i]:5)
end;
writeln;
write('3.');
for i:=1 to 21 do
begin
if abs(a[i]) > 40 then a[i]:=a[i]-15;
write(a[i]:5)
end;
writeln;
m:=1;
for i:=1 to 21 do if a[m] < a[i] then m:=i;
a[m]:=m*m;
write('4.');
for i:=1 to 21 do write(a[i]:5)
end.
Объяснение:
После каждого преобразования выводится получившийся массив