Задача 2. Перестановки. Вводятся две переменные. Поменяйте местами значения переменных в ячейках. Дан набор команд в произвольном порядке (других команд в программе быть не должно). Соберите программу путем выбора правильных команд. c:=a; program obmen; end. writeln(a, ' ', b, ' ', c); b:=a; begin var a, b: integer; a:=c; readln (a, b); c:=b; writeln(a, ' ', b); var a, b, c: integer; b:=c; readln (a, b, c);
Для решения задачи используется метод кругов Эйлера, только здесь круги не круглые, а прямоугольные.)
S = 24
S1+S2+S3+S4 = 10
S3+S4+S5+S7 = 8
S2+S3+S6+S7 = 6
S2+S3 = 3
S3+S4 = 3
S3+S7 = 3
S3 = 1
S1+S4+S5 - ?
S1 - ?
S-(S1+S2+S3+S4+S5+S6+S7) - ?
S2 = (S2+S3)-S3 = 3-1 = 2
S4 = (S3+S4)-S3 = 3-1 = 2
S7 = (S3+S7)-S3 = 3-1 = 2
S1 = (S1+S2+S3+S4)-(S2+S3+S4) = 10-(2+1+2) = 5
S5 = (S3+S4+S5+S7)-(S3+S4+S7) = 8-(1+2+2) = 3
S1+S4+S5 = 5+2+3 = 10
S-(S1+S2+S3+S4+S5+S6+S7) = 24-(S2+S3+S6+S7)-(S1+S4+S5) =24-6-10 = 8
ответ: а)10; б)5; в)8
Решал на паскале.
Первая:
var i:integer; s:string; a:array[1..3] of integer; t.q,z: boolean;
begin
readln(i); q:=false; t:=false;
a[1]:=i mod 10;
a[2]:=i div 10 mod 10;
a[3]:=i div 10 div 10;
for i:=1 to 3 do
begin
if a[i]=4 then
q:=true;
if (a[i]=7) and (q=true) then t:=true;
if a[i]=7 then z:=true;
end;
if t=true then writeln('Vhodyat oba) else if (q=true) and (z=false) then writeln('Vhodit 4') else if (q=false) and (z=true) then writeln('Vhodut 7');
readln;
end.
Вторая:
var a,b,c,min:integer;
begin
min:=32000;
readln(a,b,c);
if a<min then min:=a; if b<min then min:=b; if c<min then min:=c;
writeln ('Minimalnoe - ',min);
readln;
end.
Третья:
var a,b,c:integer; x,y,d:real;
begin
readln(a,b,c);
d:=b*b-(4*a*c);
if d=0 then
begin
x:=(-b/2*a);
writeln('One root: ',x:0:0);
end;
if d>0 then
begin
x:=(-b+sqrt(d))/2*a;
y:=(-b-sqrt(d))/2*a;
if y>x then
writeln('Two roots: ',x:0:0,' ',y:0:0) else writeln('Two roots: ',y:0:0,' ',x:0:0);
end;
if d<0 then writeln('No roots');
readln;
end.: