Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
ВнизНеудача с делением Найти похожие ветки
← →
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]:( и как же мне тогда делить?
я пробовал делать всё в integerxa:= ((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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c