
Маткевич
7 год назад
Нужно написать рабочий код для задачи в паскале.

ОТВЕТЫ

Наркисс
Jul 13, 2019
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString(Введите 17-ричное число с последующей точкой:);
var p:=Pos(.,s);
if p=0 then Writeln(точка не найдена)
else begin
s:=Copy(s,1,p-1).ToUpper;
if (s.All(c-gt;c in [0..9,A..G])) then
// написано корректно, проверем на нечет
if s.Select(c-gt;clt;=9c.ToDigit:Ord(c)-Ord(A)+10).Sum.IsOdd
then Writeln(Yes)
else Writeln(No)
else Writeln(No)
end;
end.
Пример
Введите 17-ричное число с последующей точкой: 015C45Ef9a.xyz
Yes
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString(Введите 17-ричное число с последующей точкой:);
var p:=Pos(.,s);
if p=0 then Writeln(точка не найдена)
else begin
s:=Copy(s,1,p-1).ToUpper;
if (s.All(c-gt;c in [0..9,A..G])) then
// написано корректно, проверем на нечет
if s.Select(c-gt;clt;=9c.ToDigit:Ord(c)-Ord(A)+10).Sum.IsOdd
then Writeln(Yes)
else Writeln(No)
else Writeln(No)
end;
end.
Пример
Введите 17-ричное число с последующей точкой: 015C45Ef9a.xyz
Yes
6
Смежные вопросы: