поле шахматной доски определяется парой натуральных чисел каждое из которых не превосходит 8. По введенным координатам двух полей (k,l) и (m,n) выясните угрожает ли ферзь находящийся на поле (k,l) , полю (m,n)? на вход программе подаются 4 целых числа k,l,m и n. Выведите YES или NO в зависимости от ответа на вопрос задачи. Ферзь может ходить как по диагонали так и по прямой горизонтали и вертикали
Відповідь:
from tkinter import *
window = Tk()
window.title("Восьмиугольник")
window.geometry("600x600+0+0")
pole = Canvas(window,width=600,height=600,bg="blue")
x=y=60#смещения для координат x,y
deltad =x/(2**(1/2))#смещение для диагональной прямой
pole.pack()
l=[(0,y),
(deltad,y-deltad),
(deltad+x,y-deltad),
(2*deltad+x,y),
(2*deltad+x,2*y),
(deltad+x,2*y+deltad),
(deltad,2*y+deltad),
(0,2*y)]
pole.create_polygon(l,fill="white")
window.mainloop()
Тяп-ляп и готово, для этого использовано было теорему Пифагора.
Відповідь:
#include <iostream>
#include<string>//для std::string,length()
#include<iomanip>//для std::setw()
struct kid{
std::string name;
bool gender;
float height;
};
int main(int argc, char** argv) {
struct kid kids[]={
"Tom",1,1.34,
"Sara",0,1.54,
"John",1,1.65,
"Kate",0,1.86,
"Emily",0,1.53,
"Lily",0,1.57,
"Oscar",1,1.76,
"James",1,1.73,
"William",1,1.71,
"George",1,1.67,
"Noah",1,1.61,
"Leo",1,1.75,
"David",1,1.71,
"Albert",1,1.68,
"Austin",1,1.84,
"Mia",0,1.65,
"Ruby",0,1.64,
"Scarlett",0,1.54,
"Isabelle",0,1.45,
"Ellie",0,1.65
};
double medium=0.0;
int n=sizeof(kids)/sizeof(kids[0]);
int t=0;
for(int i=0;i<n;i++){
std::cout<<kids[i].name<<std::setw(12-kids[i].name.length())<<kids[i].gender<<std::setw(7)<<kids[i].height<<std::endl;
if(kids[i].gender==true){
medium+=kids[i].height;t++;}
}
medium/=t;
std::cout<<"\nMedium height of boys= "<<medium<<std::endl<<std::endl;
for(int i=0;i<n;i++){
if(kids[i].gender==1){
if(kids[i].height<medium){
std::cout<<kids[i].name<<std::setw(12-kids[i].name.length())<<kids[i].gender<<std::setw(7)<<kids[i].height<<std::endl;
}
}
}
system("pause");
return 0;
}