Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu

[es] :: C/C++ programiranje :: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu

[ Pregleda: 3450 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

spirit_face
Bojan Repanovic
Novi Sad

Član broj: 90186
Poruke: 43
*.eunet.yu.

Sajt: www.spirit-face.tk


+1 Profil

icon Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu10.03.2008. u 22:06 - pre 196 meseci
Ovako. Trebaju mi funkcije Round i Trunc, ali ih u math.h nema. Nasao sam da postoji i neka funkcija Fix, ali i za nju mi kaze da ne postoji. Postoji li neki jednostavan algoritam da od realnog broja odsecem deo pre i posle zareza?
Koristim CodeGear C++ 2007.

Hvala.
Mr_Spirit
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu10.03.2008. u 22:27 - pre 196 meseci
Trebalo bi da nabavis neku pristojnu knjigu za C i da malo vise citas help.

Postoji funkcije Trunc i Round samo se zovu malo drugacije: trunc round
Tko leti vrijedi
 
Odgovor na temu

spirit_face
Bojan Repanovic
Novi Sad

Član broj: 90186
Poruke: 43
*.eunet.yu.

Sajt: www.spirit-face.tk


+1 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu10.03.2008. u 22:30 - pre 196 meseci
[BCC32 Error] Geo10.cpp(64): E2268 Call to undefined function 'trunc'

Ne postoji. Citao ja ali ne mogu da nadjem. U kojim bibliotekama? Ja sam ukljucio samo math.h?
Mr_Spirit
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu11.03.2008. u 01:01 - pre 196 meseci
Nisam se skoro igrao sa builderom, ali probaj math.hpp, znam da sam tamo pre nasao nesto sto mi je trebalo a u ostalim math.* headerima ga nije bilo...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu11.03.2008. u 07:13 - pre 196 meseci
BCB6 Help > C Runtime Library Reference
(ovo je jedan od najupotrebljivijih Help sistema koje sam ikada video. preporucujem svakome da ga ima pri ruci)

ceil, ceill

Header File
math.h

Category
Math Routines

Prototype
double ceil(double x);
long double ceill(long double x);

Description
Rounds up.
ceil finds the smallest integer not less than x.
ceill is the long double version; it takes a long double argument and returns a long double result.

Return Value
These functions return the integer found as a double (ceil) or a long double (ceill).


floor, floorl

Header File
math.h

Category
Math Routines

Prototype
double floor(double x);
long double floorl(long double x);

Description
Rounds down.

floor finds the largest integer not greater than x.
floorl is the long double version; it takes a long double argument and returns a long double result.

Return Value
floor returns the integer found as a double. floorl returns the integer found as a long double.

Code:

/* ceil and floor example */
 #include <math.h>
 #include <stdio.h>

 int main(void)
 {
    double number = 123.54;
    double down, up;

    down = floor(number);
    up = ceil(number);

    printf("original number     %5.2lf\n", number);
    printf("number rounded down %5.2lf\n", down);
    printf("number rounded up   %5.2lf\n", up);

    return 0;
 }
 




BCB6 Help > Visual Component Library Reference Help
(opet jedan od najupotrebljivijih Help sistema za VCL koje sam ikada video. preporucujem svakome da ga ima pri ruci a treba mu VCL)

RoundTo

Rounds a floating-point value to a specified digit or power of ten using “Banker’s rounding”.

Unit
Math

Category
Arithmetic routines

typedef Word TRoundToRange;
extern PACKAGE double __fastcall RoundTo(const double AValue, const TRoundToRange ADigit);

Description
Call RoundTo to round AValue to a specified power of ten.
AValue is the value to round.
ADigit indicates the power of ten to which you want AValue rounded. It can be any value from –37 to 37 (inclusive).
RoundTo uses “Banker’s Rounding” to determine how to round values that are exactly midway between the two values that have the desired number of significant digits. This method rounds to an even number in the case that AValue is not nearer to either value.

The following examples illustrate the use of RoundTo:
Expression Value

RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo(1.245, -2) 1.24



Floor
Rounds variables toward negative infinity.

Unit
Math

Category
Arithmetic routines

extern PACKAGE int __fastcall Floor(constExtended X);

Description
Call Floor to obtain the highest integer less than or equal to X. For example:

Floor(-2.8) = -3
Floor(2.8) = 2
Floor(-1.0) = -1
Note: The absolute value of X must be less than MaxInt.



Ceil
Rounds variables up toward positive infinity.

Unit
Math

Category
Arithmetic routines

extern PACKAGE int __fastcall Ceil(constExtended X);

Description
Call Ceil to obtain the lowest integer greater than or equal to X. The absolute value of X must be less than MaxInt. For example:

Ceil(-2.8) = -2
Ceil(2.8) = 3
Ceil(-1.0) = -1

P.S.
Za ovaj VCL deo, treba ti #include <math.hpp>
 
Odgovor na temu

spirit_face
Bojan Repanovic
Novi Sad

Član broj: 90186
Poruke: 43
*.eunet.yu.

Sajt: www.spirit-face.tk


+1 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu11.03.2008. u 14:34 - pre 196 meseci
Extra. To mi je falilo, ali sad imam jos jedan problem.
Ovako: funkcija atan racuna vrednost arkustangensa u radijanima i kada tu vrednost pomnzim sa 180/M_PI dobijem vrednost koja se ne poklapa sa onom koja se dobije na obicnom kalkulatoru (razlika je poprilicna ako su u pitanju neka precizna racunanja probao sam svasta ali ne mogu mnogo da smanjim gresku. Cak sam nasao vrdnost broja pi sa 500 brojeva posle zareza sto je poprilicno smanjilo gresku, ali ne dovoljno.
Evo koda kod kog nastaje problem:

if (y1 > y2 && x1 > x2){
pom=dy/dx;
v=atan(pom);//*180/PI;
//v2=RadToDeg(v); //Ova funkcija ne postoji, ne znam koju biblioteku da ukljucim za nju
}
//v = atan(dy / dx);
if (y1 > y2 && x1 < x2)
v = ((atan(dx / dy))*(180/PI)) + 90;
if (y1 < y2 && x1 < x2)
v = atan(dy / dx)*180/PI + 180;
if (y1 < y2 && x1 > x2)
v = atan(dx / dy)*180/PI + 270;


resenje atan na digitronu od broja 0,37196276427895235089933733038814 je 20,403326914577038643463835170027
dok atan u bilderu daje: 20,4666900 sto mi je za ovaj proble krajnje nepodnosljivo.
Mr_Spirit
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu11.03.2008. u 15:25 - pre 196 meseci
Kog tipa su ti pom, dx, dy, v i sl ?

Pokusaj sa sto preciznijim tipovima (double ili long double). Shodno tome pogledaj koje jos atan() postoje... Slucajno znam da postoji i atanl() za long double.

Dalje (ovo sad lupam napamet, bez adekvatnog znanja), probaj menja li nesto kada izraze tipa:
180/PI + 180;
zameniš sa:
180./PI + 180.;

Takodje, casting moze ponekad pomoci, ali to moras sam isprobati.


 
Odgovor na temu

[es] :: C/C++ programiranje :: Trebaju mi funkcije za rad sa realnim brojevima u Borland C++ Builderu

[ Pregleda: 3450 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.