Sunteți pe pagina 1din 10

80

LUCRAREA Nr. 10
PROGRAMARE N MATHCAD
1. Scopul lucrrii
Lucrarea are ca scop prezentarea noiunilor de programare i nsuirea
de ctre studeni a modului de lucru cu instrumentele Programming i
Boolean (care conin operatorii specifici operaiei de programare), pentru
realizarea programelor Mathcad.
2. Noiuni teoretice
n Mathcad se pot realiza subprograme care pot apela alte subprograme
Mathcad, utiliznd instrumentul Programming. Pentru crearea unui
subprogram se scrie numele acestuia, iar ntre paranteze parametrii de
intrare. Dup semnul de atribuire (:=) se selecteaz operatorul Add Line,
pentru inserarea unui noi linii. Pentru operaia de atribuire local se
folosete simbolul .
2.1. Instrumentul Programming
Operatorii Programming pot fi utilizai n programare ct i n evaluare
numeric sau analitic. Apsai butonul din instrumentul Math i
deschidei instrumentul Programming, sau alegei View > Toolbars >
Programming din meniuri.
Operatorii coninui n acest instrument sunt urmtorii:
Programming Operator Semnificaie Tastatur
Add Line adaug linie ]
Local
assignment
definire {
if if }
otherwise n rest [Ctrl] [Shift] ]
for for [Ctrl] [Shift] '
while while [Ctrl] ]
PROGRAMARE N MATHCAD

81
break break [Ctrl] [Shift] [
continue continue [Ctrl] [
return return [Ctrl] [Shift] \
on error
returneaz mesaj
de eroare
[Ctrl] '
2.2. Instrumentul Boolean
Operatorii Boolean pot fi folosii n evaluarea expresiilor numerice sau
analitice. Apsai butonul din instrumentul Math i deschidei
instrumentul Boolean sau selectai View > Toolbars >Boolean din meniuri.
Instrumentul Boolean conine urmtorii operatori:

Boolean Operator
Semnificai
e
Tastatur
= == = (Equal to) egal cu [Ctrl] =
< (Less than) mai mic
dect
<
> (Greate
than)
mai mare
dect
>
s ss s (Less than
or equal)
mai mic sau
egal
[Ctrl]9
> >> > (Greater
than or equal)
mai mare
sau egal
[Ctrl]0
= == = (Not equal) diferit [Ctrl]3
(Boolean
NOT)
NU boolean
[Ctrl]
[Shift] 1
. .. . (Boolean
AND)
EI boolean
[Ctrl]
[Shift] 7
v vv v (Boolean
OR)
SAU
boolean
[Ctrl]
[Shift] 6
(Boolean
XOR)
XOR
boolean
[Ctrl]
[Shift] 5
2.3. Noiuni de programare
2.3.1. Definirea unei funcii
Se exemplific, cu un program simplu, definirea unei funcii cu dou
argumente, prin care se mparte primul argument la cel de-al doilea i se
ndrumar de laborator APLICALII N MATHCAD EI MATLAB

82
calculeaz logaritmul n baza 10 al rezultatului.
1. Se tasteaz numele funciei, f(x,y), urmat de operatorul de atribuire
(:=):
( , ) : f x y =
2. Se definete 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 expresia de intrare:
( , ) :
x
f x y z
y
=
4. Se activeaz operatorul Add Line, iar n locul indicat se trece
valoarea calculat prin program, log(z):
( , ) :
log( )
x
z
y f x y
z

=
5. Pentru calculul valorilor acestei funcii se scrie numele funciei
precizndu-se cele dou argumente (de exemplu x:=100 i y:=10):
(100,10) 1 f = .
2.3.2. Ciclul for (ciclul cu num'r cunoscut de pa)i)
Pentru generarea unui ciclu for se folosete cuvntul cheie for, din
instrumentul Programming. Se precizeaz variabila de indexare (contorul),
valoarea iniial i valoarea final a acesteia.

Aplicaie:
Programul urmtor transform o matrice ntr-un vector coloan care
conine coloanele matricei M, pornind de la ultima coloan a matricei.

M identity 3 ( ) :=
v_col M ( ) v M
cols M ( ) 1
( )

v stack v M
j
( )
,
( )

j cols M ( ) 2 0 .. e for
v
:=
PROGRAMARE N MATHCAD

83
n acest program s-a utilizat operatorul stack(A,B,C,..), care are ca
rezultat un vector obinut din adugarea vectorilor A, B, C,, de sus n jos.

2.3.3. Ciclul while (ciclul cu num'r necunoscut de pa)i)
Pentru generarea unui ciclu while se folosete cuvntul cheie while,
din instrumentul Programming. Se precizeaz condiia de ndeplinit, iar
corpul ciclului va ncepe n linia urmtoare. Bucla while se ncheie dac o
condiie impus nu este ndeplinit.
Aplicaie:
Programul urmtor determin rdcina ptrat a unui numr real
pozitiv, terminndu-se cnd estimarea rdcinii ptrate este mai mic dect
o valoare de prag, diferit pentru valoarea urmrit:
pentru a:=37 i c:=110
-5
se obine:

2.3.4. Instruciunea condiional' if
Pentru scrierea instruciunii condiionale se folosete cuvntul cheie if,
din instrumentul Programming. Instruciunea if execut sau ignor anumite
instruciuni.
Forma instruciunii este:
if unde:
n zona de editare din stnga se introduce instruciunea ce trebuie
realizat, dac expresia logic are valoarea adevrat; dac este necesar se
utilizeaz operatorul Add Line, pentru instruciuni adiionale;
n zona de editare din dreapta se introduce expresia logic a crei
valoare de adevr se verific.
Dac exist operatorul otherwise i valoarea de adevr a expresiei
logice este fals, se execut instruciunea din partea stng a instruciunii
otherwise.
sqrt a c ,
( )
est_sqrt 1
est_sqrt
1
2
est_sqrt
a
est_sqrt
+
|

\
|
|
.

est_sqrt
2
a c > while
:=
sqrt 37 1 10
5
,
( )
6.083 =
v_col M ( )
T
0 0 1 0 1 0 1 0 0 ( ) =
ndrumar de laborator APLICALII N MATHCAD EI MATLAB

84
Dac nu exist instruciunea otherwise i valoarea de adevr a
expresiei logice este fals, se execut instruciunea urmtoare dup
instruciunea if.
Aplicaie:
2
0 if x 2
( ) :
4 otherwise
f x
x
>
=

Funcia f are valoarea zero dac x este mai mare ca 2 sau mai mic dect
-2. Dac x este ntre -2 i 2, funcia f are valoarea
2
4 x .
2.3.5. Operatorul Continue
Operatorul Continue oprete execuia iteraiei curente i rencepe o
nou iteraie, de la nceputul celei mai apropiate bucle incluse n iteraie.

Aplicaie:
Programul urmtor adun numai numerele ntregi impare ntre 0 i n
prin eliminarea celor pare, utiliznd operatorului Continue.
aduna_impar s 0
continue mod k 2 , ( ) 0 if
s s k +
k 0 n .. e for
s
:=
Pentru n:=10, rezult aduna_impar=25.
Prin comparare, operatorul sum include toate numerele ntregi pn la
n i este egal cu:
10
0
j=55
j =

2.3.6. Operatorul Break


Dac se dorete ieirea dintr-un ciclu while sau for, mai nainte de
terminarea ciclului, se utilizeaz operatorul break.
Urmtorul program calculeaz iterativ radicalul pn cnd acesta este
mai mic dect c cc c, sau pn cnd se atinge numrul maxim de iteraii.
PROGRAMARE N MATHCAD

85
2.3.7. Operatorul Return
Implicit, un program prezint rezultatul execuiei pasului anterior.
Totui, dac se dorete revenirea la o valoare specificat din program, se
folosete operatorul Return.
Operatorii Return au proprietatea de a ajuta la corectarea greelilor
programului. Acetia se pot aduga sau terge pentru a se verifica valoarea
variabilei locale n timpul execuiei programului. Operatorul Return este
folosit uneori n programele recursive.
Pentru a utiliza operatorul Return se procedeaz astfel:
Se insereaz o linie unde se dorete ieirea din program;
Se insereaz operatorul Return n acel loc;
La dreapta operatorului Return, n locul indicat, se tasteaz
numele variabilei locale, unde se dorete ntoarcerea.

Aplicaie:
Programul urmtor prezint un exemplu de aplicare al instruciunii
Return. Pentru orice valoarea a variabilei t, dac variabila y=0, funcia g(t)
are valoarea 3.
Dac variabila y este diferit de zero, funcia g(t) se determin dup
execuia ciclului for i depinde de valoarea lui y i de valoarea lui t:
sq_r a c , max ,
( )
est_sqrt 1
est_sqrt
1
2
est_sqrt
a
est_sqrt
+
|

\
|
|
.

max i
break
est_sqrt
2
a c < if
i 0 max .. e for
est_sqrt
max
|

\
|
|
.
:=
sq_r 3.057 10
3
10
6
, 100 ,
( )
55.290144
9
|

\
|
|
.
=
ndrumar de laborator APLICALII N MATHCAD EI MATLAB

86
g t ( )
a 3
a return
y 0 if
t t y +
i 0 y .. e for
t
:=
2.3.8. Operatorul on error
Operatorul on error este un operator de tipul condiional, care ndrum
execuia doar n cazul unei erori n timpul calculelor.

Aplicaie:
n exemplul urmtor, operatorul on error este utilizat pentru a evita
mprirea la zero; cnd x este 2, programul evalueaz pe , ntr-un anumit
mod considerat acceptabil:

Dac, , f(2) nu se poate calcula.

Dac se definete:

, atunci

2.3.9. Exemple de subprograme Mathcad
Redefinirea temporar a spaiului de lucru a variabilelor:
Dac x:=36, se obine
2
6 x = ;
Dac se redefinete variabila x, ntr-un spaiu de lucru limitat, astfel:
2
16
4
x
x

=
, iar n afara acestui spaiu,
2
6 x = .
Repetarea unei expresii pentru claritate:
( )
( )
2 2
2 2
2 2
cos
( , ) : sin
x y
f x y x y
x y
+
= + +
+
, care poate fi scris ca:
f x ( )
1
2 x
:=
f x ( )
1
2 x
on error := f 2 ( ) 1 10
307
=
PROGRAMARE N MATHCAD

87
2 2
( , ) :
cos( )
sin( )
r x y
f x y
r
r
r
+
=
+
.
3. Chestiuni de studiat
3.1. S se realizeze programele Mathcad prin care se definesc funciile:
a)
1 daca 0<x 1
( )
0 in rest
f x
s

b)
1 dac x<-1
( ) x dac -1 x<1
1 dac x 1
rampa x

= s

>

c)
-t daca -4 t<0
( )
t daca 0 t 4
f t
s

=

s s

3.2. S se realizeze un program care determin primul element al


vectorului v, care depete, n modul, o anumit valoare dat, c cc c.
Vectorul v, este definit prin:
3
: sin( ), unde : 0..2.5 10
j
v j j = = ; i
: 0.99999 c =
3.3. S se realizeze un program (care s utilizeze un ciclu for), prin
care un numr (a) este incrementat de un numr precizat de ori.
3.4. S se realizeze un program (care s utilizeze un ciclu while), prin
care se definete funcia factorial.
3.5. S se realizeze un program de calcul aproximativ al integralei
definite prin metoda trapezelor. Prin acest exemplu se va apela un
subprogram Mathcad dintr-un program Mathcad.
Se dau: a, b - capetele intervalului de integrare; n - numrul de noduri;
g(x) - funcia de integrat,
3
( ) : cos( ) g x x = .
3.6. S se realizeze un program pentru calcul sumei:
2 3
...
n
I A A A A E = + + + + + ,
unde, matricea
1 2 0
4 3 1
1 0 5
A
| |
|
=
|
|
\ .
i n=4.
ndrumar de laborator APLICALII N MATHCAD EI MATLAB

88
4. Modul de lucru
Urmrindu-se prezentarea operatorilor din instrumentele Programming
(2.1.) i Boolean (2.2.), ct i noiunile de programare (2.3.) se vor
rezolva cerinele de la chestiuni de studiat.
4.1. O variant de program pentru exprimarea unei funcii definit pe
ramuri poate fi urmtoarea:
f x ( ) 1 0 x < 1 s if
0 otherwise
:=
Similar, se va proceda pentru cerinele de la (3.1.3.4).
4.2. Un exemplu de subprogram Mathcad prin care se calculeaz
integrala definit prin metoda trapezelor, numit Trapez, poate fi urmtorul:

Pentru funcia g(x), calculul integralei definite se realizeaz prin
apelarea subprogramului Trapez, prin instruciunea:

4.3. Pentru calculul sumei de matrice se poate aplica urmtorul


subprogram:

Trapez a b , n , f , ( ) h
b a
n

s1 0
s1 s1 f a i h + ( ) +
i 1 n 1 .. e for
I
h
2
f a ( ) f b ( ) + 2 s1 + ( )
I
:=
int Trapez 1 2 , 40 , g , ( ) := int 0.247 =
E n A , ( ) E
1
0
0
0
1
0
0
0
1
|

\
|
|
|
|
.

E E A
i
+
i 1 n .. e for
E
:=
PROGRAMARE N MATHCAD

89
5. Coninutul referatului
Referatul trebuie s conin:
Titlul i scopul lucrrii
Noiuni teoretice
Chestiuni de studiat
Rezultatele obinute i observaii personale.
E 4
1
4
1
2
3
0
0
1
5
|

\
|
|
|
|
.
,

(
(
(
(

145
4
104
32
177
120
120
224
751
|

\
|
|
|
|
.
=