- Replaced blogja
- A hozzászóláshoz be kell jelentkezni
- 1534 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
de lehet hogy erre gondolt: "g://cpp power operator overloading"
- A hozzászóláshoz be kell jelentkezni
akkor most bonusz kerdes:
double pow ( double base, double exponent );
long double pow ( long double base, long double exponent );
float pow ( float base, float exponent );
double pow ( double base, int exponent );
long double pow ( long double base, int exponent );
ebbol melyik elso argumentum int? :)
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Nem valasz a bonusz kerdesedre, de a type casting csodakra kepes: http://www.cplusplus.com/doc/tutorial/typecasting/
--
ahan nem
- A hozzászóláshoz be kell jelentkezni
function overloading
Olyan pow függvényt definiálsz, amilyet akarsz.
- A hozzászóláshoz be kell jelentkezni
tehat a valasz: nem lehet szabvanyos c++-szal integert hatvanyozni.
awesome...
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
\begin{troll}
Sőt a % jel nem százalékszámolásra való. :-)
\end{troll}
Sok értelme nincs f.k.zni egyik vagy másik nyelvet, mert az egyikben van szabványos könyvtári függvény egy feladatra, a másikban meg nincs. A szabványos C++ (és a C) nyelvben semmilyen hatványozási lehetőség nincs. A matematikai és egyéb függvények a szabványos könyvtárakban találhatóak meg. A C++-nak az egyik előnye, hogy a function overloading segítségével tudsz az eredeti néven saját függvényt definiálni. A fordító az argumentumok típusa alapján eldönti, hogy mikor melyik függvényt akarod meghívni.
De ha zavar, hogy nincs egész hatványozás a C++ szabványos könyvtári függvények között, akkor válassz másik programozási nyelvet a f.k.z.s helyett.
- A hozzászóláshoz be kell jelentkezni
engem csak az zavar, hogy nem mert senki eddig azt mondani, hogy nem nincs, ez ilyen es kesz, hanem kerulgettek a temat meg probaltak terelni :D
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Amikor azt írtam, hogy function overloading, az azt is jelentette, hogy nincs.
Ugyanis, ha a két függvény neve megegyezik, akkor az argumentumaikban eltérésnek kell lenni. Így ha function overloading-gal lehet készíteni pow függvényt int-re, akkor az azt is jelenti, hogy nincs ilyen: pow(int base, int exp).
(Még szóba jöhetne a pow(int base, float/double exp) is, de ennek nem sok értelme van, mert az eredmény mindenképpen float vagy double lesz.)
- A hozzászóláshoz be kell jelentkezni
ok, koszi igy ertem mire utaltal
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Csak nem azt kerdezted, hogy van-e ra barmi nyelvi elem, hanem jott egy ilyen eldontendo "kerdes":
"Most tenyleg nem lehet integer-eket hatvanyozni ebben a csodahighlevel C++-ban, ..."
De lehet. Miert ne lehetne hatvanyozni c++-ban? :) Meg is kaptad a "valaszt": pow
Tenyleg nem ertem miert zavar, hogy nem kaptal valaszt a kerdesre, amit nem tettel fel :)
--
ahan nem
- A hozzászóláshoz be kell jelentkezni
+1, illetve int-ről double-re van automatikus konverzió, szóval ha int paraméterekkel hívod meg, akkor is működni fog.
Ha esetleg kényelmi okból túl akarod terhelni a ^ operátort, figyelj a precedenciára!
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
csak meg eddig nem hatvanyoztam se c-ben se c++-ban es igy furcsa volt elsore, akkor azt hiszem pow lesz belole castolassal
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Az automatikus konverzió azt jelenti, hogy neked nem kell a castolással foglalkoznod. Hívd meg nyugodtan intekkel, például így:
int i;
i=pow(2,16);
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
pow.cpp:10: error: call of overloaded 'pow(int&, int&)' is ambiguous
gcc ezt mondja ra, azert nem ertettem, hogy most mi a hivatalos modja :)
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
#include
#include
int
main ()
{
std::cout << "2^16=" << pow(2,16);
}
Ha ambigous, akkor overloading játszik.
- A hozzászóláshoz be kell jelentkezni
#include "iostream"
#inlcude "cmath"
idézőjel helyett jobb a kisebb és a nagyobb jel. de ez itt nem megy valószínűleg tag-ként kezeli a rendszer.
- A hozzászóláshoz be kell jelentkezni
Igen, kösz, épp visszanéztem :)
- A hozzászóláshoz be kell jelentkezni
< es >
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Akkor te most írtál saját pow(int, int) függvényt is? Nem kell.
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
cmath-os mondta ezt, int a, int b argumentumra :-)
ha csak beleirod a szamot akkor nyilvanvaloan floatnak veszi alapbol
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Bemásolnád azt a programrészletet, ami ezt a hibát adta?
Nekem csont nélkül fordul:
#include <iostream>
#include <cmath>
int main()
{
int b = 2;
int e = 5;
std::cout << pow(b, e) << std::endl;
return 0;
}
- A hozzászóláshoz be kell jelentkezni
> ebbol melyik elso argumentum int? :)
Bármelyik :)
Ha nem tetszik, írj magadnak egyet. Egyszerű, kb ilyesmi:
int ipow( int base, unsigned exp ){
int res;
for(res=1; exp; base*=base,exp>>=1) if(exp&1) res*=base;
return res;
}
- A hozzászóláshoz be kell jelentkezni
nem értitek, és talán ő sem :)
az zavarja hogy a hatványozás máshol annyira alapvető hogy külön operátor van neki
mellesleg ott csak azért annyira fontos mert annak a célterülete a tudományos számítás, c++-nak pedig nem; ennyi erővel lehetne hiányolni a vektorok kölünféle szorvatának hiányát, pl ×,"dot" (annak a billentyűjét most nem is találom), DE a c++ nagy előnye, ha kell akkor lehet létrehozni (ha nem is unicode karakterrel (?) de definenal vagy saját prepocesszoral biztos lehet akár ezt is :) )
- A hozzászóláshoz be kell jelentkezni
Allj, nem minden nyelvnek a celterulete a tudomanyos szamitas, ahol van kulon hatvanyozo operator. Gyakorlatilag a java-tol a ruby-n at a perlig mindenben van, a C-ben... nos, a C-ben nincs. A C++ meg C-vel kezdodik. Viszont a tudomanyos szamitasokat igenylo feladatokat erdekes modon C/C++-ban implementaljak a legtobbszor... Kar, hogy senki nem erezte hianyat eddig egy jo kis hatvanyozo operatornak.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
HPC-nel mindegy, mert ott ugyis double precision van legalabb, vagy valami bignum megoldas
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
... es ez azert indokolja, hogy C-be nem kell hatvanyozo operator, mert... ?
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Met ugyanannyi csinalni ra egy makrot. A Perl ** operatora a C pow() fuggvenyevel van implementalva es belul double-t hasznal.
http://www.perl.com/doc/manual/html/pod/perlop.html#Exponentiation
- A hozzászóláshoz be kell jelentkezni
Viszont mennyivel jobb lenne, ha ez nyelvi funkcio lenne... No mindegy.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Javaban melyik a hatvanyozo operator? http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html
- A hozzászóláshoz be kell jelentkezni
Akkor kevertem, elnezest. Ettol fuggetlen amit mondtam, tartom.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
pow(a,b);
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni