Var s:string; i,n:byte; p:boolean; begin Write('Введите строку: '); Readln(s); n:=Length(s); for i:=n downto 1 do if s[i]=' ' then Delete(s,i,1); n:=Length(s); p:=true; for i:=1 to n div 2 do if s[i]<>s[n-i+1] then begin p:=false; break end; if p then Writeln('Палиндром') else Writeln('Не палиндром') end.
Есть специальная функция для округления с точностью до определённого разряда: RoundTo(). Она объявлена в модуле Math.
var Res, Num : Extended; begin //Округление до сотых долей: Res := RoundTo(Num, -2); //Округление до десятых долей: Res := RoundTo(Num, -1); //Округление до единиц: Res := RoundTo(Num, 0); //Округление до десятков: Res := RoundTo(Num, 1); //Округление до сотен: Res := RoundTo(Num, 2); end;
Функция SimpleRoundTo() сходна с RoundTo() – различие лишь в округления последнего знака. SimpleRoundTo() округляет последнее число в большую сторону, а RoundTo() использует так называемое банковское округление, приводя число к ближайшему четному
Формальный язык в математической логике и информатике — множество конечных слов (строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. В теории моделей язык строится из множеств символов, функций и отношений вместе с их арностью, а также множества переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания.
Т.е. о любом высказывании можно сказать принадлежит оно этому языку или нет, является ли ошибочным.
1) - я мало знаю о японской писмености, чтоб судить о конечности и вариционности. Возможно да, возможно нет. Но скорее в данном контексте нет 2) скорее всего да. Конечный алфавит и тп 3) - нет, потому что каждый говорит как хочет, бесконечность вариаций, нет критерия правильности 4) - да, потому что есть критерий правильности, единый синтаксис, впринцепе конечный алфавит
s:string;
i,n:byte;
p:boolean;
begin
Write('Введите строку: ');
Readln(s);
n:=Length(s);
for i:=n downto 1 do
if s[i]=' ' then Delete(s,i,1);
n:=Length(s);
p:=true;
for i:=1 to n div 2 do
if s[i]<>s[n-i+1] then
begin
p:=false;
break
end;
if p then Writeln('Палиндром')
else Writeln('Не палиндром')
end.