Когда я пробую отдебажить программу при помощи клавиши F7, дабы просмотреть как работает функция Way, то компилятор останавливается на слове Begin в самом начале, после описания переменнных!
Помогите, пожалуйста, разобратся!
Вот код программы:
program maxmin;
{$APPTYPE CONSOLE}
uses
SysUtils;
const Nmax=10000;
type
Mat=array[1..Nmax,1..Nmax]of byte;
Tm=array[1..Nmax]of longword;
Log=array[1..Nmax]of boolean;
function min(M:Tm;visited:Log;N:longword):longword;
var i,etalon,x:longword;
begin
etalon:=M[1];
x:=1;
for i:=2 to n do
begin
if (M[i]<etalon)and(not visited[i])
then
begin
etalon:=M[i];
x:=i;
end;
end;
min:=x;
end;
function maximum(M:Tm;N:longword):longword;
var i,etalon:longword;
begin
etalon:=M[1];
for i:=2 to n do
begin
if M[i]>etalon
then etalon:=M[i];
end;
maximum:=etalon;
end;
function logic(M:Log;N:longword):boolean;
var i:longword;res:boolean;
begin
res:=true;
for i:=1 to n do
begin
if M[i]=false
then
begin
res:=false;
break;
end;
end;
logic:=res;
end;
function way(A:mat;n,v:longword):longword;
var M,C:Tm;i,k,x,j:longword;visited:Log;
begin
m[v]:=0;
for i:=1 to n do
begin
if i<>v
then
begin
m[i]:=1000000;
visited[i]:=false;
end
else visited[i]:=false;
end;
while logic(visited,n)=false do
begin
j:=min(M,visited,n);
visited[j]:=true;
k:=1;
x:=1;
fillchar(C,sizeof(c),0);
while k<>n do
begin
if A[j,k]=1
then
begin
c[x]:=k;
inc(k);
inc(x);
end
else inc(x);
end;
for i:=1 to x do
begin
if M[c[i]]<M[j]+1
then M[c[i]]:=M[j]+1
end;
end;
way:=maximum(M,n);
end;
var f:text;A:array[1..Nmax,1..2]of longword;Matrix:Mat;
i,n,v,m,max:longword;
begin
assign(F,'maxmin.in');
reset(F);
read(F,n,m,v);
for i:=1 to m do
begin
read(F,A[i,1],A[i,2]);
Matrix[A[i,1],A[i,2]]:=1;
end;
close(F);
max:=way(matrix,n,v);
assign(F,'maxmin.out');
rewrite(F);
writeln(F,max);
close(F);
end.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.