Problema Fizica

C/C++ este un limbaj multi-paradigmă de nivel mediu, orientat pe obiecte, folosit pe scară largă în industria software datorită echilibrului dintre viteză şi complexitate. Dacă ai nelămuriri în legătură cu acest limbaj sau vrei să ne înveți ceva chiar tu, intră aici.

Problema Fizica

Postby Bogdan » 26 May 2010, 12:23

V-as ruga daca se poate sa ma ajutati cu cateva indicatii pentru scrierea programului.

Fie o particula ce se misca de-a lungul dreptei verticale x=1 conform ecuatiei: y(t)=3*sin((2*pi/3)*t)
Sa se scrie un program in C al carui output sa fie un fisier ce contine pe cate o coloana: timpul, componentele vitezelor de-a lungul axelor ox si oy, viteza particulei, si componentele acceleratiei pe cele doua axe de coordonate. Considerati 0<t<5 si calculati cel putin 10 valori.

Va multumesc, o zi buna!
0,0p / 0 votes
User avatar
Bogdan
 
Joined: 26 May 2010
Status: 0

Re: Problema Fizica

Postby DarkByte » 26 May 2010, 13:01

Salut, Bogdan. Ti-am mutat topicul, te rog sa fii mai atent unde postezi data viitoare.

Multumesc.
0,0p / 0 votes
User avatar
DarkByte
11011011
 
Joined: 29 Dec 2009
Status: 136

Re: Problema Fizica

Postby Dexter » 26 May 2010, 16:27

Salut Bogdan, uite un mic studiu al problemei.

Fie o particula ce se misca de-a lungul dreptei verticale x=1 ...


Dacă x=1, atunci acceleraţia pe axa OX este zero, iar corpul se deplasează doar pe verticală.

...conform ecuatiei: y(t)=3*sin((2*pi/3)*t)


Funcţia sin este definită pe mulţimea numerelor reale, cu rezultat în intervalul [-1,1].
Cum y(t) = 3 * sin ..., funcţia y(t) va avea ca rezultat valori din intervalul [-3,3].

Perioada funcţiei sin este 2π, iar argumentul funcţiei din problemă este 2π · t/3, ceea ce înseamnă că o oscilaţie completă a corpului durează 3 unităţi de timp (secunde).

Calculul acceleraţiei se realizează calculând derivata funcţiei (la fizică se predau de obicei formulele necesare).

y'(t) = 3 · cos ( 2π ·t/3 ) · (2π ·t/3)' = 3 · cos ( 2π ·t/3 ) · 2π / 3 = 2π · cos ( 2πt /3 )

Implementare:

  1. #include <math.h>
  2.  
  3. double y(double t)
  4. {
  5.     return 3 * sin (2 * M_PI * t / 3);
  6. }
  7.  
  8. double y_acceleration(double t)
  9. {
  10.     return  2 * M_PI * cos(2 * M_PI * t / 3);
  11. }


Restul rezolvării e floare la ureche :D.
0,0p / 0 votes
User avatar
Dexter
Word
 
Joined: 04 Jan 2010
Location: Secret Lab
Status: 44.5

Re: Problema Fizica

Postby Bogdan » 31 May 2010, 07:46

Merci pentru ajutor, am incercat sa o rezolv altfel, sper sa fie rezultatele bune:)
Daca te intereseaza o poti descarca din atasament
0,0p / 0 votes
Attachments
Fizica computationala_Dragan.rar
(8.7 KiB) Downloaded 28 times
User avatar
Bogdan
 
Joined: 26 May 2010
Status: 0

Re: Problema Fizica

Postby Dexter » 31 May 2010, 08:46

Ai testat codul, să vezi dacă funcţionează? Ar fi câteva probleme majore...

Primul lucru care mi-a sărit în ochi ar fi dezorganizarea codului. Pentru scurt timp, am crezut că ai obfuscat codul. Apoi am văzut că nu ai folosit nici vectori, nici for-uri.

Al doilea lucru care mi-a sărit în ochi:
  1. if(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10<0);(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10>5);
  2. printf("Valoarea timpului depaseste intervalul (0;5)!\n");
  3. return 0;


Condiţia din instrucţiunea if este t10<0, celelalte valori fiind ignorate. În plus, instrucţiunea nu are efect, indiferent de valorile t1...t10.
Expresia (t1,t2,t3,t4,t5,t6,t7,t8,t9,t10>5) nu are niciun efect.
Instrucţiunea printf("Valoarea timpului depaseste intervalul (0;5)!\n"); se execută indiferent de datele de intrare.
Instrucţiunea return 0 închide programul, indiferent de datele de intrare.


Problema îţi cerea să cunoşti o parte din bazele limbajului C: if-uri, for-uri, vectori, funcţii, acolade... Trebuie să înveţi nişte noţiuni elementare, altfel nu poţi continua. Eu pot să îţi fac tema, dacă îţi trebuie pentru şcoală şi ai neapărat nevoie, dar asta îţi va da doar puţin timp ca să mai înveţi...
0,0p / 0 votes
User avatar
Dexter
Word
 
Joined: 04 Jan 2010
Location: Secret Lab
Status: 44.5


Return to C / C++

Who is online

Users browsing this forum: No registered users and 0 guests