objektivat - infoekonomikeiefb.weebly.com/uploads/1/4/2/4/14240576/leksionimaster2.docx · web...
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
+
+
+
+
+
-
-
+