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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 13: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 в 13:48. Причина: Надумал
mmx358 вне форума Ответить с цитированием
Старый 05.08.2009, 14: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, 14:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

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

Спасибо! Получилось.
mmx358 вне форума Ответить с цитированием
Старый 07.08.2009, 22: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, 22:30   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Перед else нельзя ставить точку с запятой, уберите.
puporev вне форума Ответить с цитированием
Старый 08.08.2009, 15: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, 15: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 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 21:11
Only assignment, call . . . RIO Общие вопросы .NET 2 03.05.2008 16:55
Illegal mix of collations VasyaVasin PHP 1 27.12.2007 08:00