Programim 1 - Seanca 03.pdf
-
Upload
william-smith -
Category
Documents
-
view
64 -
download
6
description
Transcript of Programim 1 - Seanca 03.pdf
SeancaSeanca 3: 3: ShprehjetShprehjet dhedhe InteraktivitetiInteraktivitetiSeancaSeanca 3: 3: ShprehjetShprehjet dhedhe InteraktivitetiInteraktiviteti
Literatura KryesoreLiteratura Kryesore: :
Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects
nganga Tony Gaddis, Judy Walters, Tony Gaddis, Judy Walters, nganga Tony Gaddis, Judy Walters, Tony Gaddis, Judy Walters, dhedhe Godfrey Godfrey MugandaMuganda
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit
TematikaTematikaTematikaTematika
3.1 Objekti cincin3.1 Objekti cincin
3.2 Shprehje Matematikore3.3 Kthim i Nënkuptuar (Implicit) i Tipit3.3 Kthim i Nënkuptuar (Implicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.5 Overflow dhe Underflow3.6 Emërtimi i Konstanteve3.6 Emërtimi i Konstanteve
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-2
TematikaTematika (V(Vazhdimazhdim ))TematikaTematika (V(Vazhdimazhdim ))
3.7 Përcaktim i Shumëfishtë dhe i Kombinuar3.7 Përcaktim i Shumëfishtë dhe i Kombinuar3.8 Formatimi i Daljes3.9 Puna me Objekte të tipit Karakter dhe3.9 Puna me Objekte të tipit Karakter dhe
String3.10 Përdorimi i C-Strings3.11 Funksione të tjera nga Libraria3.11 Funksione të tjera nga Libraria
Matematikore3.12 Hyrje në Skedare
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-3
3.12 Hyrje në Skedare
3.1 3.1 ObjeObjekktt i i cincin3.1 3.1 ObjeObjekktt i i cincin
• Objekti Standard inputinput• Njëlloj si coutcout, kërkon skedarin iostreamiostream
• Përdoret për të lexuar hyrjen nga tastiera• Përdoret për të lexuar hyrjen nga tastiera• Si punon cin >> v :
– Kapërcen hapësirat e bardha (spaces, tabs, line – Kapërcen hapësirat e bardha (spaces, tabs, line feeds)
– Lexon karakteret e hyrjes të pajtueshme me tipin e deklaruar të ve deklaruar të v
– Ndalon ekzaktësisht pasi lexohen këto karaktere.– Asgje nuk lexohet gjersa të kalohet një line feed
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-4
– Asgje nuk lexohet gjersa të kalohet një line feed
ObjeObjekktt i i cincinObjeObjekktt i i cincin
• Hyrja e përdoruesit shkon nga tastiera në • Hyrja e përdoruesit shkon nga tastiera në një buffer hyrje, në të cilin ruhet si një varg karaktereshkarakteresh
•• cincin shndërron këtë varg karakteresh në një tip që përshtatet me ndryshoren: tip që përshtatet me ndryshoren:
int lartesi;cout << « Sa e lartë është dhoma ? ";cout << « Sa e lartë është dhoma ? ";cin >> lartesi; // pret një int
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-5
ObjeObjekktt i i cincin
• Mund të përdoret për hyrje të vlerave të shumëfishta
ObjeObjekktt i i cincin
shumëfishtacin >> lartesi >> gjeresi;
• Vlerat e shumëfishtë nga tastiera duhet të ndahen • Vlerat e shumëfishtë nga tastiera duhet të ndahen me hapësirë ose [Enter]
• Duhet shtypur [Enter] pas shtypjes së vlerës së • Duhet shtypur [Enter] pas shtypjes së vlerës së fundit
• Vlerat e shumëfishtë nuk është e nevojshme të • Vlerat e shumëfishtë nuk është e nevojshme të jenë të të njejtit tip
• Rradha është e rendësishme; vlera që kalon e para
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-6
• Rradha është e rendësishme; vlera që kalon e para ruhet në ndryshoren e parë, e kështu me rradhë.
3.2 3.2 Shprehje Shprehje MatematiMatemati keke3.2 3.2 Shprehje Shprehje MatematiMatemati keke
• Një shprehje mund të jetë një konstante, • Një shprehje mund të jetë një konstante, një ndryshore, ose një kombinim konstantedhe ndryshore të kombinuar me operatorëdhe ndryshore të kombinuar me operatorë
• Mund të krijohen shprehje komplekse duke përdorur operatorë të shumtë matematikorëpërdorur operatorë të shumtë matematikorë
• Shembuj shprehjesh matematike:2 2 lartesia + b / c
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-7
a + b / c
Duke Përdorur Shprehje Duke Përdorur Shprehje MatematiMatemati kekeDuke Përdorur Shprehje Duke Përdorur Shprehje MatematiMatemati keke
• Mund të përdoren në instruksione përcaktimi, • Mund të përdoren në instruksione përcaktimi, me coutcout, dhe tipe të tjera instruksionesh
• Shembuj:
siperfaqe = 2 * PI * r eze ;
Kjo është një shprehje
siperfaqe = 2 * PI * r eze ;cout << «kufiri është: " << (2*(l+w));
Këto janë shprehje
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-8
RradhaRradha e Veprimevee VeprimeveRradhaRradha e Veprimevee VeprimeveNë një shprehje me më shumë se 1 operatorë, vlerësojmë me këtë rradhë:vlerësojmë me këtë rradhë:
( )( ) veprimet brenda kllapaveKryejmë së pari ( )( ) veprimet brenda kllapave
-- (mohimin unar) me rradhë,nga e majta në të djathtë
Kryejmë së pari
Kryejmë Pastajnga e majta në të djathtë
* /* / % % me rradhë, nga emajta në të djathtë
Kryejmë Pastajmajta në të djathtë
++ -- me rradhë, nga e majtanë të djathtë
Kryejmë së fundi
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-9
në të djathtë
Vlerësimi i Vlerësimi i RradhesRradhes në një Shprehjenë një ShprehjeVlerësimi i Vlerësimi i RradhesRradhes në një Shprehjenë një Shprehje
( 4 – 6 + 3) * 2 – 3 * 5 // kryejmë kllapat( 4 – 6 + 3) * 2 – 3 * 5 // kryejmë kllapat
( -2 + 3 ) * 2 – 3 * 5 // nga e majta në// të majtë
( 1 ) * 2 – 3 * 5( 1 ) * 2 – 3 * 5
1 * 2 – 3 * 5
2 – 3 * 5 // ** ka përparësi
2 - 15
-13
SEKRETI: Krahaso operatorin më majtas me atë që vjen për përparësi. Për përparësi të njejtë -> shoqërohe t,zakonisht nga e majta në të djathtë .
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-10
zakonisht nga e majta në të djathtë .
Shoqërimi i Shoqërimi i OperatorOperator ëveëveShoqërimi i Shoqërimi i OperatorOperator ëveëve
•• -- (mohimi unar) shoqëron nga e djathta në të majtë•• -- (mohimi unar) shoqëron nga e djathta në të majtë•• ** / % + / % + -- të gjitha shoqërohen nga e
majta në të djathtëmajta në të djathtë•• (( )) kllapat mund të përdoren për ndryshimin e
rradhës së veprimeverradhës së veprimeve2 + 2 * 2 – 2 = 4
(2 + 2) * 2 – 2 = 6(2 + 2) * 2 – 2 = 6
2 + 2 * (2 – 2) = 2
(2 + 2) * (2 – 2) = 0
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-11
(2 + 2) * (2 – 2) = 0
Shprehjet Shprehjet AlgAlg jjebriebri kkeeShprehjet Shprehjet AlgAlg jjebriebri kkee
• Shumëzimi kërkon një operator • Shumëzimi kërkon një operator Siperfaqe = lw shkruhet si Siperfaqe = l * w;
• Nuk ka operator të ngritjes në fuqi• Nuk ka operator të ngritjes në fuqiSiperfaqe= s2 shkruhet si Siperfaqe = pow(s, 2);
(shenim: pow kërkon skedarin e kokës cmath )(shenim: pow kërkon skedarin e kokës cmath )
• Kllapat mund të nevojiten për të ruajtur rradhën e veprimeveveprimeve
shkruhet sim = (y2 - y1)/(x2 - x1);12
12
xx
yym
−−=
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-12
m = (y2 - y1)/(x2 - x1);12 xx −
3.3 3.3 KthimKthim i Nënkuptuari Nënkuptuar (Implicit) i Tipit(Implicit) i Tipit3.3 3.3 KthimKthim i Nënkuptuari Nënkuptuar (Implicit) i Tipit(Implicit) i Tipit
• Veprimet kryhen gjithmonë midis operandeve të të njejtit tipoperandeve të të njejtit tip
• Nëse nuk janë të të njejtit tip, C++ do të shndërrojë automatikisht njerin në tipin e shndërrojë automatikisht njerin në tipin e tjetrit
• Kjo mund të ndikojë mbi rezultatin e kalkulimeve
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-13
kalkulimeve
HierarHierar kiakia e Tipit të e Tipit të tëtë DDhënavehënaveHierarHierar kiakia e Tipit të e Tipit të tëtë DDhënavehënave
Më i larti long doubleMë i larti long doubledoublefloatfloatunsigned longlonglongunsigned intint
Më i ulëti
I vlerësuar nga numri më i madh që mund të mbajë
intchar
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-14
I vlerësuar nga numri më i madh që mund të mbajë
ShtrengimShtrengim TTiipp iiShtrengimShtrengim TTiipp ii
•• ShtrengimShtrengim : kthim automatik i një operandi •• ShtrengimShtrengim : kthim automatik i një operandi nga një tip të dhënash në një tjetër
•• PromoPromo vimvim : kthim në një tip më të lartë•• PromoPromo vimvim : kthim në një tip më të lartë
– Zakonisht automatikisht– Zakonisht automatikisht
•• UljeUlje : kthim në një tip më të ulët
– Jo automatikisht – përdoret cast për ta bërë.
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-15
RRregullaregulla ShtrengimiShtrengimiRRregullaregulla ShtrengimiShtrengimi
1) charchar , shortshort , unsigned shortunsigned short1) charchar , shortshort , unsigned shortunsigned shortpromovohen automatikisht në intint
2) Kur operojmë mbi vlera të tipeve të ndryshme të të dhënave, më ivoglipromovohet tek tipi më i lartë.promovohet tek tipi më i lartë.
3) Kur përdorim operatorin ==, tipi i 3) Kur përdorim operatorin ==, tipi i shprehjes në të djathtë do të kthehet në tipin e ndryshores në të majtë
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-16
3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit
• Quhet gjithashtu type casting• Quhet gjithashtu type casting
• Përdoret për shndërrime manuale të tipit të të dhënavetë dhënave
• Sintaksastatic_cast< tipi>( shprehje)
• Shembull: • Shembull: cout << static_cast<char>(65);
// Afishon 'A'
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-17
// Afishon 'A'
Shembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime Tipi
char ch = 'C';
cout << ch << " ruhet si "
<< static_cast<int>(ch);
double siperf;sasia = static_cast<int>( siperf /500);sasia = static_cast<int>( siperf /500);
int shuma, nr;
double mes;double mes;
mes = static_cast<double>(shuma)/nr;
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-18
Kthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të Vjetër
double V el li mi = 21.58;double V el li mi = 21.58;int intVell1, intVell2;intVell1 = (int) Vellimi;
// Stili - C i kthimit// Stili - C i kthimitintVel2 = int (Volume);
// Stili p restandard C++ i kthimit// Stili p restandard C++ i kthimit
• Sipas StilitStilit--CC , kthimi përdor shënim me prefix• Sipas pprestandardrestandard itit C++C++, kthimi përdor shënim • Sipas pprestandardrestandard itit C++C++, kthimi përdor shënim
funksional•• static_caststatic_cast është standardi aktual
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-19
3.5 Overflow d3.5 Overflow d hehe UnderflowUnderflow3.5 Overflow d3.5 Overflow d hehe UnderflowUnderflow
• Ndodhin kur jepet një vlerë që është shumë e madhe (overflow) ose shumë e vogële madhe (overflow) ose shumë e vogël(underflow) për t’u mbajtur nga një ndryshore
• Ndryshorja përmban vlerë që «mbështillet • Ndryshorja përmban vlerë që «mbështillet rreth» bashkësisë së vlerave të mundshme
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-20
8 Bit Overflow dhe Underflow: -128..127 rangu i një char
0-1 01
2
3
-1-2
-3
-4
additionsubtraction MbledhjeZbritje
3
4
...-126
...
-4
...
125
126
127-128
-127
-126
127-128
overflowunderflow
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-21
Shembull me Shembull me OverflowOverflowShembull me Shembull me OverflowOverflow
// Krijoni një short int të ini c ializ uar// Krijoni një short int të ini c ializ uar//në vlerën më të madhe që mund të mbajë
short int numri = 32767;
cout << num ri ; // Afishon 32767 cout << num ri ; // Afishon 32767 numri = numri + 1;cout << num ri ; // Afishon - 32768cout << num ri ; // Afishon - 32768
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-22
Menaxhimi iMenaxhimi i OverflowOverflow ddhehe UnderflowUnderflowMenaxhimi iMenaxhimi i OverflowOverflow ddhehe UnderflowUnderflow
Sistemet e ndryshme e menaxhojnë Sistemet e ndryshme e menaxhojnë problemin ndryshe. Ato mund
– të afishojnë paralajmërim / mesazh gabimi– të afishojnë paralajmërim / mesazh gabimi
– të afishojnë një dritare dialoguese dhe të pyesin çfarë të bëjnëpyesin çfarë të bëjnë
– të ndalojnë programin
– të vazhdojnë ekzekutimin me vlerat jo korrekte
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-23
3.6 3.6 Emërtimi iEmërtimi i KKonstantonstant eveeve3.6 3.6 Emërtimi iEmërtimi i KKonstantonstant eveeve
• Quhen gjithashtu ndryshore konstante• Quhen gjithashtu ndryshore konstante
• Ndryshoret përmbajtja e të cilavenuk mund të ndryshohet gjatë ekzekutimit të programittë ndryshohet gjatë ekzekutimit të programit
• Përdoren për pasqyrimin e vlerave konstante me emra përshkrues
const double R_TAKSES = 0.0675;const double R_TAKSES = 0.0675;const int NUM_SHTETEVE = 50;
• Zakonisht emërtohen me shkronja të mëdha
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-24
• Zakonisht emërtohen me shkronja të mëdha
constconst vs. vs. #define#defineconstconst vs. vs. #define#define
#define#define#define#define– Emërtimi i konstanteve sipas Stilit-C
#define NUM_STATES 50këtu këtu nnukuk
vihetvihet ;;#define NUM_STATES 50
– Interpretohet nga para-përpunuesi dhe jo nga kompilatori
– Nuk zë vend në kujtesë si një ndryshore konstante e përcaktuar me constconst
– Në vend të saj, bën që të ndodhë një zëvendë-sim tekstual. Në shembullin e mësipërm, çdondëshje e NUM_STATESnë program do të zëve-
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-25
ndëshje e NUM_STATESnë program do të zëve-ndësohet nga 50
3.7 3.7 DeklarDeklarimim ii ShumëfishtëShumëfishtëdhedhe ii KombinuarKombinuardhedhe ii KombinuarKombinuar
• Operatori i dhënies së vlerës (=) mund të përdoret më shumë se një herë në të përdoret më shumë se një herë në të njëjtën shprehjex = y = z = 5;x = y = z = 5;
• Shoqëron nga e djathta në të majtëx = (y = (z = 5));x = (y = (z = 5));
Kryhet i Kryhet i Kryhet i3-ti 2-ti 1-ri
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-26
3-ti 2-ti 1-ri
Përcaktim i KPërcaktim i K ombinombin uaruarPërcaktim i KPërcaktim i K ombinombin uaruar
• Zbaton një veprim aritmetik në një ndry-shore dhe rezultatin e tij e përcakton si shore dhe rezultatin e tij e përcakton si vlerë të re të ndryshores
• Operatorët: += += -- = *= /= %== *= /= %=• Operatorët: += += -- = *= /= %== *= /= %=
• Shembull: shuma += sasia;
është shkurtim përshuma = s huma + sasia ;
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-27
shuma = s huma + sasia ;
Shembuj të tjerëShembuj të tjerë
x += 5; nënkupton x = x + 5;x += 5; nënkupton x = x + 5;
x -= 5; nënkupton x = x – 5;
x *= 5; nënkupton x = x * 5;x *= 5; nënkupton x = x * 5;
x /= 5; nënkupton x = x / 5;
x %= 5; nënkupton x = x % 5;x %= 5; nënkupton x = x % 5;
Vlerësohet kompletë ana e djathtë para se të kryhet veprimi i përcaktimit të kombinuar.Vlerësohet kompletë ana e djathtë para se të kryhet veprimi i përcaktimit të kombinuar.
x *= a + b; nënkupton x = x * (a + b);
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-28
x *= a + b; x = x * (a + b);
3.8 3.8 FormatiFormati mi i Daljesmi i Daljes3.8 3.8 FormatiFormati mi i Daljesmi i Daljes
• Për kontrollin e paraqitjes së Daljes për të • Për kontrollin e paraqitjes së Daljes për të dhëna numerike dhe të tipit string mund të kontrollohetkontrollohet– madhësia (size)– pozicioni– pozicioni– numri i shifrave
• Nevojitet skedari i kokës iomanipiomanip• Nevojitet skedari i kokës iomanipiomanip
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-29
ManipulatorManipulator ë Rrjedhe (ë Rrjedhe ( StreamStream ))ManipulatorManipulator ë Rrjedhe (ë Rrjedhe ( StreamStream ))
• Përdoret për kontrollin e veçorive të daljes • Përdoret për kontrollin e veçorive të daljes së një fushe
• Disa ndikojnë vetëm mbi afishimin e vlerës • Disa ndikojnë vetëm mbi afishimin e vlerës pasardhëse– setw ( x) : Printon një fushë në të paktën– setw ( x) : Printon një fushë në të paktën xx
hapësira gjerësi. Përdor më shumë hapësira nëse gjerësia e fushës së përcaktuar nuk është nëse gjerësia e fushës së përcaktuar nuk është mjaft e madhe.
• Nevojitet #include < iomanip >
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-30
• Nevojitet #include < iomanip >
ManipulatorëManipulatorë RrjedheRrjedhe (Stream)(Stream)ManipulatorëManipulatorë RrjedheRrjedhe (Stream)(Stream)
Disa ndikojnë mbi vlerat gjer sa të ndryshohen përsëripërsëri–– fixedfixed : Përdor shënimin decimal (jo shenimin-E) për
vlera me pikë të levizshme (floating-point).vlera me pikë të levizshme (floating-point).
–– setprecisionsetprecision(x) (x) :• Kur përdoret me fixedfixed , printon vlerat floating-point duke • Kur përdoret me fixedfixed , printon vlerat floating-point duke
përdorur x shifra pas pikës dhjetore.• Pa fixedfixed , printon vlerën floating-point duke përdorur x shifra
të rendësishme.
–– showpointshowpoint : Printon gjithmonë dhjetorë për vlerafloating-point.
–– left, rightleft, right : drejtvendosje e vlerës në të majtë-,
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-31
–– left, rightleft, right : drejtvendosje e vlerës në të majtë-,në të djathtë
Shembuj Shembuj ManipulManipul imiimiShembuj Shembuj ManipulManipul imiimi
const float e = 2.718;
float vlera = 18.0; Afishoncout << setw(8) << e << endl; ^^^2.718
cout << left << setw(8) << e
<< endl; 2.718^^^<< endl; 2.718^^^cout << setprecision(2);
cout << e << endl; 2.7cout << e << endl; 2.7
cout << fixed << e << endl; 2.72
cout << setw(6) << vlera ; ^18.00
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-32
cout << setw(6) << vlera ; ^18.00
3.9 Puna me Objekte të tipit3.9 Puna me Objekte të tipitKarakter dhe StringKarakter dhe StringKarakter dhe StringKarakter dhe String
• char : mban një karakter të vetëm
• string : mban një sekuencë karakteresh
• Të dy mund të përdoren në instruksione • Të dy mund të përdoren në instruksione përcaktimi
• Të dy mund të afishohen me coutcout dhe <<<<
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-33
Hyrje me Hyrje me StringStringHyrje me Hyrje me StringString
Leximi në një objekt të tipit stringstring str;string str;
cin >> str; // Lexon në një string // pa hapësira boshe// pa hapësira boshe
getline(cin, str); // Lexon në një string// që mund të
getline(cin, str);// që mund të // përmbajë hap. boshe
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-34
Hyrje KHyrje K araarakkterter iiHyrje KHyrje K araarakkterter ii
Leximi i një karakteri
char ch;char ch;
cin >> ch; // Lexon çdo karakter jo-boshcin >> ch; // Lexon çdo karakter jo-bosh
cin.get(ch); // Lexon çdo karakter
cin.ignore(); // Kapërcen mbi karakterin// tjetër të buferit të hyrjes
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-35
OperatorOperatorë për Vargjet (ë për Vargjet (StringStrings)s)
== jep një vlerë në një vargstring fjalet ;string fjalet ;fjalet = "i shijshem";
++ Bashkon dy vargje së bashkustring s1 = "Hot", s2 = "dog";string ushqim = s1 + s2;
// ushqim = "hotdog"
+=+= Lidh një varg në fund të një tjetriushqim += fjalet ;
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-36
ushqim += fjalet ;// ushqim tani = "Hotdog i shijshem"
3.10 3.10 PërdorimiPërdorimi ii CC--StringsStrings3.10 3.10 PërdorimiPërdorimi ii CC--StringsStrings
• C-string ruhen si matrica karakteresh• Programuesi duhet të japë numrin maksimal të • Programuesi duhet të japë numrin maksimal të
karakterëve gjatë deklarimitconst int MADHESI = 5;const int MADHESI = 5;char temp[MADHESI] = "Hot";
• Karakteri NULL (NULL ( \\00 ) ) vendoset pas karakterit të fundit për të shenuar fundin e vargutfundit për të shenuar fundin e vargut
• Programuesi duhet të sigurohet që matrica është H o t \0
• Programuesi duhet të sigurohet që matrica është mjaft e madhe për përdorimin e deshirueshëm; temp mund të mbajë gjer në 4 karaktere plus \\ 00 .
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-37
temp mund të mbajë gjer në 4 karaktere plus \\ 00 .
Hyrje në një Hyrje në një CC--StringString• Leximi në një C-string
const int MADHESI = 10;
char Cstr[MADHESI];
cin >> Cstr; // Lexon në një C-string pa karaktere// boshe. Do të shkruajë pas fundit// boshe. Do të shkruajë pas fundit// të matricës nëse vargu i karaktereve// të hyrjes është shumë i gjatë.
cin.getline ( Cstr , 10);cin.getline ( Cstr , 10);
// Lexon në një C-string që mund të// përmbajë karaktere boshe. Garanton// që do të lexohen <= 9 karaktere.// që do të lexohen <= 9 karaktere.
• Për të kontrolluar gjerësinë e fushave të hyrjes mund të përdoret gjithashtu setwsetw()() dhe width()width()
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-38
IniIni cc ializatiializati mimi vs. vs. Caktimit të Caktimit të CC--String String IniIni cc ializatiializati mimi vs. vs. Caktimit të Caktimit të CC--String String
• Një C-string mund të inicializohet gjatë kohës së krijimit të tij, njëlloj si një objekt stringkrijimit të tij, njëlloj si një objekt stringconst int MADHESI = 10;
char month[MADHESI] = "Prill";
• Megjithatë, një C-string nuk mund t’i jepet më vonë vlerë me operatorin =; për këtë duhet të vonë vlerë me operatorin =; për këtë duhet të përdoret funksioni strcpystrcpy()()
char m uaji [ MADHESI];char m uaji [ MADHESI];muaji = "Prill" // gabim!strcpy (muaji , " Prill "); // sak t ë
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-39
strcpy (muaji , " Prill "); // sak t ë
3.11 Fun3.11 Funksksionione të Tjerë të e të Tjerë të LibrarLibrar isëisë MatematiMatemati kekeLibrarLibrar isëisë MatematiMatemati keke
• Për këto nevojitet skedari i kokes cmathcmath• Për këto nevojitet skedari i kokes cmathcmath• Merr si argumente doubledouble dhe kthen një
doubledoubledoubledouble
• Funksionet më të përdorshme janë
abs Vlera Absoluteabs Vlera Absolutesin Sinusicos Kosinusitan Tangjentjatan Tangjentjasqrt Rrënja katrorelog Logaritmi natyror (e)
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-40
log Logaritmi natyror (e)
FunksioneFunksione tëtë TjerëTjerë tëtëLibrarisëLibrarisë MatematikeMatematikeLibrarisëLibrarisë MatematikeMatematike
• Për këto nevojitet skedari i kokës cstdlib• Për këto nevojitet skedari i kokës cstdlib
•• randrand
– Kthen një numër të rastit midis 00 dhe numrit më të madh që mund të mbajë kompjuteri
– Kthen një numër të rastit midis 00 dhe numrit më të madh intint që mund të mbajë kompjuteri
– Me të njejtën farëfarë, sa herë që ekzekutohet programi, do të japë të njejtën sekuencëprogrami, do të japë të njejtën sekuencënumrash
•• srandsrand (x)(x)•• srandsrand (x)(x)
– Inicializon gjeneratorin e numrave të rastit meunsigned unsigned intint xx
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-41
3.12 3.12 Hyrje në Hyrje në skedareskedare3.12 3.12 Hyrje në Hyrje në skedareskedare
• Në vend të tastierës, për hyrje në program • Në vend të tastierës, për hyrje në program mund të përdorët skedar
• Në vend të ekranit, për dalje në program mund të përdorët përsëri skedar
• Skedaret ruhen në mjete ruajtëse sekondare, si p.sh diskusi p.sh disku
• Ato lejojnë ruajtjen e të dhënave midis ekzekutimeve të programit
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-42
ekzekutimeve të programit
Çfarë duhet për Përdorimin e Çfarë duhet për Përdorimin e SkedareveSkedareveÇfarë duhet për Përdorimin e Çfarë duhet për Përdorimin e SkedareveSkedareve
1. Përfshirja e skedarit të kokës fstreamfstream1. Përfshirja e skedarit të kokës fstreamfstream
2. Përcaktimi i një objekti rrjedhe për skedarin•• ifstreamifstream për hyrje nga një skedar•• ifstreamifstream për hyrje nga një skedar
ifstream inSkedar;
•• ofstreamofstream për dalje në një skedar
ofstream outSkedar ;ofstream outSkedar ;
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-43
Hapja e SkedaritHapja e SkedaritHapja e SkedaritHapja e Skedarit3. Për hapjen e një Skedari:• Përdoret funksioni anëtar openopen
inSkedar.open("inventari.dat");out Skedar .open("r aport.txt");out Skedar .open("r aport.txt");
• Emri i skedarit mund të përfshijë njesinë, dhe informacion për pathin.dhe informacion për pathin.
• Nëse është e nevojshme do të krijohet skedari i daljes; më parë do të fshihet skedari i daljes; më parë do të fshihet skedari ekzisues i daljes
• Për të funksionuar openopen duhet të
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-44
• Për të funksionuar openopen duhet të ekzistojë skedari i hyrjes
Përdorimi i SkedaritPërdorimi i SkedaritPërdorimi i SkedaritPërdorimi i Skedarit
4. Përdorimi i skedarit4. Përdorimi i skedarit• Për të dërguar të dhëna në skedar mund të
përdoret objekti i skedarit të daljes dhe <<<<përdoret objekti i skedarit të daljes dhe <<<<outSkedar <<<< «Raport Inventari";
• Për të kopjuar të dhëna nga skedari në ndryshore mund të përdoret objekti i ndryshore mund të përdoret objekti i skedarit të hyrjes dhe >>>>in Skedar >>>> nrSerise ;
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-45
in Skedar >>>> nrSerise ;inSkedar >>>> sasNeStok >>>> sasNePorosi;
Mbyllja e SkedaritMbyllja e SkedaritMbyllja e SkedaritMbyllja e Skedarit
5. Mbyll skedarin• Përdoret funksioni anëtar closeclose
in Skedar .close();in Skedar .close();outSkedar.close();
• Gjatë përfundimit të programit mos prisni sistemin operativ për të mbyllur skedaretsistemin operativ për të mbyllur skedaret
– Ndoshta ka kufi në numrin e skedareve të hapurhapur
– Ndoshta ka të dhëna te buferi i daljes që presin të dërgohen në skedar dhe mund të
Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-46
presin të dërgohen në skedar dhe mund të humbasin