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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 04:18   #1
kolobok11
 
Регистрация: 26.10.2011
Сообщений: 5
По умолчанию на строке else "ожидался оператор"

причём если убрать условие if-else все работает как часы
Код:
(87) : Ожидался оператор
PASCALABC
Код:
Type 
	te=char; 
	pe=^el;
	el=Record //содание структуры элемента ЛДС
		inf:te;
		next:pe;
		pre:pe;
	End;
	
Var 
	zag,p,q,k:pe;
	i,n,m:Integer;
	e:char;
	
Begin
	New (zag);
	Zag^.next:=Nil; //подготовка заглавного элемента
	Zag^.pre:=Nil; 
	p:=zag;	
	Write('Задайте количество элементов ЛДС: ');
	Readln(m);
	//-----------------//
	if (m>0) then
	Begin
		For i:=1 To m Do //создание ЛДС
			Begin
				New (q);
				Write('Введите значение очередного элемента ЛДС: ');
				Readln(q^.inf);
				q^.pre:=p;
				p^.next:=q;
				p:=q;
			End;
		q^.next:=Nil; 
		q:=zag^.next;
		Writeln('Контрольный вывод ЛДС');
		i:=1;
		While (q<>Nil) Do
			Begin
				Writeln('№',i,':', q^.inf);
				q:=q^.next;
				i:=i+1;
			End;
		Writeln('Хотите ли вы добавить новый элемент в ЛДС? 1 да, 0 нет');
		Readln(n);
		While (n=1) Do
		Begin
			Write('Введите номер элемента ЛДС, перед которым будет добавлен новый элемент: ');
			Readln(n); //номер элемента, перед которым появится новый элемент
			While (n>m) Do
				Begin
					Writeln ('Введённое число превышает количество элементов ЛДС. Пожалуйста, повторите ввод.');
					Readln(n);
				End;
			q:=zag^.next;
			i:=1;
			While (i<>n) and (q<>Nil) Do //перебор элементов до указанного 
				Begin
					q:=q^.next;
					i:=i+1;
				End;
			Write('Введите значение нового элемента ЛДС: ');
			New(k);
			Readln(k^.inf);
			p:=q^.pre;
			p^.next:=k;
			k^.pre:=p;
			q^.pre:=k;
			k^.next:=q;
			m:=m+1;
			Writeln('Хотите ли вы добавить новый элемент в ЛДС? 1 да, 0 нет'); //повторный вопрос
			Readln(n);
		End;
		q:=zag^.next;
		n:=1;
		writeln('Повторный контрольный вывод ЛДС');
		While (q<>Nil) Do
			Begin
				Writeln('№',n,':', q^.inf);
				q:=q^.next;
				n:=n+1;
			End;	
		Writeln('Завершение работы программы. Нажмите клавишу Enter.');
		Readln(e);
	End;
	else 
		Begin	
		  Writeln('Завершение работы программы. Нажмите клавишу Enter.');
			Readln(e);
		End;
End.
kolobok11 вне форума Ответить с цитированием
Старый 26.10.2011, 07:02   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Убери ";" на предыдущей строке.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 26.10.2011, 12:03   #3
kolobok11
 
Регистрация: 26.10.2011
Сообщений: 5
По умолчанию

Спасибо!
kolobok11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
"ожидался оператор" при вводе функции на языке PascalABC Юрий_91 Помощь студентам 2 08.01.2010 20:47
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Оператор амперсанд "&" или число внутри текста dotvz Microsoft Office Excel 2 02.04.2008 14:33