Ребят кто нибудь что здесь нужно испаривить чтобы заработало? type
PNode=^TNode;
TNode=record
s: string;
left,right: PNode;
end;
var
f: text;
p,p1,p2,root: PNode;
x: integer;
s,q: string;
procedure InitRoot;
begin
New(root);
root^.s:='Собака';
root^.left:=nil;
root^.right:=nil;
end;
procedure SaveToFile(p: PNode);
begin
if p=nil then
begin
writeln(f,'');
exit
end;
writeln(f,p^.s);
SaveToFile(p^.left);
SaveToFile(p^.right);
end;
function LoadFromFile: PNode;
var
s: string;
p: PNode;
begin
readln(f,s);
if s='' then
begin
Result:=nil;
exit
end;
New(p);
p^.s:=s;
p^.left:=LoadFromFile;
p^.right:=LoadFromFile;
Result:=p;
end;
begin
writeln('Загадайте животное');
assign(f,'data.txt');
if not FileExists('data.txt') then
InitRoot
else
begin
reset(f);
root:=loadfromfile;
close(f);
end;
p:=root;
while p^.left<>nil do
begin
write(p^.s+'? ');
readln(x);
if x=1 then p:=p^.left
else p:=p^.right
end;
write('Это '+p^.s+'? ');
readln(x);
if x=1 then
writeln('Я угадала!')
else
begin
write('Я проиграла. Что это за животное? ');
readln(s);
write('Введите вопрос, отличающий это животное от '+p^.s+': ');
readln(q);
New(p1);
New(p2);
p1^.s:=s;
p1^.left:=nil;
p1^.right:=nil;
p2^.s:=p^.s;
p2^.left:=nil;
p2^.right:=nil;
p^.s:=q;
p^.left:=p1;
p^.right:=p2;
end;
rewrite(f);
SaveToFile(root);
close(f);
end.
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: -1453.5462
Символ "4" встречается больше одного раза
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: 16379068
Символ "6" встречается больше одного раза