Var f,g,e:integer;
a,x,w,h:real;
begin
readln(f,g,e);
a:=((power(f-g,3)-7)/power(g+e,2))-7*((e*f-power(f,2*(g/3)))/(25-g));
writeln(a:10:8);
x:= (power(43,2)*a)-power(42,2)*(g/27.3)+((16+g)/(g-e));
writeln(x:10:8);
w:=(x/100)+(power(25,2)/x)+(a/(3*f))-((g+power(e,2))/(e+power(g,2)));
writeln(w:10:8);
h:=g-power(f,2)-((7*power(e,2)*w)/3)-(power(x,2)/(4.5*f*e));
writeln(h);
readln
end.
Учитывая, что угадывание чисел от 1 до 16 - равновероятностные события, то мы получим 4 бита информации
Во вложении показана принятая условная схема нумерации полей.
Предполагается, что если ферзь стоит на клетке с координатами (3,4), он может пойти по горизонтали, вертикали или диагонали. Соответствующие направления выделены цветом.
Чтобы взять фигуру (или пешку) противника по горизонтали, у обоих фигур должны быть одинаковы координаты строки (первые в паре).
Чтобы взять фигуру противника по вертикали, у обоих фигур должны быть одинаковы координаты столбца (вторые в паре в паре).
Наконец, чтобы взять фигуру противника по диагонали, у обоих фигур должна быть одинакова абсолютная величина разницы как между строками, так и между колонками.
Последнее правило взятия сложное, поэтому запишем его в условных обозначениях. Пусть Rq и Cq - соответственно номера строки и столбца, пересечение которых указывает положение клетки с ферзем. Пусть также фигура противника находится на клетке, заданной координатами Rx и Cx.
Тогда последнее правило можно записать в виде |Rq-Rx| = |Cq-Cx|
Теперь можно записать логическое выражение, значение которого истинно, если ферзь может взять фигуру (или пешку) противника.
(Rq=Rx) ∨ (Cq=Cx) ∨ (|Rq-Rx| = |Cq-Cx|)
<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (Rq,Cq):=ReadInteger2('Введите номера горизонтали и вертикали ферзя:');
var (Rx,Cx):=ReadInteger2('Введите номера горизонтали и вертикали фигуры:');
if (Rq=Rx) or (Cq=Cx) or (Abs(Rq-Rx)=Abs(Cq-Cx)) then Writeln('Yes')
else Writeln('No')
end.
<u>Пример</u>
Введите номера горизонтали и вертикали ферзя: 3 4
Введите номера горизонтали и вертикали фигуры: 6 1
Yes
Program Prices;
const max : integer = 10;
var
price : real;
i : integer;
begin
{ С использованием цикла FOR }
writeln('Используем цикл FOR');
write('Введите стоимость 1-го кг конфет: ');
readln(price);
for i:=1 to max do
begin
writeln (i, ' кг. конфет стоят: ', i*price:7:2);
end;
{ С использованием цикла REPEAT }
i:=1;
writeln;
writeln('Используем цикл REPEAT');
repeat
writeln (i, ' кг. конфет стоят: ', i*price:7:2);
i:=i+1;
until(i>max);
{ С использованием цикла WHILE }
i:=1;
writeln;
writeln('Используем цикл WHILE');
while(i<=max) do begin
writeln (i, ' кг. конфет стоят: ', i*price:7:2);
i:=i+1;
end;
end;