Curs5_Mathcad

6

Click here to load reader

description

curs 5 mathcad

Transcript of Curs5_Mathcad

Page 1: Curs5_Mathcad

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:

Page 2: Curs5_Mathcad

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    = .

Page 3: Curs5_Mathcad

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( )=

Page 4: Curs5_Mathcad

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

Page 5: Curs5_Mathcad

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

 

 

 

 =

Page 6: Curs5_Mathcad

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×=