Написать программу, которая определяет количество полей, которые находятся под боем этих фигур. На шахматной доске стоит ферзь и конь.
239
413
Ответы на вопрос:
var
f, k, s : string;
a : array [-1..10,-5..14] of byte;
b : array [1..2,1..8] of integer;
i, j, ife, jfe, ik, jk, ch : integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
assign(f2,'output.txt'); rewrite(f2);
s:='abcdefgh';
b[1,1]:= 1; b[2,1]:= 2;
b[1,2]:= 1; b[2,2]:=-2;
b[1,3]:= 2; b[2,3]:= 1;
b[1,4]:= 2; b[2,4]:=-1;
b[1,5]:=-2; b[2,5]:= 1;
b[1,6]:=-2; b[2,6]:=-1;
b[1,7]:=-1; b[2,7]:= 2;
b[1,8]:=-1; b[2,8]:=-2;
readln(f1,f); readln(f1,k);
jfe:=pos(f[1],s); ife:=ord(f[2])-48;
jk:=pos(k[1],s); ik:=ord(k[2])-48;
for i:=1 to 8 do
for j:=1 to 8 do a[i,j]:=0;
for i:=1 to 8 do
for j:=1 to 8 do
begin
if (i=ife) then a[i,j]:=1;
if (j=jfe) then a[i,j]:=1;
if ( i-j=ife-jfe ) then a[i,j]:=1;
if ( i+j=ife+jfe ) then a[i,j]:=1;
end;
for i:=1 to 8 do
a[ik+b[1,i], jk+b[2,i]]:=1;
a[ife,jfe]:=0; a[ik,jk]:=0;
if ife=ik then
if jfe<jk then for j:=jk+1 to 8 do a[ife,j]:=0
else for j:=1 to jk-1 do a[ife,j]:=0;
if jfe=jk then
if ife<ik then for i:=ik+1 to 8 do a[i,jfe]:=0
else for i:=1 to ik-1 do a[i,jfe]:=0;
if ife-jfe=ik-jk then
if ife<ik then for i:=ik+1 to 8 do a[i,i-ik+jk]:=0
else for i:=1 to ik-1 do a[i,jk+i-ik]:=0;
if ife+jfe=ik+jk then
if ife<ik then for i:=ik+1 to 8 do a[i,jk+ik-i]:=0
else for i:=1 to ik-1 do a[i,jk-i+ik]:=0;
ch:=0;
for i:=1 to 8 do
for j:=1 to 8 do ch:=ch+a[i,j];
{Печать поля для проверки
for i:=8 downto 1 do
begin
write(i,' ');
for j:=1 to 8 do
if (i=ife) and (j=jfe) then write('Ф') else
if (i=ik) and (j=jk) then write('К') else
if a[i,j]=1 then write('+') else write(' ');
writeln
end;
writeln(' abcdefgh');
}
writeln(f2,ch); close(f2)
end.
f, k, s : string;
a : array [-1..10,-5..14] of byte;
b : array [1..2,1..8] of integer;
i, j, ife, jfe, ik, jk, ch : integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
assign(f2,'output.txt'); rewrite(f2);
s:='abcdefgh';
b[1,1]:= 1; b[2,1]:= 2;
b[1,2]:= 1; b[2,2]:=-2;
b[1,3]:= 2; b[2,3]:= 1;
b[1,4]:= 2; b[2,4]:=-1;
b[1,5]:=-2; b[2,5]:= 1;
b[1,6]:=-2; b[2,6]:=-1;
b[1,7]:=-1; b[2,7]:= 2;
b[1,8]:=-1; b[2,8]:=-2;
readln(f1,f); readln(f1,k);
jfe:=pos(f[1],s); ife:=ord(f[2])-48;
jk:=pos(k[1],s); ik:=ord(k[2])-48;
for i:=1 to 8 do
for j:=1 to 8 do a[i,j]:=0;
for i:=1 to 8 do
for j:=1 to 8 do
begin
if (i=ife) then a[i,j]:=1;
if (j=jfe) then a[i,j]:=1;
if ( i-j=ife-jfe ) then a[i,j]:=1;
if ( i+j=ife+jfe ) then a[i,j]:=1;
end;
for i:=1 to 8 do
a[ik+b[1,i], jk+b[2,i]]:=1;
a[ife,jfe]:=0; a[ik,jk]:=0;
if ife=ik then
if jfe<jk then for j:=jk+1 to 8 do a[ife,j]:=0
else for j:=1 to jk-1 do a[ife,j]:=0;
if jfe=jk then
if ife<ik then for i:=ik+1 to 8 do a[i,jfe]:=0
else for i:=1 to ik-1 do a[i,jfe]:=0;
if ife-jfe=ik-jk then
if ife<ik then for i:=ik+1 to 8 do a[i,i-ik+jk]:=0
else for i:=1 to ik-1 do a[i,jk+i-ik]:=0;
if ife+jfe=ik+jk then
if ife<ik then for i:=ik+1 to 8 do a[i,jk+ik-i]:=0
else for i:=1 to ik-1 do a[i,jk-i+ik]:=0;
ch:=0;
for i:=1 to 8 do
for j:=1 to 8 do ch:=ch+a[i,j];
{Печать поля для проверки
for i:=8 downto 1 do
begin
write(i,' ');
for j:=1 to 8 do
if (i=ife) and (j=jfe) then write('Ф') else
if (i=ik) and (j=jk) then write('К') else
if a[i,j]=1 then write('+') else write(' ');
writeln
end;
writeln(' abcdefgh');
}
writeln(f2,ch); close(f2)
end.
я считаю что это орех, ведь у него твёрдая скорлупа, и вкусная серединка : 3
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Другие предметы
-
про73927.12.2021 17:56
-
дагмгп01.05.2022 03:23
-
marinaboarskaa4113.06.2020 20:00
-
Evo4ka11110.04.2021 19:31
-
Anastaskip25.08.2021 04:38
-
ejjekskaksk25.06.2023 08:53
-
stas745414.11.2021 21:58
-
Savosin22923.04.2022 10:46
-
DianaSmile11125.11.2020 18:22
-
npodolskaa19121.05.2022 11:16
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.