forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Криво щитает о_О (http://forum.boolean.name/showthread.php?t=7944)

Doctor Drive 08.03.2009 20:00

Криво щитает о_О
 
PHP код:

var gtcok, exit, backcommand;
m1m2m3c1c2c3cfcgsiimwimhnwnhinteger;
coefwcoefhreal;
nsstring;


begin
imw 
:= 240;
imh := 320;
coefw := imw/imh;
coefh := imh/imw;
ok := createcommand('Ok',CM_OK,1);
showform;
m1 := formaddchoice('Relation'CH_EXCLUSIVE);

c1 := choiceappendstring(m1'Relate to width'); 
c2 := choiceappendstring(m1'Relate to height'); 
m2 := formaddtextfield('width'integertostring(imw), 4TF_NUMERIC);
m3 := formaddtextfield('height'integertostring(imh), 4TF_NUMERIC);

addcommand(ok);
repeat
cgsi 
:= choicegetselectedindex(m1);
if 
cgsi c1 then begin
    nw 
:= stringtointeger(formgettext(m2));
    
nh := trunc(stringtointeger(formgettext(m2))/coefw);
    
ns := integertostring(nw)+'x'+integertostring(nh);
end;

if 
cgsi c2 then begin
    nh 
:= stringtointeger(formgettext(m3));
    
nw := trunc(stringtointeger(formgettext(m3))/coefh);
    
ns := integertostring(nw)+'x'+integertostring(nh);
end;

cf := formaddstring(ns);
delay(2000);
formremove(cf);
until getclickedcommand ok;
removecommand(ok);

end

карочи посмотрите как оно щитает с floating point и как с fixed point, и посмотрите что обычный калькулятор кажет. С floating point ваще бред, и fixed point нифига не показывает. а если imw и imh одинаковые (например 40 и 40) то щитает с floating и fixed point правильно....

odd 10.03.2009 02:14

Ответ: Криво щитает о_О
 
Сделай imw и imh типа real. А то он их сначала считает как целые, а потом целый результат вычислений переводит в вещественный формат. Естественно, точность уже была потеряна ещё на этапе деления двух целых чисел. Это не глюк и не баг. Так и должно быть, просто нужно знать как работает приведение типов.

Doctor Drive 10.03.2009 15:58

Ответ: Криво щитает о_О
 
все заработало! СПС, odd!

Doctor Drive 14.03.2009 01:01

Ответ: Криво щитает о_О
 
Снова трабл, не хотел создавать другую тему, вот и напишу тут...

Кароче в строке 55 пишет error, unexpected token '('


PHP код:

unit Anim;

interface
procedure new;

implementation

uses FileSystem
gifparsejsr75iimloadjsr75;

procedure new;
var 
ssavestring;
addaddnextformfinishini2integer;
okcommand;
frame: array[1..50of image;
delay: array[1..50of integer;

begin
ok 
:= createcommand('Ok'CM_OK1);
repeat
:= FileSystem.foldselect;
showform;
:= 1;

    
frame[i] := imloadjsr75.loadimage(s);
    
form := formaddtextfield('Pause','100'5,TF_NUMERIC);
    
addcommand(ok);
    
repeat until getclickedcommand ok;
    
removecommand(ok);
    
delay[i] := stringtointeger(formgettext(form));
    
clearform;

    
showmenu('Add Next?',CH_IMPLICIT);
    
addnext := menuappendstring('Add Next image');
    
finish := menuappendstring('Finish animation');
    
addcommand(ok);
    
repeat until getclickedcommand ok;
    
removecommand(ok);
until menugetselectedindex finish;

parse.line(s'/');
for 
i2 := 0 to parse.len-do begin
    save 
:= save '/' parse.get(i2);
    
end;
    
showform;
    
gif.init(50);
    
for 
:= 1 to i do begin
    add 
:= gif.add_frame(frame[n]);
    
gif.set_delay(delay[n]);
end;

    
finish := gif.close(save+'/anim.gif');
    if 
finish 1 then showAlert('Done!''Animation created!'loadimage('/sav.png'), ALERT_INFO);
    else 
showAlert('Error!''An error has occured!'loadimage('/err.png'), ALERT_ERROR);
    
delay(3000); //!!! ВОТ СТРОКА 55 !!!
end;

initialization
end



impersonalis 14.03.2009 01:26

Ответ: Криво щитает о_О
 
endif?

Doctor Drive 14.03.2009 01:43

Ответ: Криво щитает о_О
 
impersonalis, не понимаю...
--------------------------------
мне ктото поможет?!

Doctor Drive 15.03.2009 02:42

Ответ: Криво щитает о_О
 
карочи... уже не надо. я по-другому сделал :)

ABTOMAT 15.03.2009 03:10

Ответ: Криво щитает о_О
 
Цитата:

Кароче в строке 55 пишет error, unexpected token '('
Может, ему не нравится что аргумент функции-void пиется в скобках?
Просто например в QBasic если для Sub'а напишешь в скобках то будет на них ругаться и если напишешь для Function'а то будет ругаться на их отсутствие. Возможно, здесь природа ошибки та же?
Хотя не берусь говорить точно ввиду не пользования мною Мидлет Паскаля
Цитата:

карочи... уже не надо. я по-другому сделал
Всегда иди до конца ;) Рано или поздно пробелы в знаниях всплывут

Dj_Alex 28.03.2009 23:24

работая с с числами real с floating point, озадачился траблой неправильного счета на телефоне Нокия 6630. на Sj boy считает верно. даж такие операции как деление и умножение корявит.
Fixed point и на эмуле криво.

методом тыка обнаружил что при
a:=b[1];
присваивание происходит верно, но когда
a:=(b[1]);
результат получается совсем другой. и это на аппарате.
на эмуле без разницы.
может кто пояснить?

ViNT 28.03.2009 23:55

Ответ: Криво щитает о_О
 
Цитата:

Сообщение от Dj_Alex (Сообщение 102067)
методом тыка обнаружил что при
a:=b[1];
присваивание происходит верно, но когда
a:=(b[1]);
результат получается совсем другой. и это на аппарате.
на эмуле без разницы.
может кто пояснить?

Очень странно, код в обоих случаях генерируется одинаковый, поэтому разницы быть не должно.

Dj_Alex 28.03.2009 23:59

Ответ: Криво щитает о_О
 
разница есть и при том непонятная. число получается больше.
тогда вопрос: что значит второй параметр функции stringtoreal? т.к. числа берутся из файла, мб ето влияет. прямой вывод дает правильное значение, но результаты операций с ними - неправильный

Dj_Alex 29.03.2009 11:37

Ответ: Криво щитает о_О
 
мда sin оказывается больше 1. так вот телефон считает.
запуская несколько раз мидлет, выдавало разный результат. один раз даж правильный. не знаю в чем трабла :SOS:

Dj_Alex 29.03.2009 18:33

Ответ: Криво щитает о_О
 
блин че делать. прогу пишу для получения инфы по GPS трекам, а там точность вычислений хорошая нужна. на эмуле считает норм, а на теле каждый раз разное. пробовал либу с double, считает хорошо, но нет arcos, который оч. нужен. да и неудобно через индексы вычисления делать.

Phantom 29.03.2009 21:33

Ответ: Криво щитает о_О
 
Я помнится на PHP какой-то скрипт написал, там какая-то незатейливая операция с числами была и тоже была ошибка непонятная. Каждый раз выдавало разное число О_о Исходников не осталось, но я это обсуждал параллельно в аське с чуваком. Логи где-то остались. Я так тогда и не понял, что за хрень =)

Dj_Alex 29.03.2009 23:06

Ответ: Криво щитает о_О
 
тестил такой код
Код:

program NewProject2121;
var a,b,c:real;
begin
a:=0.523;
b:=0.3214;
b:=a+b;
c:=acos(b);
drawText(''+c, 0, 0);
c:=acos(b);
drawText(''+c, 0, 20);
c:=acos(b);
drawText(''+c, 0, 40);
c:=acos(b);
drawText(''+c, 0, 60);
c:=acos(b);
drawText(''+c, 0, 80);
c:=acos(b);
drawText(''+c, 0, 100);
repaint;       
delay(200000);
end.

на эмуле


на теле







и как ето понимать?

Dj_Alex 30.03.2009 12:40

Ответ: Криво щитает о_О
 
тестил на нескольких разных телах. на другой нокии и на сименсе считает криво. на сони ериксоне нормально.


Часовой пояс GMT +4, время: 01:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot