curs5_mathcad
DESCRIPTION
curs 5 mathcadTRANSCRIPT
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 1/6
PROGRAMARE IN MATHCAD
În Mathcad se pot realiza programe care pot apela alte subprograme Mathcad,utilizând instrumentul Programming. Pentru crearea unui subprogram se scrie numeleacestuia, iar între paranteze parametrii de intrare. După semnul de atribuire (:=) se selectează operatorul Add Line, pentru inserarea unui noi linii. Pentru operaţia de atribuire locală sefoloseşte simbolul ←.
1. Instrumentul Programming
Operatorii Programming pot fi utilizaţi în programare cât şi în evaluare numerică sau
analitică. Apăsaţi butonul din instrumentul Math şi deschideţi instrumentulProgramming, sau alegeţi View > Toolbars > Programming din meniuri.
Operatorii conţinuţi în acest instrument sunt următorii:
Programming Operator Semnificaţie Tastatură Add Line adaugă linie ]
Definire,atribuirelocală
{
if if }
otherwise în rest[Ctrl][Shift] ]
for for[Ctrl][Shift] '
while while [Ctrl] ]
break break[Ctrl][Shift] [
continue continue [Ctrl] [
return return[Ctrl][Shift] \
on errorreturnează mesaj deeroare
[Ctrl] '
1. Instrumentul Boolean
Operatorii Boolean pot fi folosiţi în evaluarea expresiilor numerice sau analitice.
Apăsaţi butonul din instrumentul Math şi deschideţi instrumentul Boolean sau selectaţiView > Toolbars >Boolean din meniuri.
Instrumentul Boolean conţine următorii operatori:
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 2/6
Boolean Operator Semnificaţie Tastatură
==== (Equal to) egal cu [Ctrl] =< (Less than) mai mic decât <> (Greate than) mai mare decât >≤≤≤≤ (Less than orequal)
mai mic sauegal
[Ctrl]9
≥≥≥≥ (Greater than
or equal)
mai mare sau
egal [Ctrl]0≠≠≠≠ (Not equal) diferit [Ctrl]3¬¬¬¬ (BooleanNOT)
NU boolean [Ctrl] [Shift] 1
∧∧∧∧ (BooleanAND)
ŞI boolean [Ctrl] [Shift] 7
∨∨∨∨ (Boolean OR) SAU boolean [Ctrl] [Shift] 6⊕⊕⊕⊕ (BooleanXOR)
XOR boolean [Ctrl] [Shift] 5
3. Noţiuni de programare
3.1. Definirea unei func ţ ii
Se exemplifică, cu un program simplu, definirea unei funcţii cu două argumente, princare se împarte primul argument la cel de-al doilea şi se calculează logaritmul în baza 10 alrezultatului.
1. Se tastează numele funcţiei, f(x,y), urmat de operatorul de atribuire (:=):( , ) : f x y =
2. Se defineşte variabila local
ă (în acest caz, z), urmat
ă de operatorul de atribuire local
ă (←).
Definirea lui z este numai în acest program; în afara acestui program, z nu este definit:( , ) : f x y z= ←
3. Se completează atribuirea locală (în acest caz, x/y) în locul indicat. Se selectează expresiade intrare:
( , ) : x
f x y z y
= ←
4. Se activează operatorul „ Add Line”, iar în locul indicat se trece valoarea calculată prinprogram, log(z):
( , ) :log( )
x
z y f x y
z
←=
5. Pentru calculul valorilor acestei funcţii se scrie numele funcţiei precizându-se cele două argumente (de exemplu x:=100 şi y:=10):
(100,10) 1 f = .
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 3/6
3.2. Ciclul for (ciclul cu număr cunoscut de pa şi)
Pentru generarea unui ciclu for se foloseşte cuvântul cheie for, din instrumentulProgramming. Se precizează variabila de indexare (contorul), valoarea iniţială şi valoareafinală a acesteia.
Aplica ţ ie:
Programul următor transformă o matrice într-un vector coloană care conţine coloanelematricei M, pornind de la ultima coloană a matricei.
În acest program s-a utilizat operatorul stack(A,B,C,..), care are ca rezultat un vector
obţinut din adăugarea vectorilor A, B, C,…, de sus în jos.3.3. Ciclul while (ciclul cu număr necunoscut de pa şi)
Pentru generarea unui ciclu while se foloseşte cuvântul cheie while, din instrumentulProgramming. Se precizează condiţia de îndeplinit, iar corpul ciclului va începe în liniaurmătoare. Bucla while se încheie dacă o condiţie impusă nu este îndeplinită.
Aplica ţ ie:
Programul următor determină rădăcina pătrată a unui număr real pozitiv, terminându-se când estimarea rădăcinii pătrate este mai mică decât o valoare de prag, diferită pentruvaloarea urmărită:
pentru a:=37 şi ε:=1⋅10-5 se obţine:
3.4. Instruc ţ iunea condi ţ ională if
Pentru scrierea instrucţiunii condiţionale se foloseşte cuvântul cheie if , din
instrumentul Programming. Instrucţiunea if execută sau ignoră anumite instrucţiuni.Forma instrucţiunii este:
if unde:
• în zona de editare din stânga se introduce instrucţiunea ce trebuie realizată, dacă expresia logică are valoarea adevărată; dacă este necesar se utilizează operatorul Add Line,pentru instrucţiuni adiţionale;
• în zona de editare din dreapta se introduce expresia logică a cărei valoare de adevăr severifică.
M identity 3( ):=
sqrt a ε,( ) est_sqrt 1←
est_sqrt1
2est_sqrt
a
est_sqrt+
⋅←
est_sqrt2
a− ε≥while
:=
sqrt 37 1 105−
⋅,( ) 6.083=
v_col M( ) v M cols M( ) 1−⟨ ⟩←
v stack v M j⟨ ⟩,( )←
j cols M( ) 2− 0..∈for
v
:=
v_col M( )T
0 0 1 0 1 0 1 0 0( )=
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 4/6
Dacă există operatorul otherwise şi valoarea de adevăr a expresiei logice este fals, seexecută instrucţiunea din partea stângă a instrucţiunii otherwise.
Dacă nu există instrucţiunea otherwise şi valoarea de adevăr a expresiei logice estefals, se execută instrucţiunea următoare după instrucţiunea if .
Aplica ţ ie:
2
0 if x 2( ) :4 otherwise
f x x
>=
−
Funcţia f are valoarea zero dacă x este mai mare ca 2 sau mai mic decât -2. Dacă x
este între -2 şi 2, funcţia f are valoarea 24 x− .
3.5. Operatorul Continue
Operatorul Continue opreşte execuţia iteraţiei curente şi reîncepe o nouă iteraţie, de la începutul celei mai apropiate bucle incluse în iteraţie.
Aplica ţ ie:
Programul următor adună numai numerele întregi impare între 0 şi n prin eliminareacelor pare, utilizând operatorului Continue.
aduna_impar s 0←
continue mod k 2,( ) 0if s s k+←
k 0 n..∈for
s
:=
Pentru n:=10, rezultă aduna_impar=25.Prin comparare, operatorul sumă include toate numerele întregi până la n şi este egal
cu:10
0
j=55 j =
∑
3.6. Operatorul Break
Dacă se doreşte ieşirea dintr-un ciclu while sau for , mai înainte de terminarea ciclului,se utilizează operatorul break.
Următorul program calculează iterativ radicalul până când acesta este mai mic decât εεεε,sau până când se atinge numărul maxim de iteraţii.
4 2 0 2 4
0
2
f x( )
2− 2
x
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 5/6
3.7. Operatorul Return
Implicit, un program prezintă rezultatul execuţiei pasului anterior. Totuşi, dacă sedoreşte revenirea la o valoare specificată din program, se foloseşte operatorul Return.
Operatorul Return are proprietatea de a ajuta la corectarea greşelilor programului.Acesta se poate adăuga sau şterge pentru a se verifica valoarea variabilei locale în timpulexecuţiei programului. Operatorul Return este folosit uneori în programele recursive.
Pentru a utiliza operatorul Return se procedează astfel:• Se inserează o linie unde se doreşte ieşirea din program;• Se inserează operatorul Return în acel loc;• La dreapta operatorului Return, în locul indicat, se tastează numele variabilei locale,
unde se doreşte întoarcerea.
Aplica ţ ie:
Programul următor prezintă un exemplu de aplicare al instrucţiunii Return. Pentruorice valoarea a variabilei t, dacă variabila y=0, funcţia g(t) are valoarea 3.
Dacă variabila y este diferită de zero, funcţia g(t) se determină după execuţia cicluluifor şi depinde de valoarea lui y şi de valoarea lui t:
y 3:=
g t( )
a 3←areturn
y 0if
t t y+←
i 0 y..∈for
t
:=
g 5( ) 17=
sq_r a ε, max,( ) est_sqrt 1←
est_sqrt1
2est_sqrt
a
est_sqrt+
⋅←
max i←
break
est_sqrt2
a− ε<if
i 0 max..∈for
est_sqrt
max
:=
sq_r 3.057 103
⋅ 106−
, 100,( ) 55.290144
9
=
7/21/2019 Curs5_Mathcad
http://slidepdf.com/reader/full/curs5mathcad 6/6
3.8. Operatorul on error
Operatorul on error este un operator de tipul condiţional, care îndrumă execuţia doar în cazul unei erori în timpul calculelor.
Aplica ţ ie:
În exemplul următor, operatorul on error este utilizat pentru a evita împărţirea la zero;când x este 2, programul evaluează pe ∞∞∞∞ , într-un anumit mod considerat acceptabil:
Dacă, , f(2) nu se poate calcula.
Dacă se defineşte:
, atunci
f x( )1
2 x−:=
f x( ) ∞1
2 x−on error:= f 2( ) 1 10
307×=