Documente Academic
Documente Profesional
Documente Cultură
4. PROGRAMAREA N MATHCAD
INSTRUCIUNI
SUBPROGRAME I RECURSIVITATE
MN
1
TUDOR PAUNESCU
- o parte, care este identic cu cea a unei funcii, plasat la stnga operatorului de asignare numeric;
- o parte, situat n dreapta operatorului de asignare, unde se efectueaz operaii specifice.
2
Lista parametrilor actuali
2. Un program Mathcad poate apela orice funcie predefinit n Mathcad, sau creat de utilizator, variabile definite de utilizator, alte programe, cu respectarea condiiilor de vizibilitate valabile ntr-o foaie de lucru.
Exemplu.
varianta1
varianta2
3. Instruciunile de programare se introduc doar prin intermediul paletei Programming, sau prin hot keys, nu prin scrierea lor caracter cu caracter. 5. Ca orice expresie, un program Mathcad returneaz o valoare de natur scalar, vectorial, matriceal, matriceal imbricat sau string. Aceasta este, in general, returnat de ultima instruciune executat de program. Sunt posibile mai multe ieiri din program, prin ntreruperea programului, cu instruciunea return. 6. O variabil definit ntr-un program este local programului, deci nu este vizibil in exteriorul corpului acestuia.
?
De exemplu n programul de mai sus dac se scrie xo i se apas pe tasta = Mathcad nu introduce simbolul de evaluare =, ci pe cel de atribuire :=, deoarece l consider pe xo nedefinit. 7. n programele Mathcad poate fi aplicat recursivitatea. 4
8. ntr-un program Mathcad 14 se poate defini o funcie n corpul programului (S). Exemplu: Etape a.
atribuire
b.
c.
d.
2. EDITAREA PROGRAMELOR MATHCAD Liniile programului: - operatorul de adugare a unei linii la corpul programului Mathcad este - pe fiecare linie se scrie doar o instruciune; - tergerea unei linii selectate, se efectueaz cu tastele [Bksp], [Delete]; - asupra liniilor unui program se pot efectua operaii de tergere (delete), tiere (cut), copiere (copy), lipiere (paste); Atribuirea operatorul de asignare (atribuire) se poate utiliza doar in corpul unui program Mathcad. Acesta se insereaza din paleta Programming, tasta [ { ]; - operatorul de definire :=, nu poate fi utilizat n corpul unui program Mathcad. 6 sau cu sau tasta [ ] ] ;
Utilizarea unui program, definit ntr-o foaie de lucru se face respectnd regulile de vizibilitate. Se scrie numele programului, urmat de lista parametrilor actuali, ntre paranteze rotunde, folosind ca separatori virgulele. Dup cum se tie, exist o coresponden poziional
3.1. Instruciunea condiional (IF) Inserare Instruciunea IF din paleta Programming, sau tasta [ } ] Sintaxa forma simplificat: valoarea dorit daca condiia este adevarat forma complet: valoarea dorit daca condiia este adevarat IF condiia (expresia boolean) OTHERWISE 7 valoarea dorit daca condiia nu este adevarat IF condiia (expresia boolean)
Inserare Instruciunea FOR din paleta Programming, sau combinaia de taste [Ctrl]+["]. Sintaxa
FOR
versus
WHILE
Ciclu cu numr determinat de pai. Test final numr de pai dac i<n se continu calculele.
Ciclu cu numr nedeterminat de pai. Test iniial ndeplinire condiie, dac condiia este ndeplinit se continu calculele. start
start
i:=0 i:=i+1
da Bloc calcule
stop 10
3.3. Instruciuni pentru controlul execuiei programului Mathcad pune la dispoziia utilizatorului trei instruciuni cu rol de ntrerupere a rulrii programului, enumerate mai jos, n ordinea descresctoare a efectului: 1. RETURN ntrerupe programul; 2. BREAK ntrerupe un ciclu; 3. CONTINUE ntrerupe o iteraie. Instruciunile RETURN, BREAK, CONTINUE se insereaz din paleta Programming sau cu combinaiile de taste: [Ctrl]+ [I], respectiv [Ctrl]+ [{ ], respectiv [Ctrl]+ [[]. Ca i n cazul celorlalte instruciuni de programare este interzis inserarea prin tastatur liter cu liter. 3.3.1. Instruciunea RETURN Instruciunea RETURN permite ntreruperea rulrii programului i returnarea unei valori calculate, oriunde n corpul programului. Sintaxa RETURN expresia sau irul de caractere care se returneaz Deseori, instruciunea RETURN se utilizeaz n combinaie cu instruciunea IF RETURN expresie returnat IF condiia (expresia boolean) 11
Programul alturat extrage dintr-un vector prima valoare mai mare dect o valoare dat.
3.3.2. Instruciunea BREAK Instructiunea BREAK se utilizeaz n corpul instructiunilor ciclice FOR, sau WHILE pentru intreruperea ciclului i executarea instruciunii imediat urmatoare dup ciclu. Sintaxa Instruciunea BREAK se utilizeaz n combinaie cu instruciunea IF: BREAK IF condiia (expresia boolean)
i este contorul vectorului care se proceseaya (v) j este indicele subvectorului extras
12
3.3.3. Instruciunea CONTINUE Instruciunea CONTINUE se utilizeaz n corpul instruciunilor ciclice, pentru ntreruperea unei iteraii a ciclului i executarea instruciunii imediat urmtoare din ciclu. Sintaxa
13
3.4. Instruciuni pentru gestiunea erorilor ON ERROR, ERROR 3.4.1. Instruciunea ON ERROR Instruciunea ON ERROR este destinat manipularii erorilor neprevizibile. Aceasta are funcionalitatea unei instruciuni condiionale. Inserare Paleta Programming sau [Ctrl]+[ , ]. Sintaxa expresie, funcie evaluat dac exist eroare ON ERROR expresie, funcie evaluat daca NU exist eroare
14
3.4.2. Instruciunea ERROR Afieaz scurte mesaje, stabilite de utilizator (tip sau hint), dac nu sunt ndeplinite anumite condiii.
15
4. SUBPROGRAME I RECURSIVITATE
4.1. Subprograme Mathcad 14 permite utilizarea subprogramelor, care pot fi imbricate pe oricte nivele. Subrutinele sunt recomandate n scopul stpnirii complexitii programrii. Un program astfel structurat este mult mai lizibil, se poate testa i depana mult mai uor, n plus d posibilitatea refolosirii codului.
sau mai simplu utiliznd funcia factorial existent n biblioteca Mathcad (vezi toolbox-ul Calculator)
16
4.2. Recursivitate Dei utilizarea recursivitii n definirea unei funcii permite scrierea unui cod minimal, resursele de memorie nu sunt eficient utilizate. O funcie definit recursiv trebuie s conin dou pri: o definire a funciei dependent de o valoare anterioar a argumentului i o condiie iniial, pentru a evita ciclarea.
17
5. DEPANAREA PROGRAMELOR MATHCAD (S) Depanarea programelor Mathcad 14 utilizeaz o fereastr diferit de foaia de lucru: View Trace Windows. Controlul procesului de depanare a unui program se face cu o bar specializat de instrumente:
View Toolbars Debug sau prin intermediul meniului Tools Debug Togle Debug.
Pornire depanare
ntrerupere
Pentru a se urmri evoluia variabilelor selectate n fereastra trace, clic pe al treilea buton (Toggle Debugging)
n vederea depanrii unui program se utilizeaz funciile trace(S, x, y, z, ...), pause(S, x, y, z, ...) care se insereaz n codul programului sau direct n foia de lucru, cu parametrii: S este un parametru opional dac se urmrete o singur variabil, n caz contrar este un string (ir de caractere) care conine codul de control al locaiei argumentului S (prima poziie, a doua etc). x, y, z sunt expresii valide n MC. 18
Exemplu de inserarea a funciei trace n program, n interiorul unui ciclu for, cu afiarea valorilor indexului i i a valorii curente x.
Exemplu de inserarea a funciei pause n program, n interiorul unui ciclu for. La fiecare apsare a butonului resume de pe bara de instrumente Debug, n fereastra Trace este afiat cte un rnd care conine elementele vectorului
19
Exemplu de utilizarea funciei trace n programul de calcul al erorilor axei unui element centrat prin 20 intermediul unei buce cilindrice