PascalABC.NET
const
n = 3;
var
a : array [1..n,1..n] of string;
smax : string;
i,j,lmin,lmax,km : integer;
begin
lmax := 0;
smax := '';
for i := 1 to n do
for j := 1 to n do
begin
readln (a[i,j]);
if Length (a[i,j]) > lmax then
begin
smax := a[i,j];
lmax := Length (a[i,j]);
end;
end;
lmin := Length (a[1,1]);
km := 1;
for i := 2 to n do
if Length (a[i,i]) < lmin then
begin
lmin := Length (a[i,i]);
km := i;
end;
writeln ();
for i := 1 to n do
begin
for j := 1 to n do
write (a[i,j],' ');
writeln ();
end;
writeln ();
for i := 1 to n do
begin
for j := 1 to n do
if (i = km) and (j = km) then
write (smax,' ')
else
write (a[i,j],' ');
writeln ();
end; <span>
end.</span>
var
n,i,otv,l,m,h,k: integer;
begin
writeln ('сколько человек в группе');
read (n);
for i:=1 to n do
begin
writeln ('какой язык ты изучаешь: 1-англ,2-нем,3-франц,0-никакой');
read (otv);
case otv of
0: l:=l+1;
1: h:=h+1;
2: k:=k+1;
3: m:=m+1;
end;
end;
writeln ('английский язык изучает',h,'человек');
writeln ('немецкий язык изучает',k,'человек');
writeln ('французский язык изучает',m,'человек');
writeln (l,'человек не изучает никакой язык');
end.
Все зависит от того, что обеспечивают эти семафоры.
1. Семафоры обеспечивают синхронизацию потоков. Тогда будут выполнены P(S!) в первом потоке и P(S2) во втором, причем более быстрый процесс подождет, а затем работа пойдет одновременно с точки P(S2) в первом потоке и P(S1) во втором.
2. Семафоры захватывают ресурсы. В этом случае произойдет взаимная блокировка. Например, P(S2) в первом потоке будет ждать некоего ресурса, захваченного вторым потоком, а P(S1) во втором потоке - ресурса, захваченного первым потоком.
3. Семафоры запрещают одновременное выполнение некоторого общего участка кода. Также возможна взаимная блокировка по принципу, описанному выше.
1)15,24,36
2)да, так как их сумма (3+2+1+4+6+5+4+9+8) делится на 3
3)эти числа являются составными так как делятся только на себя и на 1