Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Неудача с делением [D7, XP]


Greenchel ©   (2007-06-16 13:41:00) 

Проблема такова, я сейчас пишу программулину для игры, мне в ней надо рассчитывать ресурсы...
В общем проблема в следующем:
в edit1, edit2 и edit3 вводятся целые числа
затем я перевожу строку в число (ни в integer ни в real не помогает) и вычисляю нужные 2 числа по формуле
1) a:= (c-b) div d;
2) x:= (c-b) mod d;

трабл в том, что я объявляю гобальные переменные, считаю, но в итоге выдаётся ошибка [Error] Unit1.pas(221): Operator not applicable to this operand type

какие только типы я не пробовал integer, real :( ничего не помогает
делал strtoint и strtofloat

помогите плиз :(


Greenchel   (2007-06-16 14:38:00) [1]

учусь на ошибках :)


Германн   (2007-06-16 14:34:00) [2]


> Greenchel ©   (16.06.07 14:20) [12]
>
> элементарные знаю, просто где-то ошибку допустил, а найти
> не могу =(

Оч сильно сомневаюсь. Особенно после такого:

> xa:= ((e-a) div (l div 60)) div 60;

Я бы так не делал расчет чего либо в программе для РС.


{RASkov}   (2007-06-16 14:22:00) [3]

> [12] Greenchel ©   (16.06.07 14:20)
> элементарные знаю



> a, b, c, d, e, f, g, k, l, m, n, o: real;
> xa, xb, xc, xd, xe, xf, xg, xk, xl, xm, xn, xo: real;


> a:= strtofloat(edit1.Text);


> xa:= ((e-a)/(l/60)) div 60;
> xb:= ((e-a)/(l/60)) mod 60;


> [Error] Unit1.pas(220): '(' expected but '[' found

НЕ ЗНАЕШЬ! ;)


Greenchel   (2007-06-16 14:20:00) [4]

элементарные знаю, просто где-то ошибку допустил, а найти не могу =(
спасибо, если что, ещё спрошу =)


{RASkov}   (2007-06-16 14:19:00) [5]

> в edit1, edit2 и edit3 вводятся целые числа

Ну и юзай все целые

> a:= strtofloat(edit1.Text);

Замени на
a:=StrToInt(edit1.Text);
и соответственно
xa:= ((e-a) div (l div 60)) div 60;


> [0] Greenchel ©   (16.06.07 13:41)
> я сейчас пишу программулину для игры

Как можно такое писать незная элементарных действий над числами?


{RASkov}   (2007-06-16 14:11:00) [6]

> [9] Greenchel ©   (16.06.07 14:08)

Выбери ченить одно :)
Round
Trunc
;)


Greenchel   (2007-06-16 14:08:00) [7]

[Error] Unit1.pas(220): '(' expected but '[' found


{RASkov}   (2007-06-16 14:03:00) [8]

> xa:= ((e-a) div (l div 60)) div 60;

здесь либо все должны быть Integer

либо так:

xa:= (Round[Trunc](e-a) div (l div 60)) div 60;
где
xa, l : Integer;
e, a : Double;


Greenchel   (2007-06-16 14:01:00) [9]

:( и как же мне тогда делить?

я пробовал делать всё в integer

xa:= ((e-a) div (l div 60)) div 60;

тут по идее целые числа выходят, но всё равно та же самя ошибка...


{RASkov}   (2007-06-16 13:58:00) [10]

> [4] Greenchel ©   (16.06.07 13:48)

Операторы div и mod для целочисленных типов....


Германн   (2007-06-16 13:58:00) [11]


> Greenchel ©   (16.06.07 13:48) [4]

Операторы div и mod применимы толькок целым числам.


Greenchel   (2007-06-16 13:48:00) [12]

var
 Form1: TForm1;
 a, b, c, d, e, f, g, k, l, m, n, o: real;
 xa, xb, xc, xd, xe, xf, xg, xk, xl, xm, xn, xo: real;

implementation

{$R *.dfm}


procedure TForm1.Edit1Change(Sender: TObject);
begin
try
a:= strtofloat(edit1.Text);
except
Edit1.Text:= '0';
MessageBeep(MB_OK);
ShowMessage('Введите верное число');
end;
end;


тоже самое с двумя остальными edit'ами

procedure TForm1.Image5Click(Sender: TObject);
begin
xa:= ((e-a)/(l/60)) div 60;
xb:= ((e-a)/(l/60)) mod 60;
end;


Германн   (2007-06-16 13:46:00) [13]


> трабл в том, что я объявляю гобальные переменные, считаю,
>  но в итоге выдаётся ошибка [Error] Unit1.pas(221): Operator
> not applicable to this operand type
>
> какие только типы я не пробовал integer, real :( ничего
> не помогает
> делал strtoint и strtofloat
>
> помогите плиз :(
>

Чем помочь-то? Верёвку намылить? Или может покажешь реальный код, который не работает?


Greenchel   (2007-06-16 13:46:00) [14]

исходники в смысле?


Desdechado   (2007-06-16 13:44:00) [15]

Тексты проб где?


Наверх

Титульная страница Поиск, карта сайта Написать письмо