Sunteți pe pagina 1din 18

L6. Programare.

Realizarea graficelor de
rambursare (scadențare) asociate unui credit de
nevoi personale, utilizând tehnici de programare
specifice

Enunțul și scopul lucrării

O persoană fizică dorește să încheie un contract de


împrumut cu o valoare de 10.000 RON pe o perioadă de 1
an. În acest scop, ea se adresează Băncii, care îi propune
următoarea variantă de credit pentru nevoi personale: rata
dobânzii 11%, comision de acordare 3%, comision de
rambursare anticipată 1%. Rambursarea se face în rate
lunare egale (anuități constante). Pentru a sări în ajutorul
persoanelor care doresc contracte de împrumut, banca
pune la dispoziția acestora graficele reprezentând
dobânzile anuale efective, atât în lei cât și în euro.
Să se realizeze următoarele:
1. Definiți variabilele specifice problemei;
2. Calculați suma efectivă pe care o va primi persoana;
3. Calculați rata lunară pe care trebuie să o plătească
persoana fizică;
4. Definiți o funcție prin intermediul operatorilor din
secțiunea Programming care să întoarcă o matrice

73
Îndrumar de laborator
reprezentând graficul de rambursare (vezi figura de mai
jos). De asemenea se vor calcula totalurile pentru
coloanele dobândă, amortisment și anuitate;

5. După 3 luni se dorește rambursarea anticipată a


creditului. Calculați suma pe care persoana o va plăti
băncii;
6. Definiți o funcție prin intermediul operatorilor din
secțiunea Programming care să întoarcă o matrice
reprezentând graficul de rambursare (vezi figura de mai
sus) pentru același împrumut, dacă rambursarea creditului
se face cu amortismente (rate de principal) egale. La final
calculați și totalurile pentru coloanele dobândă,
amortisment și anuitate, în această variantă de credit;
7. Înlocuiți structura iterativă for cu while în ambele funcții
care întorc matricele asociate graficelor de rambursare;
8. Realizați graficele dobânzii anuale efective în euro și în
lei, pentru ultimele 12 luni, în același sistem de coordonate
carteziene, cunoscând funcțiile acestora:
𝑙𝑢𝑛𝑎 + 1.05
+ 14.72, 1 ≤ 𝑙𝑢𝑛𝑎 ≤ 8
9.56
𝐷𝐴𝐸_𝑙𝑒𝑖(𝑙𝑢𝑛𝑎) = {
𝑙𝑢𝑛𝑎2
1.205 ∙ 𝑙𝑢𝑛𝑎 − + 5.04, 9 ≤ 𝑙𝑢𝑛𝑎 ≤ 12
23.56

74
Programare
𝑙𝑢𝑛𝑎2 + 12.04
+ 15.74, 1 ≤ 𝑙𝑢𝑛𝑎 ≤ 8
𝐷𝐴𝐸_𝑒𝑢𝑟𝑜(𝑙𝑢𝑛𝑎) = 14.58 ∙ 𝑙𝑢𝑛𝑎 + 1
𝑙𝑢𝑛𝑎2
{ 1.48 ∙ + 11.01, 9 ≤ 𝑙𝑢𝑛𝑎 ≤ 12
𝑙𝑢𝑛𝑎 + 21.74

Suport teoretic

Elementele teoretice legate de operatorii și tehnicile de


programare în Mathcad au fost prezentate în cadrul
cursului.
În practică există mai multe metode de rambursare a
creditelor. Întocmirea unui grafic de rambursare
(scadențar) presupune cunoașterea anumitor elemente.
Rata (anuitatea) pe care o plătim la un moment este
compusă din mai multe componente:
• Amortisment sau partea de principal – reprezintă o
parte din datoria pe care trebuie să o rambursăm;
• Dobânda – se calculează pe baza valorii rămase de
rambursat;
• Comisioane – eventuale costuri suplimentare.
Valoare rămasă de rambursat - partea de principal rămasă
de rambursat. Este egală cu diferența dintre valoarea
rămasă în perioada precedentă și partea din principal
rambursată în perioada curentă.
Formula de obținere a ratei pe care trebuie să o plătească
o persoană care încheie un contract de împrumut este:

75
Îndrumar de laborator
Rata= Amortisment + Dobândă + Comisioane
În problema tratată în această unitate, considerăm că nu
avem costuri suplimentare (comisioane) lunare. În acest
caz avem:
Rata= Amortisment + Dobândă
Pentru detalii suplimentare privind noțiunile din domeniul
Matematicilor financiare, se mai pot studia următoarele
surse:
• Georgiana Popescu, Daniela Mocanu – Elemente de
matematici superioare – Matematici economice,
Editura Performantica, 2011
 http://www.ase.ro/upcpr/profesori/976/IC%205%2
0Rambursare_credite.pdf
 http://www.ase.ro/upcpr/profesori/979/IC%205%2
0Rambursare_credite.doc
 http://www.astral.ro/tibi/moneda%20si%20credit/
creditul%20si%20dobanda.doc

Produsul software utilizat

Mathcad

Funcțiile și resursele utilizate

• instrumentele din paleta Programming


• Add line, if, otherwise, for, while, return

76
Programare
Modul de lucru

Se vor parcurge următoarele etape:


1. Se vor defini următoarele variabile:
• Variabilei ORIGIN i se va stabili valoarea 1 (din 0
implicit) prin intermediul ferestrei de dialog din
meniul Tools-> Worksheet Options-> Array Origin;
• Variabilele credit, dobanda, comision_de_acordare
și comision_de_rambursare_anticipata și perioada;
• Valorile asociate variabilelor
comision_de_acordare, dobanda și
comision_de_rambursare_anticipata se vor
introduce utilizând constanta %;
2. Se va defini variabila suma_primita și se va calcula
funcție de variabilele credit și comision_de_acordare;
suma_primita=credit-comision_de_acordare
3. Pentru calcul ratei lunare pe care trebuie să o plătească
persoana, în cazul unui credit cu anuitate (rate) egală(e) se
utilizează următoarea formulă (se va defini variabila rata):
𝑑𝑜𝑏𝑎𝑛𝑑𝑎
∙ 𝑐𝑟𝑒𝑑𝑖𝑡
𝑟𝑎𝑡𝑎 = 12
𝑑𝑜𝑏𝑎𝑛𝑑𝑎 −𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎
1 − (1 + 12 )
4. Pentru realizarea funcției grafic_rate_egale se va urmări
algoritmul acesteia în pseudocod:

77
Îndrumar de laborator
Functia grafic_rate_egale(credit, dobanda, perioada)

PENTRU i=1, perioada EXECUTA


nr_crt←i
DACA i=1 ATUNCI
𝑉𝑟𝑖 ← 𝑐𝑟𝑒𝑑𝑖𝑡
𝑐𝑟𝑒𝑑𝑖𝑡 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12
ALTFEL
𝑉𝑟𝑖 ← 𝑉𝑟𝑖−1 − 𝑅𝑝𝑖
𝑉𝑟𝑖 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12
SFDACA
𝑑𝑜𝑏𝑎𝑛𝑑𝑎
∙ 𝑐𝑟𝑒𝑑𝑖𝑡
𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 ← 12
𝑑𝑜𝑏𝑎𝑛𝑑𝑎 −𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎
1 − (1 + )
12
𝑅𝑝𝑖 ← 𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 − 𝐷𝑖
SFPENTRU

Se vor defini următoarele variabilele pentru calculul


totalurilor: total_dobanda, total_rata_principal și
total_rate.
5. Se vor defini variabilele:
- perioada_rambursare_anticipata
- valoare_de_rambursat_dupa_3_luni
- suma_de_rambursat
Se va calcula valoarea sumei de rambursat funcție de
variabilele definite, dar și în funcţie de variabila
comision_rambursare_anticipata;

78
Programare
6. Pentru realizarea funcției grafic_amortismente_egale se
va urmări algoritmul acesteia în pseudocod:
Functia grafic_amortismente_egale(credit, dobanda, perioada)

PENTRU i=1, perioada EXECUTA

nr_crt←i

𝑐𝑟𝑒𝑑𝑖𝑡
𝑅𝑝𝑖 ←
𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎

DACA i=1 ATUNCI

𝑉𝑟𝑖 ← 𝑐𝑟𝑒𝑑𝑖𝑡

𝑐𝑟𝑒𝑑𝑖𝑡 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

ALTFEL

𝑉𝑟𝑖 ← 𝑉𝑟𝑖−1 − 𝑅𝑝𝑖

𝑉𝑟𝑖 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

SFDACA

𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 ← 𝑅𝑝𝑖 + 𝐷𝑖

SFPENTRU

Se vor defini următoarele variabilele pentru calculul


totalurilor: total_dobanda, total_rata_principal și
total_rate.
7. Pentru realizarea funcției grafic_rate_egale2 (utilizând
iterația cu test inițial) se va urmări algoritmul acesteia în

79
Îndrumar de laborator
pseudocod. Contorul buclei iterative i va avea valoarea
inițială 1.
Functia grafic_rate_egale2(credit, dobanda, perioada)

𝑖←1

CATTIMP 𝑖 ≤ 𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎 EXECUTA

𝑛𝑟_𝑐𝑟𝑡 ← 𝑖

DACA i=1 ATUNCI

𝑉𝑟𝑖 ← 𝑐𝑟𝑒𝑑𝑖𝑡

𝑐𝑟𝑒𝑑𝑖𝑡 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

ALTFEL

𝑉𝑟𝑖 ← 𝑉𝑟𝑖−1 − 𝑅𝑝𝑖

𝑉𝑟𝑖 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

SFDACA

𝑑𝑜𝑏𝑎𝑛𝑑𝑎
∙ 𝑐𝑟𝑒𝑑𝑖𝑡
𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 ← 12
𝑑𝑜𝑏𝑎𝑛𝑑𝑎 −𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎
1 − (1 + )
12

𝑅𝑝𝑖 ← 𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 − 𝐷𝑖

𝑖 ←𝑖+1

SFCATTIMP

Pentru realizarea funcției grafic_amortismente_egale2


(utilizând iterația cu test inițial) se va urmări algoritmul
acesteia în pseudocod. Contorul buclei iterative - i va avea

80
Programare
valoarea inițială 0. Observați diferențele între cele două
coduri.
Functia grafic_amortismente_egale2(credit, dobanda, perioada)

𝑖←0

CATTIMP 𝑖 < 𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎 EXECUTA

𝑛𝑟𝑐𝑟𝑡 ← 𝑖 + 1

𝑐𝑟𝑒𝑑𝑖𝑡
𝑅𝑝𝑖 ←
𝑝𝑒𝑟𝑖𝑜𝑎𝑑𝑎

DACA i=1 ATUNCI

𝑉𝑟𝑖 ← 𝑐𝑟𝑒𝑑𝑖𝑡

𝑐𝑟𝑒𝑑𝑖𝑡 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

ALTFEL

𝑉𝑟𝑖 ← 𝑉𝑟𝑖−1 − 𝑅𝑝𝑖

𝑉𝑟𝑖 ∙ 𝑑𝑜𝑏𝑎𝑛𝑑𝑎
𝐷𝑖 ←
12

SFDACA

𝑎𝑛𝑢𝑖𝑡𝑎𝑡𝑒𝑖 ← 𝑅𝑝𝑖 + 𝐷𝑖

𝑖 ←𝑖+1

SFCATTIMP

8. Pentru definirea funcțiilor DAE_lei și DAE_euro se vor


utiliza operatorii Add Line, If și otherwise din paleta
Programming. Pentru a trasa graficele, se va defini
variabila luna cu valori între 1 și 12. Se va insera un grafic

81
Îndrumar de laborator
tip XY Plot. Abscisei i se asociază variabila luna, iar pe
ordonată se reprezintă valorile funcțiilor DAE_lei, respectiv
DAE_euro. Se vor adăuga etichete pentru ordonată,
abscisă și titlul graficului. Se vor schimba proprietățile
seriilor prin modificarea coloanelor Legend label, Symbol,
Symbol weight, Line și Line weight. Se va dezactiva
opțiunea Hide Legend. Caracteristicele modificate se pot
vedea în figurile de mai jos:

82
Programare

Rezultate

Sunt prezentate mai jos o parte din rezultatele solicitate în


secțiunea Enunțul și scopul lucrării:
• Definirea variabilelor:

83
Îndrumar de laborator
• Suma primită de persoana fizică:

• Calculul ratelor egale:

• Graficul de rambursare a creditului cu rate egale și


rezultatele totale pe coloanele dobândă,
amortisment și anuitate:

84
Programare

• Rezultatul privind suma de rambursare anticipată:

• Graficul de rambursare a creditului cu


amortismente egale și rezultatele totale pe
coloanele dobândă, amortisment și anuitate:

85
Îndrumar de laborator

• Graficele de rambursare a creditului realizat cu


instrucțiunea de iterație while:

86
Programare

87
Îndrumar de laborator

88
Programare
• Graficele dobânzii anuale efective:

89
Îndrumar de laborator
Concluzii/comentarii

Aplicația Mathcad pune la dispoziția utilizatorilor un modul


de programare, aparent cu funcționalități relativ limitate,
dacă se compară cu facilitățile oferite de limbajele de
programare evoluate din ziua de azi. În ciuda acestei
realități se pot realiza programe complexe utilizând, pe
lângă operatorii din paleta Programming, și funcțiile
disponibile în Mathcad.
În această unitate s-au tratat următoarele probleme:
- Definirea de către utilizator a funcțiilor prin
intermediul operatorilor specifici din paleta
Programming;
- Realizarea graficelor unor funcții definite pe un
domeniu complex.

90

S-ar putea să vă placă și