Два игрока, Петя и Ваня, играют в следующую игру1). Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу 1 камень или 5 камней. Например, имея кучу из 10 камней, за один ход можно получить кучу из 11 или 15 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 47. Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 47 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 46. Выполните следующие задания, в каждом случае обосновывая свой ответ.
4) Укажите значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, однако у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани.
var
d:single;
begin
Write('Введите угол в градусах: '); Read(d);
Writeln('Угол в радианах: ',DegToRad(d))
end.
Тестовое решение:
Введите угол в градусах: 57.3
Угол в радианах: 1.00007364807695
Вариант с формулой вместо функции:
//PascalABC.Net 3.0, сборка 1052
var
d:single;
begin
Write('Введите угол в градусах: '); Read(d);
Writeln('Угол в радианах: ',Pi*d/180)
end.
Вариант, если не хочется использовать константу Pi:
//PascalABC.Net 3.0, сборка 1052
var
d:single;
begin
Write('Введите угол в градусах: '); Read(d);
Writeln('Угол в радианах: ',ArcTan(1)*d/45)
end.
Вариант для тех, кто не помнит, что arctg(1)=π/4:
//PascalABC.Net 3.0, сборка 1052
const
Pi=3.14;
var
d:single;
begin
Write('Введите угол в градусах: '); Read(d);
Writeln('Угол в радианах: ',Pi*d/180)
end.
Тестовое решение для этого случая:
Введите угол в градусах: 57.3
Угол в радианах: 0.999566653357612
Как видно, из-за значения π, заданного с низкой точностью, снизилась и точность результата.
Interface Ключевое слово Interface начинает определение внешнего интерфейса модуля.
Uses Ключевое слово Uses определяет список одного или более модулей, которые используются текущим модулем, программой или библиотекой.
Type Ключевое слово Type является фундаментальной частью Delphi оно позволяет создать новые категории (типы) переменной и процесса.
TForm1 = class(TForm) Ключевое слово Class это центральная часть Объектно-ориентированного кода. Объявление класса имеет следующее типичное описание :
Private Определения данных/методов локальные для этого модуля
Protected Определения данных/методов, локальных для этого класса + потомки
Public Определения данных/методов пригодных для использования всеми объектами этого класса
Published Внешне общественные определения
Edit1: TEdit; Компонент Delphi представляет собой однострочное текстовое поле, служащее для ввода данных пользователем
Label1: TLabel; компонент который позволяет отображать текст
Button1: TButton; Кнопка
procedure Button1Click(Sender: TObject); Процедура которая сработает если кликнуть на кнопке
var
Ключевое слово Var используется, чтобы начать раздел определения переменных.
Form1: TForm1; Определяем переменную типа TForm1 смотри выше
Implementation Ключевое слово Implementation начинает активный раздел кода модуля - где объявления интерфейса реализовываются.
{$R *.dfm}//Подключение .dfm файла (файл с данными о визуальных объектах)
procedure TForm1.Button1Click(Sender: TObject); Не посредственно сама процедура обработки события нажатия кнопки
varx,y,z,p:real; Объявляем переменные вещественного типа real
Begin Начало кода процедуры
x:=StrToFloat(Edit1.Text);y:=StrToFloat(Edit2.Text);z:=StrToFloat(Edit3.Text); Считываем текст из однострочное текстовое поле, StrToFloat – пытаемся преобразовать в вещественное значение
p:=(3*x*(exp(3*ln(y)))+(sqrt(y+sqr(x)*z))+ln(Z));
p:=p/(Abs(x-y+sqr(z))+(sin(x)*sin(x)));
Производим расчеты
Label5.Font.color:=clBlue;
Label5.Caption:='Результат:'+#13+'p='+ FloatToStr(5);
Делаем цвет текста голубой, и отображаем значение цифры 5, скорее всего наверное имелось введу «p», #13 это начать с новой строчки – как будто нажали клавишу Enter
end;
Конец процедуры кнопки
end.
конец модуля