PDA

View Full Version : c++ Formula x grandezze fisiche e viceversa


okay
12-08-2005, 09:14
ciao

la formula del moto uniforme è:
S = Vt da cui V =S/t e t = S/V

il quesito principale è sotto



dovrei riuscire a sapere dato un tempo t e sapendo la lunghezza (spazio) del percorso a che velocità andavo e, viceversa conoscendo la lunghezza e la velocità in quanto tempo ho impiegato il percorso.

come alle elementari quello che sò di giusto e tutto mi torna è:
se vado a 500 km in 5h a che velocità andavo?
V=500/5 = 100 km/h
vicevera
se ho percorso 500 km a velocità 100 quanto tempo ho impiegato?
T=500/V = 5h

okay questa è la conferma della formula

ma mi impippo nel calcolare questo (se mi aiutate)

quesito:

ho un circuito lungo 4.182 km e faccio un giro in 1.51 (1 minuto e 51 secondi)
a quanta velocità andavo?

i miei calcoli sono:
V=(4.182 *1000)/((3600*1)+(60*51))
V*=(V*1000)/2
V=252.48 kmh

mi hanno detto che è errato ma non mi hanno detto perchè mi hanno detto che è troppa la velocità.

Secondo voi come si procede per il quesito sopra dei miei calcoli non sono proprio sicuro se sono giusti

ciao

Ziosilvio
12-08-2005, 09:31
quesito:

ho un circuito lungo 4.182 km e faccio un giro in 1.51 (1 minuto e 51 secondi)
a quanta velocità andavo?

i miei calcoli sono:
V=(4.182 *1000)/((3600*1)+(60*51))
V*=(V*1000)/2
V=252.48 kmh

mi hanno detto che è errato ma non mi hanno detto perchè mi hanno detto che è troppa la velocità.
In un'ora ci sono 60 minuti e 3600 secondi, non il contrario.

Se calcoli la velocità in metri al secondo, l'espressione dovrebbe essere:
V = (4.182*1000) / (1*60 + 51)
A questo punto converti in chilometri orari, che corrisponde a moltiplicare per 3.6.

okay
12-08-2005, 09:58
In un'ora ci sono 60 minuti e 3600 secondi, non il contrario.

Se calcoli la velocità in metri al secondo, l'espressione dovrebbe essere:
V = (4.182*1000) / (1*60 + 51)
A questo punto converti in chilometri orari, che corrisponde a moltiplicare per 3.6.

bhè grazie..........

V=(4.182*1000)/(60*1+51)*3.6
135.62
dovrebbe essere corretto ora

invece per il contrario?

intanto ci provo

okay
12-08-2005, 10:17
allora per il contrario cioè trovare il tempo
la formula è:
t=(4182/135.62)*3.6
il risultato è espresso in secondi che è = 111.01 secondi
che corrisponde infatti a 1.51

perfetto!

Fenomeno85
12-08-2005, 10:38
potresti anche fare una cosa migliore visualizzando hh:mm:ss :) dato che nessuno ti dirà 1.51 ore :D


~§~ Sempre E Solo Lei ~§~

okay
12-08-2005, 11:02
grazie anche a te ho dovuto fare ancora meglio ho espresso il tutto in


//Tempo
txtHelper.SetForegroundColor( D3DXCOLOR( 0.0f, 1.0f, 0.0f, 1.0f ) );//Verde
wsprintf(str, L"AI by okay -- Day %d Time %0.2d:%0.2d:%0.2d %0.1d:%0.2d:%0.3d ", dwGiorni, dwOre, dwMinuti, dwSecondi, dwDecimi, dwCentesimi, dwMillesimi);
txtHelper.DrawTextLine(str);

cmq per i tempi sul giro mi hanno passato i dati di Estoril e pare (non sono ferrato in materia di moto) che i tempi sono espressi in min, sec e millesimi tipo:
DATI ESTORIL

NUMERO PILOTI:20
----------
PROVE LIBERE VENERDI MATTINA:

BIAGGI:Compie 11 giri

1- 2.38.374
2- 1.59.337
3- 3.22.592
4- 12.07.445
5- 1.56.488
6- 1.54.388
7- 1.49.548
8- 1.59.736
9- 1.46.482
10- 1.43.714
11- 1.49.287

ho chiesto il perchè di questo dato 12.07.445 e mi hanno detto che è perchè si è fermato ai box per varie cose ecc,ecc.

cmq grazie

ci sentiamo poi

p.s. per convertire da secondi ho fatto così (se può essere utile a qualcuno)

//test secondi
int sec=111;
int m=0;
int s=0;
while(sec>0){
sec-=60;
if(sec>-1){
m++;
s=sec;
}
}

ciao

Fenomeno85
12-08-2005, 11:06
è dura vedere un giro di un ora :D ... cmq per convertire è meglio usare mod fai prima e meno calcoli :) ... - calcoli + ottimizzazione :D

~§~ Sempre E Solo Lei ~§~

okay
12-08-2005, 11:11
è dura vedere un giro di un ora :D ... cmq per convertire è meglio usare mod fai prima e meno calcoli :) ... - calcoli + ottimizzazione :D

~§~ Sempre E Solo Lei ~§~


infatti lo faccio:

//tempo
dwSecondi = (timeGetTime() - m_dwStartT) / 1000; //secondi

if(dwSecondi>0){
dwDecimi = (timeGetTime() - dwSecondi)% 10; //decimi di secondo
dwCentesimi = (timeGetTime() - dwDecimi) % 100; //centesimi di secondo
dwMillesimi = (timeGetTime() - dwCentesimi) % 1000; //millesimi di secondo
}

if (dwMillesimi>=1000)
dwMillesimi=0;

if (dwCentesimi>=100)
dwCentesimi=0;

if (dwDecimi>=10)
dwDecimi=0;



... ma intendi di usarlo anche per la conversione da sec totali a min e secondi invece di usare il cilco while?

Fenomeno85
12-08-2005, 12:44
infatti lo faccio:

//tempo
dwSecondi = (timeGetTime() - m_dwStartT) / 1000; //secondi

if(dwSecondi>0){
dwDecimi = (timeGetTime() - dwSecondi)% 10; //decimi di secondo
dwCentesimi = (timeGetTime() - dwDecimi) % 100; //centesimi di secondo
dwMillesimi = (timeGetTime() - dwCentesimi) % 1000; //millesimi di secondo
}

if (dwMillesimi>=1000)
dwMillesimi=0;

if (dwCentesimi>=100)
dwCentesimi=0;

if (dwDecimi>=10)
dwDecimi=0;



... ma intendi di usarlo anche per la conversione da sec totali a min e secondi invece di usare il cilco while?

si era proprio quello di eliminare il ciclo while :)

~§~ Sempre E Solo Lei ~§~

okay
12-08-2005, 13:53
da quello che ho postato ho tolto decimi e centesimi in quanto con i millesimi si ottiene tutto

un'ultima cosa per questo 3d

conosci o conoscete un sito dove sono documentate queste formule?
che non siano scritte in maniera scientifica ma per esmpio come l'ho scritta io.

per qualsiasi cosa in fisica

per es.: t = S/V
oppure spazio di frenatura
tempo di reazione
gittate proiettili
aderenze ecc,ecc

insomma un sito dove spieghino chiaro queste formule scritte da programmer per sviluppo ecc, ecc

ciao

Fenomeno85
12-08-2005, 13:58
da quello che ho postato ho tolto decimi e centesimi in quanto con i millesimi si ottiene tutto

un'ultima cosa per questo 3d

conosci o conoscete un sito dove sono documentate queste formule?
che non siano scritte in maniera scientifica ma per esmpio come l'ho scritta io.

per qualsiasi cosa in fisica

per es.: t = S/V
oppure spazio di frenatura
tempo di reazione
gittate proiettili
aderenze ecc,ecc

insomma un sito dove spieghino chiaro queste formule scritte da programmer per sviluppo ecc, ecc

ciao

ti devi semplicemente guardare la formula fisica e riscriverla nel linguaggio che vuoi :)

~§~ Sempre E Solo Lei ~§~

okay
12-08-2005, 14:47
un'ultima cosa

adesso parlo di prg

diciamo che il circuito non è in km ma uso dei vertici per la lunghezza mentreil tempo è lo stasso del cronometro.
Ora penso di fare le conversioni.

percorso=4.182
V=(4.182*1000)/(60*1+51)*3.6
devo convertire 4.182 e il 1000 che sono i metri per il mio modello e sistema fisico

dato che nella pista non uso i metri o km ma uso la lunghezza di un Path di vertici.

Insomma il mio circuito è lungo:

float TotPath=0.0f;
for(int i=0; i<NumVertex; i++){
TotPath+=Path[i].Length;
}

TotPath è il totale dei segmenti del circuito

per farti capire è una spline (per le prove che sto facendo è costituita da 13 vertici). Ogni segmento o vettore ha una sua lunghezza. il totale dei 13 segmenti o vettori è TotPath che potrebbe simulare i km totali ma per i metri come faccio?? mi manca la misura dei metri da sapere e poi potrei applicare la formula sopra.