Download - Objektivat - InfoEkonomikeiefb.weebly.com/uploads/1/4/2/4/14240576/leksionimaster2.docx · Web viewMbetja e pjestimit është shumë e nevojshme në programim. Për shembull, një

Transcript

Leksioni 2Algoritmikë Java I13

Në kapitullin e mëparshëm, ju provuat si të krijoni, kompiloni, dhe ekzekutoni një program në Java. Duke filluar nga ky kapitull, ju do të mësoni si të zgjidhni probleme praktike duke programuar. Nëpërmjet këtyre problemeve, ju do të mësoni tipet primitive të Javës dhe subjekte të lidhur me to, si variablat, konstantet, tipet e të dhënave, operatorët, shprehjet, dhe hyrje dhe daljet (input & output)

Objektivat

· Të shkruhen programe në Java për të realizuar llogaritje të thjeshta.

· Të fusim të dhëna nga konsola duke përdorur klasën Scanner.

· Të përdorim identifikatorë për të emëruar variabla, konstante, metoda, dhe klasa.

· Të përdorim variabla për të rezervuar të dhëna.

· Të programojmë me statement-e dhënje vlerash dhe shprehje dhënje vlerash.

· Të përdorim konstante për të rezervuar të dhëna të përhershme.

· Të deklarojmë tipe primitive të dhënash: byte, short, int, long, float, double, dhe char.

· Të përdorim operatorët Java për të shkruar shprehje numerike.

· Të afishojmë kohën korrente.

· Të përdorim operatorët e shkurtuar.

· Konvertimi i një vlere nga një tip në tjetrin.

· Llogaritja e një pagese kredie.

· Paraqitja e karaktereve duke përdorur tipin char.

· Llogaritja e ndryshimeve monetare.

· Paraqitja e një stringu duke përdorur tipin String.

· Të familjarizohemi me dokumentacionin në Java, stilin e programimit, dhe emërtim konvencionesh.

· Të dallohen gabimet sintaksore, gabimet e ekzekutimit, dhe gabimet logjike dhe gabimet e procesit “debug”.

· (GUI), të realizojmë futje të dhënash duke përdorur kutinë e dialogut JOptionPane.

Prezantim i programimit nëpërmjet një shembulli

Llogaritja e Sipërfaqes së një Rrethi: ky program llogarit sipërfaqen e një rrethi

public class SiperfaqeRrethit {

/** metoda Main */

public static void main(String[] args) {

double rrezja;

double siperfaqja;

// Dhenje vlere rrezes

rrezja = 20;

// llogaritet siperfaqja

siperfaqja = rrezja * rrezja * 3.14159;

// afishohen rezultatet

System.out.println("Siperfaqja e rrethit me rreze " +

rrezja + " eshte " + siperfaqja);

}

}

Alokohet kujtesa për rrezja (nuk ka vlere)

Alokohet kujtesa për siperfaqja (nuk ka vlere)

jepet vlera 20 te rrezja

llogaritet dhe jepet vlera te siperfaqja

afishohet nje mesazh ne konsole

Reading Input from the Console

1. Krijoni një objekt Scanner:

Scanner input = new Scanner(System.in);

2. Përdorni metodat next(), nextByte(), nextShort(), nextInt(), nextLong(), nextFloat(), nextDouble(), or nextBoolean() për të marrë një vlerë string, byte, short, int, long, float, double, ose bool. Për shembull,

System.out.print("fusni një vlerë double: ");

Scanner input = new Scanner(System.in);

Një identifikator është një sekuencë karakteresh që konsiston nga gërmat, shifrat, underscore-t (_), dhe shenja e dollarit.

Një identifikator duhet të fillojë me një germë, një underscore (_), ose një shenjë dollari($). Nuk mund të fillojë me një shifër.

Një identifikator nuk mund të jetë një fjalë e rezervuar. (shih tabelën e mëposhtme të fjalëve të rezervuara në Java).

abstract

assert

boolean

break

Byte

case

catch

char

class

const*

Continue

default

double

do

else

enum

Extends

false

final

finally

float

for

goto*

if

implements

import

instanceof

int

Interface

long

native

new

null

package

Private

protected

public

return

short

static

Strictfp

super

switch

synchronized

this

throw

Throws

transient

true

try

void

volatile

While

Një identifikator nuk mund të jetë true, false, ose null.

Një identifikator mund të ketë një gjatësi të ҫfarëdoshme.

Variablat

// llogarit siperfaqen e pare

rrezja = 1.0;

siperfaqja = rrezja * rrezja * 3.14159;

System.out.println("Siperfaqja eshte " + siperfaqja + " per rrezen "+rrezja);

// llogarit siperfaqen e dyte

rrezja = 2.0;

siperfaqja = rrezja * rrezja * 3.14159;

System.out.println("Siperfaqja eshte " + siperfaqja + " per rrezen "+rrezja);

Deklarimi i Variablave

int x; // Deklarohet x si nje variabel, variabel i plote;

double radius; // Deklarohet rrezja si nje variabël double;

char a; // Deklarohet a si nje variabel karakter;

Statement-et e dhënjes së vlerave variablave

x = 1; // i jepet vlera 1 x-it;

radius = 1.0; // i jepet vlera 1.0 rrezes;

a = 'A'; // i jepet vlera 'A' a-se;

Deklarim dhe inicializim në një hap

int x = 1;

double d = 1.4;

Konstantet

Forma e përgjithëshme e deklarimit të konstanteve:

final datatype CONSTANTNAME = VALUE;

për shembull:

final double PI = 3.14159;

final int SIZE = 3;

Tipet Numerikë të të Dhënave

(floatIntervali negativ:32-bit IEEE 754 -3.4028235E+38 to -1.4E-45intervali pozitiv: 1.4E-45 to 3.4028235E+38) (doubleIntervali negativ:64-bit IEEE 754 -1.7976931348623157E+308 to -4.9E-324intervali pozitiv: 4.9E-324 to 1.7976931348623157E+308) (long–263 to 263–164-bit me shenje(i.e., -9223372036854775808to 9223372036854775807)) (int–231 (-2147483648) to 231–1 (2147483647)32-bit me shenje) (short–215 (-32768) to 215–1 (32767)16-bit me shenje) (byte–27 (-128) to 27–1 (127)8-bit me shenje) (Emri Intervali I vlerave kujtesa e rezeruar)

Operatorët Numerikë

(+ mbledhje 34 + 1 35 - zbritje 34.0 – 0.1 33.9* shumezim 300 * 30 9000/ pjestim 1.0 / 2.0 0.5% mbetje pjestimi 20 % 3 2) (Emri Kuptimi Shembull Rezultati )

Pjestimi i Plotë

5 / 2 jep numrin e plotë 2.

5.0 / 2 jep vlerën double 2.5

5 % 2 jep 1 (mbetja e pjestimit)

Operatori i mbetjes së pjestimit

Mbetja e pjestimit është shumë e nevojshme në programim. Për shembull, një numur ҫift % 2 është gjithmonë 0 dhe një numur tek % 2 është gjithmonë 1. Kështu ju mund të përdorni këtë cilësi ne se numrat janë ҫift ose tek. Supozojmë se sot është e Shtunë dhe ju dhe miku juaj do të takoheni në pas dhjetë ditësh. Ҫfarë dite është pas 10 ditësh? Ju mund të gjeni që dita është e Martë duke përdorur shprehjen e mëposhtme:

(Dita e dyte e javes eshte e Marte ) (Nje jave ka 7 dite) (E Shtuna eshte dita e 6-të e javes) (Pas 10 diteve) ((6 + 10) % 7 is 2)

Problem: Afisho kohën

Të shkruhet një program që nxjerr orët, dhe minutet nga sekondat.

SHENIM

Llogaritjet që përfshijnë numrat me pike notuese janë të përafërt mbasi këta numra nuk rezervohen me preҫizion të plotë. Për shembull,

System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);

afishon 0.5000000000000001, jo 0.5, dhe

System.out.println(1.0 - 0.9);

afishon 0.09999999999999998, jo 0.1. Numrat e plotë rezervohen me preҫizion të plotë. Si rrjedhim, llogaritjet me numra të plotë japin një rezultat të saktë të plotë.

Literalë Numra

Një literal është një vlerë konstante që afishohet direkt në program. Për shembull, 34, 1,000,000, dhe 5.0 janë literalë në statementet që vijojnë:

 

int i = 34;

long x = 1000000;

double d = 5.0;

Literalët e Plotë

Një literal i plotë mund ti jepet si vlerë një variabli integer kur vlera pranohet nga hapësira që variabli zë. Një gabim kompilatori ndodh kur konstantja është shumë e gjërë për tu pranuar nga variabli. Për shembull, statement-i byte b = 1000 do të shkaktonte një gabim kompilimi, mbasi 1000 nuk mund të rezervohet në një variabël të tipit byte.

Një literal i plotë supozohet të jetë i tipit int, vlerat e të cilit janë midis -231 (-2147483648) dhe 231–1 (2147483647). Për të paraqitur një literal të gjatë të plotë, i shtohet një gërmë L ose l. L preferohet se l (gërma e vogël e L) mund të ngatërohet me 1 (shifra një).

Literalët me Presje Notuese

Literalët me presje notuese shkruhen me pikë dhjetore. Apriori, një literal me pikë notuese trajtohet si një vlerë e tipit double. Për shembull, 5.0 konsiderohet një vlerë double, jo një float. Ju mund ta ktheni një numur në float duke shtuar gërmën f ose F, dhe e bëni një numur double duke shtuar gërmën d ose D. për shembull, ju mund të përdorni 100.2f ose 100.2F për një numur float, dhe 100.2d ose 100.2D për një numur double.

Paraqitja Shkencore

Literalët me pike notuese mundet gjithashtu të specifikohen me një paraqitje shkencore, për shembull, 1.23456e+2, ose 1.23456e2, është ekuivalent me 123.456, dhe 1.23456e-2 është ekuivalent me 0.0123456. E (ose e) paraqet një eksponent dhe mund të jetë gërmë e vogël ose e madhe.

Shprehjet Arithmetike

përkthehet në:

(3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)

Si të vlerësohet një shprehje

Megjithëse Java ka mënyrën e vet të vlerësimit të një shprehje, rezultati i shprehjes Java dhe i shprehjes arithmetike korresponduese është i njëjtë. Si rrjedhim, ju thjesht mund të aplikoni veprimet arithmetike për të vlerësuar një shprehje Java.

( (1) parantesat veprimi I pare parë) ( (6) zbritja) ( (5) mbledhja) ( (4) mbledhja) ( (3) shumezimi) ( (2) shumezimi) (3 + 4 * 4 + 5 * (4 + 3) - 1 3 + 4 * 4 + 5 * 7 – 1 3 + 16 + 5 * 7 – 13 + 16 + 35 – 119 + 35 – 1 54 - 1 53)

Problem: Konvertimi i Temperaturave

Të shkruhet një program që konverton një gradë Fahrenheit në gradë Celsius duke përdorur formulën:

Problem: Të afishohet koha Korrente

Të shkruhet një program që afishon kohën korrente në GMT në formatin orë:minuta:sekonda si 1:45:19.

Metoda currentTimeMillis në klasën System kthen kohën korrente në milisekonda që nga mesnata, Janar 1, 1970 GMT. (1970 ishte viti kur sistemi operativ Unix u paraqit formalisht) Ju mund ta përdorni këtë metodë për të marrë kohën korrente, dhe pastaj të llogarisni sekondat, minutat dhe orët korrente si vijon.

(Koha e kaluar ) (System.currentTimeMills()) (Koha Korrente) (Koha)

(Koha e Unix 01-01-197000:00:00 GMT)

Operatorët e Shkurtuar të Dhënjes së Vlerës

Operatori shembull ekuivalenti

+= i += 8 i = i + 8

-= f -= 8.0 f = f - 8.0

*= i *= 8 i = i * 8

/= i /= 8 i = i / 8

%= i %= 8 i = i % 8

Operatorët e Rritjes dhe Zbritjes

Operatori Emri Përshkrimi

++var pararritje shprehja (++var) shton var me 1 dhe vlerëson vlerën e re të var pas shtimit.

var++ pasrritje shprehja (var++) vlerëson vlerën origjinale të var dhe pastaj e rrit atë me 1.

--var parazbritje shprehja (--var) zbret nga var 1 dhe vlerëson vlerën e re të var pas zbritjes.

var-- paszbritje shprehja (var--) vlerëson vlerën origjinale të var dhe pastaj zbret 1 prej saj.

(int newNum = 10 * i; i = i + 1;) (I njëjti efekt si) (int i = 10;int newNum = 10 * i++;)

(i = i + 1;int newNum = 10 * i; ) (I njëjti efekt si) (int i = 10;int newNum = 10 * (++i);)

Duke përdorur operatorët e rritjes dhe zbritjes shprehjet bëhen më të shkurtëra, por më komplekse dhe të vështira për tu lexuar. Shmangni përdorimin e tyre në shprehjet që modifikojnë shumë variabla, ose të njëjtin variabël shumë herë si në këtë rast: int k = ++i + i.

Shprehjet e Dhënjes së Vlerës dhe Statement-et e Dhënjes së Vlerës

Vetëm tipet e mëposhtme të shprehjeve mund të jenë statement-e:

variabel op= shprehje; // ku op eshte +, -, *, /, or %

++variabel;

variabel++;

--variabel;

variabel--;

Konvertimet e Tipeve Numerikë

Konsiderojmë statement-et që vijojnë:

byte i = 100;

long k = i * 3 + 4;

double d = i * 3.1 + k / 2;

Rregullat e Konvertimit

Kur realizojmë një veprim binar që përfshin dy operandë të tipeve të ndryshëm, Java automatikisht konverton operandin bazuar në rregullat që vijojnë:

 

1.    Në se një nga operandët është double, tjetri konvertohet në double.

2.    përndryshe, në se një nga operandët është float, tjetri konvertohet në float.

3.    përndryshe, në se njëri nga operandët është long, tjetri konvertohet në long.

4.    përndryshe, të dy operandët konvertohen në int.

Ndryshimi (cast) i Tipit

Ndryshimi i tipit implicit

double d = 3; (zgjerim i tipit)

Ndryshimi i tipit eksplicit

int i = (int)3.0; (ngushtim i tipit)

int i = (int)3.9; (pjesa thyesore eliminohet)

ҫfarë është gabim? int x = 5 / 2.0;

( kahja e zgjerimit) (byte, short, int, long, float, double)

Problem: Mbajtja e dy shifrave pas pikës dhjetore

Të shkruhet një program që afishon taksën e shitjeve me dy shifra pas pikës dhjetore.

Problem:Llogaritja e Pagesave të Kredive

Ky program lejon përdoruesin të fusë interesin, numrin e viteve, dhe totalin e kredisë dhe llogarit pagesën mujore dhe pagesën totale.

Tipi i të Dhënave Karakter

char letter = 'A'; (ASCII) 4 shifra hekzadecimale

char numChar = '4'; (ASCII)

char letter = '\u0041'; (Unicode)

char numChar = '\u0034'; (Unicode)

SHENIM: operatorët e rritjes dhe zbritjes mundet gjithashtu të përdoren për variablat char për të marrë karakterin Unicode paraardhës ose pasardhës. Për shembull statement-i që vijon afishon karakterin b.

char ch = 'a';

System.out.println(++ch);

Formati Unicode

Karakteret Java përdorin Unicode, një skemë kodimi16-bit-she e vendosur nga Konsorciumi i Unicode për të mbështetur shkëmbimin, procesimin dhe afishimin e teksteve të shkruar në gjuhët e ndryshme të botës. Unikodi merr dy byte të paraprira nga \u, të shprehura me katër numra hekzadecimalë nga '\u0000' në '\uFFFF'. Kështu, Unicode-i mund të paraqesë 65535 + 1 karaktere.

Unicode-i \u03b1 \u03b2 \u03b3 për tre gërma greke

Problem: Afishimi i Unicode-ve

Të shkruhet një program që afishon dy gërmat greke ΨΩ

Sequencat “Escape” për karakteret special

përshkrimi sequenca “Escape” Unicode

Backspace \b \u0008

Tab \t \u0009

Linefeed \n \u000A

Carriage return \r \u000D

Backslash \\ \u005C

Single Quote \' \u0027

Double Quote \" \u0022

Bashkësia e Karaktereve ASCII

Bashkësia e karaktereve ASCII është një nënbashkësi e Unicode-it nga \u0000 në \u007f

Ndryshimi midis Tipeve Karaktere dhe Tipeve Numerikë

int i = 'a'; // i njejte me int i = (int)'a';

char c = 97; // i njejte me char c = (char)97;

Tipi String

Tipi char paraqet vetëm një karakter. Për të paraqitur një string karakteresh, përdoret tipi i quajtur String. Per shembull,

 

String mesazhi = "Pershendetje nga Java";

 

String është aktualisht një klasë e paracaktuar në një librari të Java-ës si dhe klasa System dhe klasa JOptionPane. Tipi String nuk është një tip primitive. Njihet si tip reference. Një klasë Java mund të përdoret si një tip reference për një variabël. Do ti shohim këto lloj tipesh në kapitujt pasardhës. Por për momentin mjafton të dimë si të deklarojmë një variabël String, si të jepet një vlerë këtij variabli, dhe si mund të bashkohen stringjet.

Bashkimi i Stringjeve (Concatenation)

// Tre stringje bashkohen

String mesazhi = "Pershendetje " + "nga " + "Java";

 

// Stringu Kapitulli bashkohet me numrin 2

String s = "Kapitulli" + 2; // s behet Kapitulli2

 

// Stringu Shtesa bashkohet me karakterin B

String s1 = "Shtesa" + 'B'; // s1 behet ShtesaB

Stili i Programimit dhe Dokumentacioni

Komente të përshtatshëm

Konvencione në lidhje me emërtimet

Fillimi i rreshtave jo në të njëjtin nivel (Indentation) dhe rreshtat hapësirë

Stili i blloqeve

Komente të përshtatshëm

Përfshihet një përmbledhje në krye të programit për të shpjeguar ҫfarë programi bën, cilësitë e tij më të rëndësishme, strukturat e të dhënave që e mbështesin atë, teknikat që ai përdor. Përfshin emrin tuaj, data, dhe një përshkrim i shkurtër në fillim të programit.

Konvencione në lidhje me emërtimet

Zgjidhni emra me kuptim dhe përshkrues.

Variablat dhe emrat e metodave:

Përdorni gërma të vogla. Në se emri përbëhet nga disa fjalë, lidhini ato në një, përdorni gërmat e vogla për të parën, dhe germa e pare e të tjerave të jetë e madhe. Për shembull, variablat rrezja dhe siperfaqja, dhe emri i një metode mund te jetë llogaritSiperfaqen.

Emrat e klasave:

· Gërma e parë e emrit të një klase duhet të jetë e madhe. Për shembull, një emër klase mund të jetë LlogaritSiperfaqen.

Konstantet:

· Gërmat e konstanteve duhet të jenë të mëdha, dhe përdorni underscore-t për të lidhur fjalët. Për shembull, konstantja PI ose MAX_VALUE

“Indentation” i përshtatshëm dhe Hapësirat

Indentation

Dy hapësira.

Hapësira

Përdoret një rresht bosh për të ndarë segmented e një kodi

Stilet e Blloqeve

Përdorni stilin fund-i-rreshtit për kllapat.

(Rreshti-tjeterstyle) (public class Test { public static void main(String[] args) { System.out.println("Stili Bllok "); }}) (public class Test{ public static void main(String[] args) { System.out.println("Stili Bllok"); }})

(Stili fund-i-rreshtit )

Gabimet e Programimit

Gabime sintakse

Dallohen nga kompilatori

Gabime ekzekutimi

Shkaktojnë ekzekutimin e programit

Gabimet llogjike

Prodhon rezultate jo korrekte

Gabime Sintakse

public class GabimeSintakse {

public static void main(String[] args) {

i = 30;

System.out.println(i + 4);

}

}

Gabime Ekzekutimi

public class GabimeEkzekutimi {

public static void main(String[] args) {

int i = 1 / 0;

}

}

Gabime Logjike

public class GabimeLogjike {

// percakton ne se nje numur eshte ndermjet 1 dhe 100 duke I

// perfshire ata

public static void main(String[] args) {

// futje e nje numri

String input = JOptionPane.showInputDialog(null,

"Fusni nje numur te plote:",

"GabimeLogjike", JOptionPane.QUESTION_MESSAGE);

int numur = Integer.parseInt(input);

 

// Afishohet rezultati

System.out.println("Numri eshte midis 1 dhe 100, " +

"duke i perfshirë ata? " + ((1 < numur) && (numur < 100)));

 

System.exit(0);

}

}

Gjetja dhe Heqja e Gabimeve (Debugging)

Gabimet logjike quhen bug-e. Procesi i gjetjes dhe i korrektimit të gabimeve quhet “debugging”. Një metodologji e pergjithshme e “debugging” është kombinimi i metodave për të përdorur një kombinim metodash për të ngushtuar pjesën e programit ku kërkohet të gjendet gabimi. Ju mund të ndiqni hap pas hapi programin (d.m.th., të kapim gabimin duke lexuar programin), ose ju mund të fusni statement-e afishimi me qëllim që të afishohen vlerat e variablave ose rrjedhën e ekzekutimit të programit. Kjo metodologji mund të punojë për një kohë të shkurtër, për një program të thjeshtë. Por për një program të madh, kompleks, metodologjia më efektive për “debugging” është përdorimi i utilitarit të procesit të “debugging”.

“Debugger” është një program që lehtëson fasilitetet e “debugging”. Ju mund të përdorni një “debugger” :

Për të ekzekutuar një statement në një moment.

Për tu futur brenda ose kapërcyer një metodë.

Vendosim pikat e ndalimit (breakpoints).

Afishohen variablat.

Afishohet stiva(stack) e thirrjeve.

Modifikohen variablat.

Futja e të dhënave me JOptionPane

Ky material paraqet dy mënyra për të siguruar futjen e të dhënave.

1. Duke përdorur klasën Scanner (futja nga konsola)

2. Duke përdorur kutitë e dialogut JOptionPane të dialogut

Marrja e të dhënave nga kutitë e dialogut

String input = JOptionPane.showInputDialog("te futet nje e dhenet");

String string = JOptionPane.showInputDialog(

null, "Mesazhi prompt", "Titulli Dialogut",

JOptionPane.QUESTION_MESSAGE);

Dy Mënyra per të Thirrur një Metodë

Ka disa mënyra për të përdorur metodën showInputDialog. Për momentin ju duhet të dini vetëm menyrat se si thirret ajo.

Njëra është kjo:

String string = JOptionPane.showInputDialog(null,

x,y,JOptionPane.QUESTION_MESSAGE);

ku x është një string për mesazhin e “promting”, dhe y është një string për titullin e kutisë së dialogut.

Mënyra tjetër është një statement si:

JOptionPane.showInputDialog(x);

ku x është një string për mesazhin “prompt”.

Për të afishuar një rezultat me kutine e dialogut përdoret statement-i:

JOptionPane.showMessageDialog(null, "Rezultati eshte "+rezultati,JOptionPane.PLAIN_MESSAGE);

Konvertimi i Stringjeve në të Plotë

E dhëna hyrëse që kthehet nga kotia e dialogut është një string. Në se ju futni një vlerë numerike, të tillë si 123, ajo kthen “123”. Për të marrë numrin, ju dihet të konvertoni stringun në një numur.

 Për të konvertuar stringun në një vlerë int, ju mund të përdorni metodën statike parseInt në klasën Integer si vijon:

 

int intValue = Integer.parseInt(intString);

 

Converting Strings to Doubles

Për të konvertuar një string në një vlerë double, ju mund të përdorni metodën statike parseDouble në klasën Double si vijon:

 

double doubleValue =Double.parseDouble(doubleString);

 

ku doubleString është një string i tillë si “123.45”.

Problem: Të Llogariten Pagesat e Kredisë duke Përdorur Kutitë e Dialogut

I njëjtë me programin e mëparshëm të llogaritjes që pagesave të kredisë, me ndryshimin që futja e të dhënave bëhet me kutinë e dialogut dhe rezultati afishohet në kutinë dalëse (JOptionPane.showMessageDialog(null, s); ku s është rezultati)

Udhezim: nga shembulli e mëposhtëm shihni si mund të ngrini në fuqi

public class FindPowerExample {

public static void main(String[] args) {

/*

* To find a value raised to power of another value, use

* static double pow(double d1, double d2) method of Java Math class.

*/

//returns 2 raised to 2, i.e. 4

System.out.println(Math.pow(2,2));

//returns -3 raised to 2, i.e. 9

System.out.println(Math.pow(-3,2));

}

}

)

32

)(

(

9

5

-

=

fahrenheit

celsius

12

)

int

1

(

1

1

int

´

+

-

´

=

ve

numriIVite

eresiMujor

eresiMujor

le

krediaTota

re

pagesaMujo

12

)

int

1

(

1

1

int

´

+

-

´

=

ve

numriIVite

eresiMujor

eresiMujor

le

krediaTota

re

pagesaMujo

)

9

4

(

9

)

)(

5

(

10

5

4

3

y

x

x

x

c

b

a

y

x

+

+

+

+

+

-

-

+