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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2011, 12:19   #1
Arden Virth
Новичок
Джуниор
 
Регистрация: 17.10.2011
Сообщений: 2
По умолчанию Delphi динамические переменные

Вот такая задачка по динамическим переменным из учебника. Не могу понять - где ошибка.

procedure TForm1.Button1Click(Sender: TObject);
type
PInteger=^Integer;

var

p1,p2,p3: ^Integer; // указатели на переменные типа integer

begin

New(p1);
New(p2);
New(p3);
p1:= 5;
р2:= 3;
р3 := р1 + р2;
ShowMessage('Сумма чисел равна ' + IntToStr(р3));

Dispose(p1);
Dispose(р2);
Dispose(р3);

end;

end.



[Error] Unit1.pas(41): Incompatible types: 'Integer' and 'Pointer'
[Error] Unit1.pas(42): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(43): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(43): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(44): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(49): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(50): Illegal character in input file: 'р' ($F0)
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Arden Virth вне форума Ответить с цитированием
Старый 17.10.2011, 14:44   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Не могу понять - где ошибка.
Не нравится компилятору переменная р. Заменил на другую и все работает.
Код:
type
PInteger=^Integer;

var

q1,q2,q3:PInteger; // указатели на переменные типа integer

begin

New(q1);
New(q2);
New(q3);
q2^:= 3;
q1^:=5;
q3^:=q1^ + q2^;
ShowMessage('Сумма чисел равна ' + IntToStr(q3^));

Dispose(q1);
Dispose(q2);
Dispose(q3);


end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 17.10.2011, 15:45   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Не нравится компилятору переменная р. Заменил на другую и все работает.
да при чём здесь p ?!
Где "домик" после имени переменной?! Разумеется, он pointer не может присвоить Integer.
надо так:
Код:
p1^:= 5;
р2^:= 3;
р3^ := р1^ + р2^;

ДОБАВЛЕНО

ан нет, имя переменной тоже при чём...
согласно этому:
Цитата:
[Error] Unit1.pas(42): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(43): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(43): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(44): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(49): Illegal character in input file: 'р' ($F0)
[Error] Unit1.pas(50): Illegal character in input file: 'р' ($F0)
в строчках 42-50 вместо латинской P используется русская Р (эр)

Последний раз редактировалось Serge_Bliznykov; 17.10.2011 в 15:49.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические переменные(delphi) sergi Помощь студентам 2 12.04.2011 18:19
Delphi 7; Динамические переменные + вектор + строки. iReqyz Помощь студентам 2 29.03.2011 11:21
Динамические переменные Likan15 Помощь студентам 1 24.05.2010 13:15
Динамические переменные. Delphi svobodys Помощь студентам 0 10.05.2009 16:06