Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AstronomieBiofizicaBiologieBotanicaCartiChimieCopii
Educatie civicaFabule ghicitoriFizicaGramaticaJocLiteratura romanaLogica
MatematicaPoeziiPsihologie psihiatrieSociologie


MEDIU DE PROGRAMARE EDUCATIONAL: PYTHON

Fizica



+ Font mai mare | - Font mai mic



Mediu de programare educational: Python

Python este un limbaj de programare cu scop general, interpretativ, orientat-obiect, interactiv. El a fost scris initial de catre Guido van Rossum ca o componenta a sistemului de operare Amoeba dezvoltat la Centrul National de Matematica si Stiinta Calculatoarelor din Amsterdam, fiind permanent imbunatatit si, ulterior, lansat pe Internet via FTP. Python poate fi folosit in crearea unor interfete pentru aplicatii scrise in alte limbaje, a unor interfete grafice, in administrare de sistem, conversii de fisiere dintr-un format in altul, dezvoltare de produse, etc.



Dintre calitatile sale amintim numai cateva: portabilitate comparativa cu cea a limbajului Java - ruleaza pe UNIX, Windows, DOS, OS/2, Macintosh, Amiga; programare usoara - sintaxa este simpla si eleganta, codul fiind eliberat de declaratii / definitii neagreabile; administrare automata a memoriei - ca si Java, Python ofera un control automat al memoriei prin contorizarea referintelor si colectarea gunoiului obiectelor nefolosite; este gratuit, putandu-se folosi chiar in scop comercial fara a necesita o licenta.

Scurta introducere in Python

variabilele nu trebuie declarate! Le putem folosi prin atribuirea unor valori; ele dispar atunci cand nu se mai face nici o referinta la ele:

x = 100 # variabilei x i se atribuie valoarea 100

x, y = 10, 20 # atribuire multipla: x = 10 si y = 20

z = ( 1 + 3j ) # atribuirea unei valori complexe variabilei z

ce urmeaza dupa # este comentariu, terminandu-se la sfarsitul liniei.

blocurile logice sunt indicate prin indentare diferita (nu avem ca in C sau BEGIN si END ca in Pascal):

pas = 0

while pas >= 0:

print "aceasta este o bucla infinita"

pas = pas + 1

print "in acest punct nu se ajunge niciodata"

liste - simbolul ":" este folosit pentru a indica restul obiectelor:

fructe = ["mere", "pere", "cirese", "visine"]

print fructe[1:3]

Rezulta ["pere", "cirese"] - limita din dreapta este deschisa, iar indexarea incepe de la 0!

print fructe[:3]

Rezulta ["mere", "pere", "cirese"]

print fructe[3:]

Afiseaza elementele de la al treilea, inclusiv, pana la ultimul: ["visine"]

dictionare - liste fara continut ordonat:

revista =

print revista['numar'] # afiseaza " 7 "

revista['domeniu'] = "fizica cuantica" # schimbarea domeniului revistei

functii sau proceduri

def patratul_lui(x):

return x*x

print patratul_lui(4) # afiseaza 16

print patratul_lui(z) # cu valoarea lui z de mai sus se afiseaza (-8+6j)

toate valorile pot fi folosite ca valori logice: 0, "", [], None reprezinta fals, iar orice alta valoare 4234, "Adevarat!", [0] reprezinta adevarat

if a:

print a

else:

print b

sau, mai simplu:

print a or b # daca a este adevarat afiseaza a, in caz contrar afiseaza b

Destul de usor, nu? Kit-ul de instalare a limbajului Python contine o documentatie bogata, iar pe Internet exista numeroase tutoriale gratuite. Un punct de inceput este: www.python.org. Cei interesati sunt asteptati la Catedra de Fizica!

VPython

David Scherer, un student la Universitatea Carnegie Mellon, a creat un modul de grafica 3D pentru Python (furnizarea de grafice in Python este posibil folosind libraria grafica Tk, lucru insa dificil de realizat), pe nume "Visual", foarte usor de folosit. Combinatia Python cu Visual se numeste "VPython". Acest modul permite care permite crearea de obiecte 3D (cutii, sfere, sageti, ), lucrul cu vectori (produse scalare, vectoriale, ), controlul ferestrelor, etc., aceasta ducand la focalizarea programarii exclusiv pe aspectele computationale.



Aplicatii in fizica

Pendulul gravitational

De exemplu, sa realizam un program care sa calculeze si sa reprezinte pozitia unui corp ce executa o miscare oscilatorie (pendulul gravitational). Pentru aceasta cream:

Tavanul:

box( pos=(0,0,0), length=0.2*l, height=0.02*l, width=0.2*l, color=color.green )

unde l este lungimea pendulului

Pendulul:

pendulG = frame()

frame() este folosit pentru a grupa diferite obiecte care apoi pot fi deplasate si rotite ca si cum ar fi un singur obiect. In cazul nostru, pendulG este format din corpul care executa miscarea oscilatorie si din firul care leaga acest obiect de tavan. La momentul initial, pendulul este scos din pozitia de echilibru, facand cu verticala un unghi q

pendulG.axis = ( l*sin(theta), -l*cos(theta), 0 )

Firul:

cylinder( frame=pendulG,

pos=(0,0,0), radius=0.01*l, length=l, color=color.cyan )

Corpul:

sphere( frame=pendulG, pos=(l,0,0),

radius=0.075*l, color=color.red )

Iata si pendulul gravitational astfel creat, privit din trei pozitii diferite:

Navigarea scenei 3D se realizeaza, fara efort din punct de vedere al programarii, prin folosirea mouse-ului, in timpul rularii programului.

Spectrometru de masa

Spectrometrul de masa este un dispozitiv cu ajutorul caruia se pot determina masele atomilor. El este format din: sursa de ioni, separatorul de viteze si separatorul de mase si detectorul. Ionii emisi de sursa de ioni sunt separati cu ajutorul unor campuri electrice si magnetice in functie de masa lor si apoi sunt detectati. O tratare a acestui subiect se poate gasi in manualul de fizica, clasa a XII-a, din acest motiv de aceea nu mai insistam asupra lui. In figurile de mai jos se poate observa o simulare didactica a acestui dispozitiv, din mai multe puncte de vedere si etape ale functionarii.

Programele din acest articol, cat si limbajul Python si VPython, pot fi obtinute accesand pagina de internet a Catedrei de Fizica:

https://papiu.netsoft.ro/~labfiz

sau luand legatura cu membrii catedrei de fizica. Va asteptam!

Bibliografie:

Everything Python, https://www.python.org/

Guido van Rossum's homepage: https://www.python.org/~guido/

Programming Python, Mark Lutz, O'Reilly & Associates, 1996

Internet Programming with Python, Aaron Watters, Guido Van Rossum, James C. Ahlstrom, M&T Books, 1996

Python, anyone?, Robert Richardson, https://www.linuxworld.com/expo/lw-python.html

An Introduction to Python, Jeff Bauer, Linux Journal Issue #21

Instant Python, Magnus Lie Hetland

The What, Why, Who, and Where of Python, Aaron R. Watters





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1245
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved