Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 05.08.2009, 12:47   #1
mmx358
Пользователь
 
Регистрация: 28.06.2009
Сообщений: 84
По умолчанию Illegal assignment

Код:
procedure Setup(var llimx, rlimx : byte);
var
  a : byte;
begin
  gotoxy(20,10);
  writeln('Width of field:');
  gotoxy(20,30);
  repeat read(a); until (a>9) and (a<21);
{---------------------------------------}  
  llimx:=((80-(a*2))/2)-1; {Устанавливаем границы, одновременно центрируем}
  rlimx:=(llimx+(a*2))+1; {Устанавливаем границы, одновр. центр.}
end;
Компилятор ставит курсор в конец строки
Код:
llimx:=((80-(a*2))/2)-1;
и говорит "Illegal assignment.
Я же вроде прописал все типы...

Последний раз редактировалось mmx358; 05.08.2009 в 12:48. Причина: Надумал
mmx358 вне форума Ответить с цитированием
Старый 05.08.2009, 13:38   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
llimx:=((80-(a*2))/2)-1;
Если используете вещественное деление для целых типов, то следует написать llimx:=round(((80-(a*2))/2)-1);
puporev вне форума Ответить с цитированием
Старый 05.08.2009, 13:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

А Until для Репита где?
И вообще llimx у тебя байт (целочисленный) а ты к нему деление для плавающих точек применил, пробуй так:
Код:
llimx:=((80-(a*2)) div 2)-1;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2009, 14:29   #4
mmx358
Пользователь
 
Регистрация: 28.06.2009
Сообщений: 84
По умолчанию

Спасибо! Получилось.
mmx358 вне форума Ответить с цитированием
Старый 07.08.2009, 21:27   #5
mmx358
Пользователь
 
Регистрация: 28.06.2009
Сообщений: 84
По умолчанию

а что значит "Ошибка в операторе"?

Код:
if fcnt>0 then
    begin
      fail := true;
	  if down then
	    begin
	      plus:=true;
	      case pos of
	        1 : pos_1(sx,sy);
	        2 : pos_2(sx,sy);
	        3 : pos_3(sx,sy);
	        4 : pos_4(sx,sy);
		  end;
	    end;
	end;	
  else fail := false;
компайлер ставит курсор под букву
Код:
else fail := false;
mmx358 вне форума Ответить с цитированием
Старый 07.08.2009, 21:30   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Перед else нельзя ставить точку с запятой, уберите.
puporev вне форума Ответить с цитированием
Старый 08.08.2009, 14:03   #7
mmx358
Пользователь
 
Регистрация: 28.06.2009
Сообщений: 84
По умолчанию

puporev, спасибо!

У меня еще вот такая штука:
Код:
  
for a:=1 to 24 do 
  begin
     field[a,5]:=1;
     field[a,10]:=1;
  end;  	
for a:=1 to 22 do
   begin
     field[25, a]:=1;
   end;
Код:
field : array [1..25, 1..22] of byte
В первом цикле мне надо заполнить единицей только 5ю и 10ю позиции в каждой строке массива field. Но он заполняет каждую строку полностью.
mmx358 вне форума Ответить с цитированием
Старый 08.08.2009, 14:22   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Я не знаю, что Вы делаете, но у меня все нормально заполняет, вот пример.
Код:
uses crt;
var
field : array [1..25, 1..22] of byte;
a,b:byte;
begin
clrscr;
for a:=1 to 24 do
  begin
     field[a,5]:=1;
     field[a,10]:=1;
  end;  	
for a:=1 to 22 do
   begin
     field[25, a]:=1;
   end;
for a:=1 to 25 do
 begin
  for b:=1 to 22 do
  write(field[a,b]:3);
  writeln;
 end;
readln
end.
puporev вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assignment to FOR-Loop variable zotox Помощь студентам 4 24.03.2009 11:32
ERROR:Illegal indexing mode IgorKr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.12.2008 23:54
Ошибка(C++): error C2041: illegal digit '9' for base '8' TheWanderer Общие вопросы C/C++ 4 02.10.2008 20:11
Only assignment, call . . . RIO Общие вопросы .NET 2 03.05.2008 15:55
Illegal mix of collations VasyaVasin PHP 1 27.12.2007 08:00


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840