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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2013, 01:05   #1
HelpMePlease!
 
Регистрация: 29.05.2012
Сообщений: 7
Восклицание Работа с однонаправленным списком в Delphi

Здравствуйте!
Не могли бы вы подсказать решение данной задачи:
Дан однонаправленный список, состоящий из целых чисел. Вставить перед каждым элементом, равным максимальному элементу списка, минимальный элемент.

Есть такой код:
Код:
program Project;
{$APPTYPE CONSOLE}
type
faw = integer;
type_inf = integer;{тип информационной части - integer}
ptr = ^elem;{тип указатель типа elem}
{тип запись элемент однонаправленного списка}
elem = record
  inf: type_inf; {информационное поле}
  next: ptr; {адресная часть}
end;
  {описание переменных}
var k,an,ak,am,l:ptr;
    val:type_inf;
    f:textfile;
    var fil:string;
    flag:boolean;
begin
fil:='file.txt';{переменная, содержащая имя файла}
assignfile(f,fil); {связь файловой переменной с именем файла}
reset(f);{открытие файла для чтения}
read(f,val); {чтение первого числа}
{заполнение однонаправленного списка}
new(an); {выделение памяти для первого элемента списка}
an^.inf:=val; {заполнение информационного поля}
ak:=an; {задание адреса последнего элемента}
ak^.next:=nil; {задание адресной части последнего элемента}
while not(eof(f)) do {пока не закончились данные в файле}
begin
  new(k); {выделение памяти для текущего элемента списка}
  read(f,val); {чтение очередного числа из файла}
  {заполнение информационного поля текущего элемента}
  k^.inf:=val;
  {запись адреса текущего элемента в адресную часть последнего
      элемента}
ak^.next:=k;
  {задание адресной части текущего элемента, как последнего элемента}
  k^.next:=nil;
  ak:=k; {переписать адрес текущего элемента в последний элемент}
end;
{вывод информационной части элементов списка}
k:=an; {задать начало списка}
while k<>nil do {пока не закончились элементы списка}
begin
  val:=k^.inf;
  writeln(val); {вывод информационного поля текущего элемента}
  k:=k^.next; {переход к следующему элементу списка}
end;
{Поиск первого нулевого элемента}

flag:=false; {логическая переменная, определяющая, найден ли нулевой элемент в списке}
k:=an; {задать начало списка}
{пока не закончились элементы списка или не найден нулевой элемент}

faw:=1;
while k<>nil do
begin
  if k^.inf>faw then
  begin
  faw:=k^.inf
  k:=k^.next
  end;
k:=k^.next
readln;
end.
end;
Пробовал написать элементарную процедурку чтобы выявить максимальное число(В конце, начиная с faw:=1 - куча ошибок :

[Error] Project2.dpr(54): '(' expected but ':=' found
[Error] Project2.dpr(57): '(' expected but ')' found
[Error] Project2.dpr(58): Missing operator or semicolon
[Error] Project2.dpr(59): '(' expected but ':=' found
[Error] Project2.dpr(60): Missing operator or semicolon


Подскажите, пожалуйста! Нужно срочно!
HelpMePlease! вне форума Ответить с цитированием
Старый 04.12.2013, 10:27   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

; там нет, в трех местах
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со списком и классом ( Delphi ) Сароникус Помощь студентам 2 15.11.2012 19:36
Азы delphi. Работа с объектом списком. CKent Помощь студентам 6 20.03.2012 11:14
Работа со списком. Рекурсия. Комментарии. (Delphi) Vlad_Is_Love Помощь студентам 1 18.03.2012 12:47
Работа со списком Delphi novi4ok_Delphi Помощь студентам 3 11.03.2010 15:28