Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2011, 16:10   #1
helena91
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 15
По умолчанию Определяет ошыбку end expected

Ето программа обхода графа в глубину, граф представляется списком инцидентности. Определяет ошыбку end expected, но на самом деле количество end нужное.
вот сам текст програмы:

program l;
uses crt;

Type List = ^S;

S = record;

inf : Byte;

next : List;

end;

Var Gr : array[1..n] of List;

Procedure Obhod(gr : Graph; k : Byte);

Var g : Graph; l : List;

Begin

nov[k] := false;

g := gr;

While g^.inf <> k do

g := g^.next;

l := g^.smeg;

While l <> nil do begin

If nov[l^.inf] then Obhod(gr, l^.inf);

l := l^.next;

End;

End;
End.
helena91 вне форума Ответить с цитированием
Старый 07.03.2011, 16:27   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

1. нужно заранее определять размерность массива
Код:
Var Gr : array[1..n] of List;
Код:
const n = //размерность массива
2.
Код:
Graph
а что за тип такой?
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 07.03.2011, 16:31   #3
Deniska_777
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от helena91 Посмотреть сообщение
program l;
uses crt;

Type List = ^S;

S = record;

inf : Byte;

next : List;

end;
почему у вас end стоит ?
вы ведь не открывали begin .
Deniska_777 вне форума Ответить с цитированием
Старый 07.03.2011, 16:45   #4
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Deniska_777 Посмотреть сообщение
почему у вас end стоит ?
вы ведь не открывали begin .
, здесь begin вовсе не нужен , end показывает что конец записи.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 07.03.2011, 16:56   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
S = record;
точку с запятой убрать.

Код:
Var Gr : array[1..n] of List;
n объявить.

Код:
Procedure Obhod(gr : Graph; k : Byte);
Graph объявить.

Код:
nov[k] := false;
nov объявить.

Тогда ваш обход графа может и заработает )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.03.2011, 20:05   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

И ещё один советик:

Пишите код отформатированным, то есть, чтобы была очень хорошо видна вложенность и иерархия операторов. А то у вас всё в один столбец написано, выровнено по левому краю... вы сами даже запутались...

Последний раз редактировалось Вадим Мошев; 07.03.2011 в 20:06. Причина: :)
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти ошыбку в програме anurid Помощь студентам 3 13.05.2010 02:16
найти ошыбку в програме anurid Паскаль, Turbo Pascal, PascalABC.NET 1 27.04.2010 17:39
помогите найть ошыбку toader Общие вопросы C/C++ 2 17.06.2009 12:04
expected END but : found qqanton Помощь студентам 2 31.10.2008 17:45