Problema de tip tablu Pascal

Rezolvarea problemelor de matematica prin realizarea unor programe.
Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 00:26

Buna ziua la toti ;-)
Va rog foarte mult ajutatima cu aceasta problema in Pascal
Cel ma va ajuta eu il voi remunera
Pur simplu eu am incercat si nu prea mi se primeste
Deci problema e in felul urmator ... e un caz din viata cind aruncam un corp iar traectoria da descrie o parabola
Pai iata eu trebuie sa determin valorile inaltimii in 3 cazuri
1) h1=h2
2)h1>h2
3)h1<h2
Primul caz la mine deja este ... in fisierul atasat este acest program
Dar iata pentru cazurile 2 si 3 va rog frumos foarte mult ajutatima
dati-mi indicatii ce sa fac ce sa modific
eu nu va cer sa-mi scriiti programul apelez la voi la ajutorul vosstru sa obtin ceva indicatii si sa inteleg mai bine cum se procedeaza
Fişiere ataşate
Inalt-traectorie.zip
(522 Octeţi) Descărcat de 97 ori

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 09 Feb 2016, 09:50

Sunt sigur ca cei care vor sa te ajute nu sunt interesati de vreo remuneratie.

Se poate sa ne spui cerinta ceva mai detaliat? Eu am cateva nelamuriri.

1. Cine sunt h1 si h2?
2. Se cere sa se printeze traiectoria corpului din secunda in secunda?

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 15:06

Deci iti multumec tie pentru sinceritate...
Si ok pot sa detaliez cerintele
Deci h1 si h2 sunt inaltimile din fiecare punct al parabolei adica a traectorie
De la inceput avem h1-initial si pe parcurs pina la punctul final h2 - este cel final
Cum am mentionat eu deja am calculat cazul cind inaltimeaa initiala = cu finala
Acuma trebuie sa calculez intre aceste puncte finale cind tot timpu h1>h2 si invers h1<h2
Iata aici eu intmpin dificultati....
Cristian iti multumesc pentru receptivitate
Sper ca ma vei putea ajuta sa obtin ceva indicatiii

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 15:08

Si da cu printarea traectoriei asta tot o sa fie
dar asta mai apoi
acuma am nevoie sa calculez inaltimile intre cele 2 puncte a traectoriei

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 09 Feb 2016, 15:36

Hai sa modelam legea de miscare intai. Un punct are 2 coordonate in plan. Asa ca legea noastra de miscare este definita ca .
Fie M(x,y) un punct de pe traiectorie. Pe Ox avem o miscare uniform rectilinie, iar pe Oy o miscare uniform accelerata (datorita gravitatie).
Conform legilor lui Galilei avem:

unde este viteza initiala pe axa Ox, iar este viteza initiala pe axa Oy.
Ele se afla direct din viteza initiala si unghiul sub care este lansat obiectul.

Am considerat inaltimea initiala 0. Mai departe te joci cum vrei tu.

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 15:55

multumesc Cristian de aceasta sugestie
si da inital h=0 apoi deja capata valori
Din punt de vedere fizic ..... imi este clar
Acuma in program va trebui sa modific cu aceasta formula
in rest mai trebuie sa fac ceva modiificari?
Bine si tot asa va trebuie si pentru cazul h1<h2?

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 09 Feb 2016, 15:58

Nu trebuie sa mai faci nimic. Functia data de mine exprima punctele prin care trece obiectul. Pur si simplu poti printa toate valorile atata timp cat t <= t_final. Nu trebuie sa mai folosesti nici un h1 si h2.
t_final il poti afla din ecuatia . Simplifici cu t si il afli pe t_final.

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 16:23

Cristian inca odata multumesc foarte mult ;-) pentru impicarea ta
Deci ca sa concluzionam
da bine eu timpul final il voi afla din formula ceea ca asta stiu cum se face dar atunci ma abat de la cerinta....
Eu doar trebuia sa calculez valorile pentru inaltimi in cele 2 cazuri

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 09 Feb 2016, 16:45

Cu abordarea pe care ti-am dat-o eu, nu te mai intereseaza cat este h1 sau h2, ci doar cat este h la un anumit moment.
Punctul urmator se poate exprima direct din conditiile initiale si nu ne intereseaza cat este (x_anterior, y_anterior).
In plus, nu sunt sigur de calculul pus de tine in program.

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Problema de tip tablu Pascal

Mesaj de Costea_C » 09 Feb 2016, 20:20

Ok Cristian deci ca sa concluzionam inca odata
deci acel moment despre care ai mentionat este anume ceea ce eu doresc sa callculez h1>h2 da?

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 09 Feb 2016, 20:37

Ok.
M-am mai uitat inca o data pe cod.
N-am analizat cat de corect este faptul ca y1=x*tg(alfa). LE: Aceasta formula este corecta.
Incerc sa descifrez programul.

dx - pas de incrementare pe orizontala
z - timpul pentru x-ul curent.
y1- h datorat vitezei initiale
y2 -h datorat gravitatiei
h - inaltimea reala.

Din dx, noi putem afla cat este dt. Initalizezi t=dt. Buclezi atata timp cat t<t_final. Acutalizarea lui t se face cu t := t+dt;

LE: Dupa ce am aruncat ceva mai mult de 2 minute pe cod, pot spune ca programul initial este corect. Asa ca ramane nedumirirea ce anume vrei sa faci.
y1>y2 reprezinta partea in care obiectul se afla deasupra punctului de lansare.
y1=y2 reprezinta partea in care obiectul cade din nou la acelasi nivel cu punctul de lansare.
y1<y2 are sens doar daca obiectul este aruncat de pe o platforma.

Costea_C
utilizator
utilizator
Mesaje: 7
Membru din: 09 Feb 2016, 00:03
Localitate: Chisinau

Mesaj de Costea_C » 10 Feb 2016, 01:17

Cristian deci uite te rog frumos sa-mi lasi adresa ta de facebook si din partea mea eu oricind am sa te ajut .... Tu meriti din partea cea mai mare multumire te-ai implicat la maxim in problema aceasta a mea , MULTUMESC
si uite tu corect ai mentionat cele 3 cazuri
y1=y2 -- asta deja e facut la mine ...
mie mi-a ramas iata cazul 1 si 3 y1>y2
y1<y2
Iata aceste 2 cazuri trebuie sa le elaborez ....
Dar formula care din legea lui Galilei pai o pot aplica .... Ramine valabila acea formula? Da?

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 10 Feb 2016, 10:53

Abilitatile mele de a scrie cod Pascal au ruginit din cauza faptului ca n-am mai scris cod Pascal de aproape 20 de ani.

Trebuie sa te gandesti ca ai o conditie de oprire. De aici trebuie sa incepi studiul.
Programul prezentat se ocupa deja de ce tu consideri cazurile 1 si 2.
N-as merge pe cazul 3, in schimb daca vrei sa consideri lansarea de pe o platforma, atunci ai putea sa introduci inca o variabila, care sa reprezinte inaltimea initiala.

Totusi, eu inca nu sunt lamurit cu cerinta problemei.
Uite un exemplu care corespunde codului prezentat:
Sa se afiseze coordonatele traiectoriei unui obiect, aruncat la un unghi alfa, cu viteza initiala v0. Afisarea se va face cu un pas dx (pe axa orizontala), pana cand obiectul ajunge inapoi pe pamant.

In general problemele de informatica rezolva probleme concrete care au in spate cerinte concrete si neambigue. Te rog sa incerci sa formulezi cerinta in mod asemanator cu cea formulata de mine mai sus.

Formulele scrise de mine si cele din programul tau sunt echivalente. Am explicat intr-un alt post ce inseamna fiecare in parte. Daca te uiti cu atentie, h este exact diferenta dintre 2 cantitati, generate de 2 conditii diferite (viteza initiala pe axa Oy si gravitatia).

Scrie răspuns