<em>// PascalABC.NET 3.2, сборка 1437 от 03.05.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var s:=ReadlnString;
if s<>s.MatchValue('[01]+') then Write('не ');
Writeln('двоичное число')
end.
<u>Пример</u>
010101111011
двоичное число
begin
var s:=ReadlnString;
if s<>s.MatchValue('[\+-]?\d+.\d+') then Write('не ');
Writeln('дробное число')
end.
<u>Пример</u>
12.54
дробное число
begin
var s:=ReadlnString;
s.Matches('\s([\+-]?\d{2})\s').Select(t->Trim(t.Value)).Println;
end.
<u>Пример</u>
123.3 15 -11.7 +21 23.2 51 9 182
15 +21 51
Uses Crt;
const
n=6;
var
i,k:byte;
p:longint;
a:array[1..n] of shortint;
begin
Randomize;
k:=0; p:=1;
ClrScr;
for i:=1 to n do begin
a[i]:=Random(51)-25; { [-25..25] }
Write(a[i],' ');
if a[i] mod 5=0 then begin k:=k+1; p:=p*a[i] end
end;
Writeln; Writeln('k=',k,', P=',p);
ReadKey
end.
Треугольник,потому что пирамида в форме треугольника
//Не смотрел Ваш код, просто моё видение решения задачи
//PascalABC.NET 3.2 сборка 1318
Var
t:text;
x,y,i,j:integer;
s:string;
c:char;
world:array[1..4] of char=('E','S','W','N');
begin
j:=1;
c:='E';
assign(t,'input.txt');
reset(t);
read(t,s);
close(t);
i:=1;
while s[i]<>'S' do
begin
if s[i]='R' then
begin
if c='N' then j:=1 else inc(j);
c:=world[j];
end;
if s[i]='L' then
begin
if c='E' then j:=4 else dec(j);
c:=world[j];
end;
if s[i]='F' then
case c of
'E':inc(x);
'S':dec(y);
'W':dec(x);
'N':inc(y);
end;
inc(i);
end;
assign(t,'output.txt');
rewrite(t);
write(t,x,' ',y);
close(t);
end.
Пример содержимого input.txt:
FLFS
Пример содержимого output.txt:
1 1
Первый вопрос - первое вложение. Второй - два остальных.