Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

Неудача с делением   Найти похожие ветки 

 
Greenchel ©   (2007-06-16 13:41) [0]

Проблема такова, я сейчас пишу программулину для игры, мне в ней надо рассчитывать ресурсы...
В общем проблема в следующем:
в 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

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


 
Desdechado ©   (2007-06-16 13:44) [1]

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


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


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

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


 
Greenchel ©   (2007-06-16 13:46) [3]

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


 
Greenchel ©   (2007-06-16 13:48) [4]

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;


 
{RASkov} ©   (2007-06-16 13:58) [5]

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

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


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


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

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


 
Greenchel ©   (2007-06-16 14:01) [7]

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

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

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

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


 
{RASkov} ©   (2007-06-16 14:03) [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:08) [9]

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


 
{RASkov} ©   (2007-06-16 14:11) [10]

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

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


 
{RASkov} ©   (2007-06-16 14:19) [11]

> в 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)
> я сейчас пишу программулину для игры

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


 
Greenchel ©   (2007-06-16 14:20) [12]

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


 
{RASkov} ©   (2007-06-16 14:22) [13]

> [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

НЕ ЗНАЕШЬ! ;)


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


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

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

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

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


 
Greenchel ©   (2007-06-16 14:38) [15]

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



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
8-1161605233
AlHAkim
2006-10-23 16:07
2007.07.08
Непонятки с влиянием Canvas.Pen.Width на скорость прорисовки


15-1181286784
Andy BitOff
2007-06-08 11:13
2007.07.08
Две недели в Анапе.


15-1181312404
DelphiLexx
2007-06-08 18:20
2007.07.08
XML и программист Delphi


15-1180739061
Kostafey
2007-06-02 03:04
2007.07.08
С днем рождения ! 2 июня


1-1178609277
DelphiLexx
2007-05-08 11:27
2007.07.08
Как в режиме отладки посмотреть поле Record записи