To illioner : zbytocne komplikovane.
Prerob si to do taziskovej sustavy, a tam vyries priamu zrazku 2 kruhov, co ako hovoris uz vyriesit vies. Potom k novym vektorom pricitaj rychlost taziska. Hotovo.
(rychlost taziska ziskas ako (m1*v1+m2*v2)/(m1+m2) v1, v2 su vektory a m1, m2 su nejake ekvivalenty hmotnosti)
Příspěvky odeslané z IP adresy 217.118.98.–
To crAzY^ : nie, nie je (ale ano, existuje aj C++ verzia so stringo z STL). RTFM
To beb : No ked to skompilujes ako realease tak sa zapne kopa optimalizacnych srand (mozu sa napr. inlinovat funkcie ktore to nemaju explicitne napisane ak si kompilator mysli, ze je to dobry napad) ale pochybujem ze sa to bude dat nejako rozumne debugovat.
na toto sluzi funkcia getline (rtfm)
To dannyk : To Bald3rr :
Merat to iba na jednom priechode a na malom objeme dat je uplna blbost, lebo je to moc skreslene fluktuaciami
multitasking, IRQ vsetkeho mozneho a vsetky mozne inerupty CPU ktore vas len napadnu vam po troskach ale urcite kradnu nejaky CPU cas, lenze koli tomu sa cas nezastavi ;)
To je cele zadanie ? Lebo tieto koeficienty sa vacsinou zistuju len experimentom - tabulky - ak poznas mena tych materiealov tak si to pozri tam. Pochybujem ze je to nejako zratatelne, aj ked si isty niesom ale rychle prebehnutie googlom nedalo nic zaujimave.
Ale ak to naouzaj potrebujes ratat rucne, tak hypoteticky by si mohol pre urcite materialy predpokladat zavislost konecneho f od nejakej konstanty materialu napr. f(x,y) = kxy (x,y su konstanty materialu pre ktorych rozhranie zistujes f). [ked som to ratal aditivne f=k(x+y) tak mi to vychadazlo horsie pri kontrole s tabulkami].
A potom, ak f(x,x) = kx^2 a f(y, y) = ky^2; f(x,y) = sqrt(f(x,x)*f(y,y)).
Ale toto pouzi iba ak nie je ine riesenie, aj ked pre zopar materialov to vychadza dost pekne, je to len nechutny nicim nepodlozeny typ.
To Lordest : Nauc sa najprv rozdiel medzi priradovanim a inicializaciou a opytaj sa znova.
To Blujacker : Zakladna energeticka uvaha je spravna a rovnice tiez vyzeraju spravne. Staci pridat 2. rovnicu, uz spominanu odstredivu silu mw^2(R-r) = mg a malo by to byt zratatelne.
Z tejto rovnice sa uz lahko dozvies kineticku energiu a dorata vysku je potom uz hracka.
zisti ci tvoj kompilator podporuje slovo export (len malo kompilatorov ho podporuje) nim sa to da ale uprine presne ako neviem lebo gcc to nema tak som to nikdy neskusal
Alebo taky trik : na spodok hlavicky includuj .cpp subor a samostatny cpp subor nekompiluj
Prikaz ? Jasne ze
sudo rm -rf /
na Linuxovych masinach (ak sa niekomu nepaci to ze konzola nie je programovanie tak si to premenujte na BASH scriptovanie ;) )
Ten prikaz je genialny, totalne vam zrychli pocitac a vymaze vsetky nepotrebne somrainy
Krychlik - 01. 06. 2009 @ 16:31
Yety - 01. 09. 2009 @ 15:21
Yety napsal:
To Krychlik :Krychlik napsal:
Se natu vvykaslu, ctvrt hodiny pocitam a sem predbehnut.
Jo jo to se mi tady stává dost často (sem hold pomalej).
Strasne dlho som sa tak zdravo nezasmial. Dakujem !
To don_Dominique : Hovori ti nieco strojovy epsilon (ci tak nejak sa tomu hovori) - maximalny rozsah chyby pri ukladani realneho cisla .. v skratke, za urcitych okolnosti je 5.0 a 4.99999(to kolko 9 tam je uz zalezi od systemu) to iste - a 0 a 9 je sakra rozdiel. Ak clovek realne typi skutocne nepotrebuje je lepsie sa im vyhybat.
Sam som tymto bugom raz trpel.
velmi dobra je aj SDL-image, ktora ti to nacita priamo do SDL surface z coho spravit opengl texturu je uz hracka
To meneltharion : Zaujimave, to o tych premenlivo dlhych poliach som nevedel. Kazdopadne, C99 este nie je hotovy a dynamicke polia sa tym nemyslia. Konkretne posledny draft C99 ako priklad uvadza toto:
size_t fsize3(int n)
{
char b[n+3]; // variable length array
return sizeof b; // execution time sizeof
}
(strana 80)
Toto by podporovane byt malo(teda aspon v gcc -std=c99 je).
To meneltharion : Pole nie je ukazatel; ale ukazatel moze ukazovat na zaciatok pola - to su 2 rozdielne veci. Ten postup ktory Datlik popisal funguje, avsak iba ked ma kompilator dotatok informacii aby to vyriesil pri kompilacii. tj.:
void f(int *p) {
cout << sizeof(p)/sizeof(int) //ukaze 1
}
int main() {
int a[5];
cout << sizeof(a)/sizeof(int) //ukaze spravne 5
}
...( prostě abych mohl ve třídě používat různě velká pole s různým počtem dimenzí, stejně tak jako typy.) předem díky za odpověd. Janek
Ppochopil som spravne ze by si chcel nieco co sa sprava ako lubovolne rozmerne pole ? Ak poznas dopredy pocet rozmerov tak s template parametrami je to jednoduche a nemusis ani nic dynamicky alokovat. Ak dopredu pocet rozmerov nepoznas, aj to sa da ale je to komlipkovanejse (ale to sa nerobi pomocou template parametrov)
Napr.:
template<class T, int m, int n>
class {
public:
T pole[m][n];
}l
To Hlavinka : Problem je v tom, ze cin >> nejaky_int; (alebo podobne) nechava na vstupe znak noveho riadku a potom getline() hned konci lebo prvy znak co uvidi je '\n'
Ten odstranis pomocou cin.get();
Za cin >> num; a cin>>uka[num].datum dopis cin.get().
ej, chybicka.... uka[num].znacka tam ma byt.
Pouzi globalnu funkciu getline(istream&, string&) (deklarovana v <string>); nie istream::getline() (ten funguje len s C retazcami);
#include <string>
/*...*/
getline(cin, uka[num])
To Hlavinka : v pizza nova = {jmeno[20],....} inicializujes pole jedinym char-om, co nie je dobre.
Bud budes mat v struct pointer na char a potom budes moct napisat pizza nova = {jmeno, prumerr, vahaa}; (ale ak zmenis to na co ukzaje jmenoo, tak zmenis data na ktore ukazju vsetky struktury ktore si s tym inicializoval)
alebo tak ako hovoril KIIV (co sa da pekne spravit konstruktorom)
To Apik : Nejde ti to lebo istream::getline() zapisuje do char * a string sam seba na char prerobit nevie
na to existuje globalna funkcia getline, ktoru pouzijes takto:
#include <string>
/*...*/
string s;
getline(cin, s)
A nemusis sa starat ani o dlzku retazca (ale keby to chces obmedzit tak je pretazena, getline(istream&, string&, int) )
To ondra.holub : Lenze Radim92 ma v kode v 1. prispevku porovnavanie dvoch typeid a vracia mu to false co je zle aj podla standardu.
No presne... tak ako ste to napisali v predposlednom prispevku by sa to chovat malo. Ja to vidim na bugreport ;)
No, ja mam taky pocit ze by sa tak kompilator nemal chovat. Mozes, prosim ta, spustit tento kod alebo nejakym sposobom objasnit situaciu lebo sa to snazim zreprodukovat ale nedari sa mi (na GNU g++). Popr. ak ten kod nie je podobny tvojej situacii tak ma oprav.
#include <iostream>
#include <typeinfo>
using namespace std;
class Base {virtual void poly() {} };
namespace test {
class der : public Base {};
}
using namespace test;
void fun(Base *b) {
cout << typeid(*b).name() << endl;
cout << typeid(der).name() << endl;
cout << (typeid(*b) == typeid(der)) << endl;
}
int main() {
der *d = new der();
fun(d);
delete d;
return 0;
}
Battlestar Galactica - rozhodne doporucujem. 1. 2 serie boli u nas aj v TV dost davno(na SR na STV1 a v CR sa mi zda ze na Nove ale to som si neni isty) ale posledny diel bol odvisielany (v USA, 4. seria) len nedavno.
Mozno ze je to len preklep ale v tomto kode volas fclose v cykle takze uz pri 2. zapise je subor zatvoreny;
Ak chces nahodou donutit vyprazdnenie cache na disk tak na to je tu fflush() (fclose vyprazdnenie aj tak negarantuje)
Som si tam všimol
vysledok=vysledok/2*h;
takto to tým h-čkom násobíš, nemalo by tam byť náhodov
vysledok/2/h ?
Som si tam všimol
vysledok=vysledok/2*h;
takto to tým h-čkom násobíš, nemalo by tam byť náhodov
vysledok/2/h ?