View
47
Download
3
Category
Preview:
Citation preview
Gjuhë Programuese
Semestri IKadri Sylejmani, Dipl. Ing.
Prishtinë 2009, FIEK
FIEK, Prishtinë 2009
Ligjeratat dhe ushtrimet janë obligative
Disiplina në klasë
2 orë ligjerata dhe dy ore ushtrime në javë
Gjuhë Programuese
Disiplina në klasë
Telefonat mobil të jenë të fikur ose pa zë
Ju lutem mos më thirrni në telefon !
Më shkruani në kadri.sylejmani@fiek.uni-pr.edu
Materiali në ueb faqen:http://gjuheprogramuese.googlepages.com
FIEK, Prishtinë 2009
•Gjatë rrjedhës se semestrit do te organizohen tri kollokviume
•Secili kollokviume është eliminues
Orari i mbajtjes se kollokviumeve:
Gjuhë Programuese
Orari i mbajtjes se kollokviumeve:
•Kolokviumi I kah mesi i muajit Nentor
•Kollokviumi II para vitit të ri
•Kollokviumi III rreth dates 15 Janar 2009
FIEK, Prishtinë 2009
Librat :
1. Bazat e programimit ne C++, Agni Dika
www.agnidika.net/programimiCpp
Algoritmet, Agni Dika
Gjuhë Programuese
2. Algoritmet, Agni Dika
3. Literature ne C++
FIEK, Prishtinë 2009
Gjuhë Programuese
� Në kompjuter, të dhënat ruhen dhe përpunohen si vargje të shifrave binare 1 e 0, të koduara në një kod binar (ang. binary code).
� Harduri dhe softueri
Programet dhe Programimi� Programet dhe Programimi
� Programi paraqet një listë të urdhërave (instruksioneve, komandave) të cilat i tregojnë kompjuterit që të kryejë veprime të ndryshme.
FIEK, Prishtinë 2009
Zhvillimi i sistemeve
1. Hulumtimi
preliminar
2. Analiza
e sistemit
6. Mirëmbajtja e
sistemit
FIEK, Prishtinë 2009 6
3. Dizajnimi
i sistemit
4. Zhvillimi
i sistemit
5. Implementimi i
sistemit
� Cikli jetësor i zhvillimit të sistemeve
Programimi
� Pesë hapat e programimit:
Definimi i problemit
FIEK, Prishtinë 2009 7
� Definimi i problemit
� Dizajnimi i programit (përshkrimi, bllok-skema, pseudokodi)
� Kodimi i programit
� Testimi i programit
� Dokumentimi dhe mirëmbajtja
Definimi i problemit
� Specifikimi i qëllimeve dhe shfrtyëzuesve
� Kërkesat për daljen
� Kërkesat për hyrjen
FIEK, Prishtinë 2009 8
� Kërkesat për hyrjen
� Kërkesat për procesim
� Studimi i fizibilitetit të implementimit të programit
� Dokumentimi dhe analiza
Dizajnimi i programit
� Përcaktimi i logjikës së programit përmes qasjes top-down (nga lartë-poshtë) dhe modularitetit, duke përdorur grafin hierarkik
FIEK, Prishtinë 2009 9
përdorur grafin hierarkik
� Dizajnimi i detajeve duke përdorur pseudokodin, grafet e rrjedhës (bllok diagramet) me preferencë në bazë të strukturave kontrolluese
� Dizajnimi i testimit me përshkrim të strukturuar
Kodimi i programit
� Zgjedhja e gjuhës së lartë programuese të përshtatshme
Kodimi i programit në atë gjuhë, duke respektuar
FIEK, Prishtinë 2009 10
� Kodimi i programit në atë gjuhë, duke respektuar sintaksën me kujdes
Testimi i programit
� Testimi në tavolinë dhe zbulimi i gabimeve
� Ekzekutimi i programit dhe debugimi i tij (alfa testimi)
FIEK, Prishtinë 2009 11
testimi)
� Ekzekutimi me të dhëna reale (beta testimi)
Dokumentimi dhe mirëmbajtja
� Përgatitja e dokumentacionit për shfrytëzuesit
� Shkruarja e dokumentacionit për operatorët
Shkruarja e dokumentacionit për programerë
FIEK, Prishtinë 2009 12
� Shkruarja e dokumentacionit për programerë
� Mirëmbajtja e programit
Pesë gjeneratat e gjuhëve programuese
� Gjuhët Programuese:
� Gjenerata e parë, 1945 - Gjuhët e ulëta programuese – Gjuha e makinës – 0, 1
FIEK, Prishtinë 2009 13
makinës – 0, 1
� Gjenerata e dytë, mesi i viteve 1950 - Asembleri – mnemonic (ADD, SUB, MOV...)
� Gjenerata e tretë, fillimi i viteve 1960 – Gjuhët e larta programuese (gjuhët procedurale: Cobol, Basic, C…)
� Gjenerata e katërt, fillimi i viteve 1970 – Gjuhët shumë të larta programuese (Të orientuara nga problemet) – Sql, Intellect, Nomad, Focus
� Gjenerata e pestë, fillimi i viteve 1980 – Gjuhët natyrale
Programimi – zhvillimet e reja
� Programimi i orientuar në objekte
� C++/#, Java…
Programimi vizual
FIEK, Prishtinë 2009 14
� Programimi vizual
� Visual Studio - Visual Basic, Visual C++/#…
� Internet programimi
� HTML, XML, VRML, Java, ActiveX, Scripting Languages (VBScript, JavaScript, Perl…)
Përkthyesit
� Program burimor (ang. source program, source code) –fajll burimor (ang. source file)
Program objektiv (ang. object program,
Kodi burimor
Kompajleri
FIEK, Prishtinë 2009 15
� Program objektiv (ang. object program, object code) -fajll objektiv (ang. objekt file)
� Assemblers, Intepreters, Compilers
� Linker --> program ekzekutiv (ang. executable program, exe file) - fajll ekzekutiv (ang. exe file)
Kodi i objktit
Kodi i makinës
Asembleri
Termat
� Identifikatorët
� Variablat
� Deklarimi
Inicializimi
FIEK, Prishtinë 2009 16
� Inicializimi
� Konstantet
� Literalet
� Operatorët
� Komentet
� Urdhërat
Programi i parë në C++
#include <iostream>
using namespace std;
int main()
{{
cout << "Programimi ne C++ " ;
return 0;
}
FIEK, Prishtinë 2009
Programimi në C++
#include <iostream>
using namespace std;
int main()
{{
cout << "Programimi ne C++ " ;
return 0;
}
# - simboli për direktivat preprocesorike - include (përfshijë, përmbajë)using namespace std – përdorë hapësirën/zonën emërtuese standardeiostream – Input Output Stream (Rrjedha hyrëse, dalëse)main ( ) – funksioni themelor, kryesorcin – operatori për leximcout – operatori për shtypjereturn (kthe) – kthimi i rezultatit të funksionit
FIEK, Prishtinë 2009
Komentet:
// Komenti në një rresht
/*Komenti në disa rreshta, apo /*Komenti në disa rreshta, apo
komenti në bllok */
FIEK, Prishtinë 2009
Komentet
//Programi i parë
#include <iostream>
using namespace std;
int main()
{
/* Përmes operatorit për shtypje, cout,
shtypet në ekran */
cout << "Programimi ne C++ " ;
return 0;
}
FIEK, Prishtinë 2009
Programi:
Kreu i programit
Direktivat preprocesorike
FunksionetFunksionet
Funksioni main()
Deklarimi i variablave
Urdhërat e programit
Mbyllja e programit
FIEK, Prishtinë 2009
Programi
FIEK, Prishtinë 2009
Programimi C++
//Programi i tretë
#include <iostream>
using namespace std;int main()
FIEK, Prishtinë 2009 23
int main(){
int a;cin >> a; // leximi prej tastierecout << a; // shtypja në ekranreturn 0;
}
Përmbajtja
� Çka mësuam javën e kaluar ?
� Blloqet elementare të algoritmeve
� Algoritmet për llogaritjen e shumës
� Algoritmet për llogaritjen e prodhimit
� Algoritmet për llogaritjen e faktorielit� Algoritmet për llogaritjen e faktorielit
� Algoritmet për llogaritjen e vlerës së
funksioneve të ndryshme
� Algoritmet për operim me vargje numerike
Programimi në C++
#include <iostream>
using namespace std;
int main()
{
cout << "Programimi ne C++ " ;
return 0;
}
# - simboli për direktivat preprocesorike - include (përfshijë, përmbajë)using namespace std – përdorë hapësirën/zonën emërtuese standardeiostream – Input Output Stream (Rrjedha hyrëse, dalëse)main ( ) – funksioni themelor, kryesorcin – operatori për leximcout – operatori për shtypjereturn (kthe) – kthimi i rezultatit të funksionit
FIEK, Prishtinë 2009
Algoritmet themelore
∑=
++++==n
i
niS3
...543
Llogaritja e shumës së numrave të plotë
Llogaritja e shumës së
numrave të kombinuar
2
3
x2iss
++=
( )
>−+
≤++= ∑
+
=
4.55 për x 123
4.55për x 232
2
1
1
2
xx
xjxy
n
jPo
Fillimi
n,x
s=0
Jox 4.55
Llogaritja e vlerës së
funksionit
Po
Jo
j=1
s=s+{j+2x}2
j=j+1
j n+1)
y
Fundi
y=2x+3 s y=3x2+2x-1
{ }∑ +=+
=
1n
1j
22xjs
Llogaritja e prodhimit të numrave të plotë
niPn
i
*...*3*2*11
==∏=
Llogaritja e shumës dhe prodhimit
njëkohësisht
1. Të gjendet shprehja e
funksionit.
2. Sa është vlera e m-it
dhe n-it?
2p3s2
xy −+=
Të gjendet shprehja e funksionit që llogaritet
me këtë algoritëm
+⋅=3
xkpp
4p2
xg −=
Llogaritja e vlerës së faktorielit
1
2
3
4
5
Fillimi
n
F=1
i=1
F=F i
1
2
3
4
5
6
7
8
9
Po
Jo
i=i+1
i n
F
Fundi
6
7
8
9
F = 1 1 2 3
11
8
5
Vlera fillestare(3)
Shembull: Të llogaritet vlera e faktorielit
F=(2m+n)!
Llogaritja e vlerës së funksioneve që
përmbajnë shumë dhe faktoriel
∑
++−=
n i)!2n(*2x*3y Po
Fillimi
x,n
F=1
i=1
i=i+1
F=F i
F=(n+2)!Rasti kur faktorieli nuk varet nga vlera e anëtarëve të veçantë të shumës
∑=
++−=1i 3
)!2n(*2x*3yJo
i (n+2)
y
Fundi
y=3x-2s
Jo
Po
s=0
i=1
i=i+1
i n
++=3
iFss
∑=
+=
n
1i3
iFs
Llogaritja e vlerës së funksioneve që
përmbajnë shumë dhe faktoriel
( )∑=
−+−=n
1i
x)!1i2(*32
xy
Fillimi
x,n
F=1
j=1
F F j
i=1
s=0
F=(2i+1)!
Rasti kur faktorieli llogaritet për çdo anëtar të shumës
=1i2
Jo
Po
Jo
F=F j
j=j+1
j (2i+1)
Po
s=s+[F-x]
i=i+1
i n
y
Fundi
3s2
xy −=
Llogaritja e vlerës së funksoneve në rastet
kur anëtarët e caktuar të shumës apo
prodhimit nuk merren në konsideratë
∏≠=
+++=n
3,2i1i 3
i)!1i(2x3y
+⋅=3
iFpp
Krijimi i algoritmeve për operim me vargje
Shembull: Te gjendet sa anëtarë ka vektori Temperaturat[10, 7, 9, 3, 5, 11,-2].
Krijimi i algoritmeve për operim me vargje
Shembull: Te gjendet prodhimi i anëtarëve të vektorit me vlerë mes 5 dhe 8, si dhe të shtypen anëtarët tjerë.
A keni ndonjë pyetje ?
Përmbajtja
� Çka mësuam javën e kaluar ?� Algoritmet me të ndërlikuara me shumë, prodhim dhe faktoriel� Tipet/Llojet e të dhënave në C++� Identifikatorët
Tipet/Llojet e të dhënave në C++� Identifikatorët� Deklarimi i variablave� Shtypja e vlerave ne ekran� Leximi i vlerave nga tastiera� Karakteret për braktisje të sekuencës� Libraria/Klasa iomanip.h
Llogaritja e vlerës së funksioneve që
përmbajnë shumë dhe faktoriel
( )∑=
−+−=n
1i
x)!1i2(*32
xy
Fillimi
x,n
F=1
j=1
F F j
i=1
s=0
F=(2i+1)!
Rasti kur faktorieli llogaritet për çdo anëtar të shumës
=1i2
Jo
Po
Jo
F=F j
j=j+1
j (2i+1)
Po
s=s+[F-x]
i=i+1
i n
y
Fundi
3s2
xy −=
Tipet/Llojet e të dhënave në C++
Tipi Rangu i vleravemadhësia
në bajta
unsigned short int
16 bit
0..65535 2
short int- 16 bit -32768..32767 2
unsigned long int 0..4294967295 4
long int -2147483648..2147483647 4
int - 32 bit -2147483648..2147483647 4int - 32 bit -2147483648..2147483647 4
unsigned int –
32 bit
0..4294967295 4
float 1.2E-38..3.4E38 4
double 2.2E-308..1.8E308 8
char 256 simbole 1
Bool True, False 1
String 256 simbole/karaktere 1 bajt per
secilin
karaketer
Identifikatorët� Njësit elementare memoruese në të cilat vendosen të dhënat dherezultatet e programeve emrohen duke përdorur identifikator (ang. Identifier)
� Si identifikator formohen emrat e konstanteve, variablave, nënprogrameve dhe strukturave tjera të krijuara gjatë programimit.
� Identifikatorët formohen si kombinim i shkronjave (a, b, ..., z, A, B, ..., Z), numrave (0, 1, 2, ..., 9) dhe simbolit për nënvizim (_). Simboli i parënë identifikator mund të jet shkronjë ose simboli për nënvizim. në identifikator mund të jet shkronjë ose simboli për nënvizim.
� P.sh., si identifikator mund të merren:� dita� Koha5� distanca_mes_rreshtave� TemperaturaDitore� _Fillimi� a234b35� P8
Identifikatorët – vazhdim
� Gjatësia e identifikatorëve nuk është e kufizuar. Por, përdorimi i identifikatorëve shum të gjatë është jopraktike ngadonjëherë edhe me probleme gjatë kompajlimit
� Fjalët kyçe të cilat përdoren në gjuhën C++ nuk lejohettë përdoren si identifikator
P.sh., si identifikator nuk mund të përdoren fjalët:� P.sh., si identifikator nuk mund të përdoren fjalët:
� else
� cout
� if
� while
Deklarimi i variablaveVariabla deklarohet, duke deklaruar tipin dhe emrin:
tipiVariablës emriVariablës,
P.sh. :
int a;
double x;
float z;
short int koha;short int koha;
char g;
char Emri[20];
int x,y;
//Deklarimi i perbashket
long int dita,e,f3;
//Deklarimet ne nje rresht
double x,h; int g; float a,p;
Deklarimi i variablave – vazhdim
Variabla deklarohet, duke deklaruar tipin dhe emrin:
tipiVariablës emriVariablës;
P.sh. :
int A[8]; //Vektoriint A[8]; //Vektori
double Z[3][5]; //Matrica
Indekset fillojnë me vlerën zero
int A[6];//6 anëtar - A[0],D[1],...,D[5].
Deklarimi dhe inicializimi
int i=5;
double a=5.3;
int A[5]={7,2,4,1,3};
char Z[7]={'d','4','*','a','G','$'};
//Vektori me karaktere
const double PI=3.1415926;
Deklarimi dhe inicializimi – vazhdim
const int m=5;
int A[m]={7,2,4,1,3};
const int m=4,n=3;
int K[m][n]={{7,4,1},int K[m][n]={{7,4,1},
{2,5,8},
{3,6,2},
{8,1,3}};
Shtypja e vlerave ne ekran
#include
<iostream.h>
int main()
Kreu i programit – Koment
Direktivat preprocesorike
cout <<a1 <<a2 … <<an;
int main()
{
int a;
a=5;
cout << a;
return 0;
}
Funksioni main()
Deklarimi i variablave
Urdhërat e programit
Mbyllja e programit
Leximi i vlerave nga tastiera
#include <iostream.h>
int main()
{
cin >>a1 >>a2 … >>an;
{
int a;
cin >> a; /leximi prej tastiere
cout << a;
return 0;
}
Shembull - Llogaritja e vleres mesatare// Programi cin-cout – Llogaritja e vleres mesatare
#include <iostream.h>
int main()
{
int n1, n2, n3;
float nm;
cout<<"Jepni tri notat: " ;cout<<"Jepni tri notat: " ;
cin >> n1 >> n2 >> n3;
nm=(n1+n2+n3)/3;
cout <<"Nota mesatare="
<< nm
<< endl;
return 0;
}
Shtypja e vlerave ne ekran në formë të
formatizuar
Cout.width(k); // rezervon shtypjen në k-kolona
cout.width(8); // shtypja e rezultatit ne 8 kolona
cout << a; // p.sh., nese shtypet variabla a, qe
// ka vleren 15
// rezultati do te duket si ne vijim
LLLLLL15 // ku L paraqet zbrazetiren, rreshtimi
// plotesimi i vendeve te rezervuara
// behet nga skaji i djathte
cout.precision(k); // shtypja me precizitet te caktuar ne k-kolona
cout.fill('f'); // mbushja me simbolin ‘f ’
Shtypja e formatizuar – shembull
#include <iostream.h>
int main()
{
int x=52;
cout.width(10);
cout.fill('*');cout.fill('*');
cout << x
<< endl;
return 0;
}
Karakteret për braktisje të sekuencës
Escape-sequence characters
\a Alarm
\b Backspace
\f Form Feed (për printer)
\n New line (CR+LF) (rreshti i ri)
\r CR (clear)
\t Tab\t Tab
\v Vertical Tab
\\ \
\? ?
\’ ‘
\” “
\000 Numër oktal
\xhh Numër heksadecimal
\0 Null zero (zero binare)
Karakteret për braktisje të sekuencës
Escape-sequence characters
\xhh, mund të përdoret për të shtypur në ekran karakteret të cilat nuk i kemi në tastierë,
p.sh. shkronja “ë” dhe “ç”, nga gjuhës shqipe. ASCII kodi përkatës i karakterit, duhet të shkruhet në formën heksadecimale. P.sh. për “ë”, kodi është: “137” (Si e formën heksadecimale. P.sh. për “ë”, kodi është: “137” (Si e shtypim zakonisht në tastierë, ALT+137). Atëherë, 137 në bazën 16 (numër heksadecimal), është: 89. Prandaj, për ta shtypur në dalje shkronjën “ë”, duhet të shkruhet: “\x89”
“Sot është ditë e mirë” – në C++ duhet të shkruhet :
cout << “Sot \x89sht\x89 dit\x89 e mir\x89” ;
Shikoni shembullin në vijim dhe provoni të
gjeni çka do të shtypet si rezultat i
ekzekutimit të programit.
#include <iostream.h>
int main()
{
int x = 5;int x = 5;
int y = 7;
cout <<endl;
cout << x + y << " " << x * y;
cout <<endl;
return 0;
}
A keni ndonjë pyetje ?
Përmbajtja
� Çka mësuam javën e kaluar ?� Libraria/Klasa iomanip.h� Libraria/Klasa math.h� Leximi i fjalive nga tastiera� Operatorët aritmetik� Operatorët krahasuesOperatorët aritmetik
� Operatorët krahasues� Operatorët logjik� Shprehjet aritmetikore në C++� Struktura për degëzim IF� Operatori për kushtëzim “?”� Struktura për degëzim Switch
Libraria/Klasa iomanip.h
� Setw(gjeresia),
� Setfill(simboli)
� Setprecision(preciziteti)
� Right
� Left� Left
Libraria/Klasa math.h
� pow(baza, eksponenti)
� exp(eksponenti)
� sqrt()
� abs()
� sin(x)� sin(x)
� Etj.
Leximi i fjalive
� cin.get(a,n) // n – numri i karaktereve që lexohen
� cin.getline() // leximi i nje rreshti
#include <iostream.h>
int main()
{
const m=20;
#include <iostream.h>
int main()const m=20;
char A[m];
cout << "Fjalia që lexohet: ";
cin.get(A,m);
cout << "Fjalia që u lexua: "
<< A
<< "\n";
return 0;
}
int main()
{
const m=20;
char A[m];
cout << "Fjalia që lexohet: ";
cin.getline(A,m);
cout << "Fjalia që u lexua: "
<< A
<< "\n";
return 0;
}
Operatorët aritmetik
Operatori Operacioni Shembull Rezultati
+ Mbledhja 3+2 5
- Zbritja 3-2 1- Zbritja 3-2 1
* Shumëzimi 3*2 6
/ Pjestimi 3/2 1.5
% Moduli 3%2 1
Operatorët krahasues / Relacional
Operato
ri
Domethënia Shembull Rezultati
< Më i vogël se 2 < 3 true
<= Më i vogël se, 3 <= 2 false
ose barazi me
== Barazi me 3 == 3 true
> Më i madhë se 3 > 2 true
>= Më i madhë se,
ose barazi me
2 >= 3 false
!= Jobarazi me 2 != 3 true
Operatorët logjik
Operatori Operacioni Shembull Rezultati
&& Konjukcioni
, AND
(2 < 3) && (4 == 4) true
, AND
|| Disnjuk-
sioni,
OR
(2 != 3) || (3 > 4) false
! Negacioni,
NOT
!(5 > 4) false
Shprehjet aritmetikore në C++
�Gjatë llogaritjes së vlerave numerike të shprehjeve
aritmetikore, merret prioriteti vijues i ekzekutimit
1. * / %
2. + -
�Nëse në shprehje paraqiten më shumë operator të rangut të njëjtë, ato ekzekutohen duke shkuar prej anës së majtë kah të njëjtë, ato ekzekutohen duke shkuar prej anës së majtë kah ana e djathtë e shprehjes.
z=2*y/a-3*b+c/2*d+4
42
cdb3
a
y2z ++−=
në matematikë
në C++
Demonstrimi i radhës së ekzekutimit
z=2*y/a-3*b+c/2*d+4
Struktura për degëzim IF
if (kushti) urdhëri ;
ose
if (kushti)
>x 0
X është pozitiv
Fillimi
x
Fundi
Po
Jo
urdhëri ;
� kushti - kushti për degëzim
� urdhëri – komanda që ekzekutohet
nëse plotësohet kushti
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;
if (x > 0)
cout << "\nx eshte pozitiv
\n";
return 0;
}
Struktura për degëzim IF– shembull
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;cin >> x;
if (x > 0)
cout << "\n x eshte
pozitiv \n";
if (x < 0)
cout << "\n x eshte
negativ \n";
return 0;
}
Struktura për degëzim IF – shembull
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;>x 0
Fillimi
x
Po
Jo
cin >> x;
if ((x%2) == 0)
cout << "\n x eshte cift\n";
if ((x%2) == 1)
cout << "\n x eshte tek\n";
return 0;
}
X është pozitiv
Fundi
Po
<x 0
X është negativ
Po
Jo
Struktura për degëzim IF – vazhdim
If (kushti)
urdhëri1;
else
urdhëri2;
� kushti - kushti për degëzim.
� urdhëri1 - urdhëri që ekzekutohet nëse plotësohet kushti k.
� urdhëri2 – urdhëri që ekzekutohet nëse nuk plotësohet kushti
Struktura për degëzim IF – shembull
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;cin >> x;
if (x > 0)
cout << "\nx eshte pozitiv \n";
else
cout << "\nx eshte negativ\n";
return 0;
}
Forma e përgjithshme e strukturës për
degëzim IF
if (kushti)
{
urdhëri1;
urdhëri2;
…
urdhërin;urdhërin;
}
else
{
urdhëri1;
urdhëri2;
…
urdhërim;
}
Struktura për degëzim IF – shembull
#include <iostream.h>
int main()
{
int x,y,z;
cout << "Vlera x=";
cin >> x;
if (x > 0)if (x > 0)
{
y=2*x;
z=x*x;
cout << "\ny=2*x="<<y;
cout << "\nz=x*x="<<z;
}
else
cout << "\nx eshte negativ\n";
cout<<endl;
return 0;
}
Strukturat e ndërthurura për degëzim
if (kushti1)
if (kushti2)
urdhëri1;
elseelse
urdhëri2;
else
urdhëri3;
Strukturat e ndërthurura për degëzim –
shembull
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;
if (x > 0)
if (x>10)
cout << "\nx eshte pozitiv me i madh se 10\n";
else
cout << "\nx eshte pozitiv me i vogel se 10\n";
else
cout << "\nx eshte negativ \n";
return 0;
}
Struktura për degëzim IF me operatorë
logjik – shembull
#include <iostream.h>
int main()
{
int x,y,z;
cout << "Vlera x=";
cin >> x;
Si do të dukej algoritmi për këtë kod ?
if ((x > 0) && (x>10))
{
cout << "\nx eshte pozitiv me i madh se 10\n";
}
else
cout << "\nx eshte negativ\n";
cout<<endl;
return 0;
}
Operatori për kushtëzim “?”
(Kushti) ? (urdhëri1) : (urdhëri2);
#include <iostream.h>
int main()
{{
int a=2, b=8;
int y;
y=(a>b) ? a : b;
cout << "Vlera e variablës y="
<< y
<< "\n";
return 0;
}
Struktura për degëzim Switch
switch (variabla)
{
case a1:
urdhërat ;
break;
case a2:
urdhërat;
break;
…
case an:
urdhërat;
break;
default :
urdhërat;
}
Struktura për degëzim Switch – shembull
int Nota;
cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;
cin >> Nota;
switch(Nota)
{
case 1: cout<<"Dobet: ";
break;break;
case 2: cout<<"Mjaftueshem: “;
break;
case 3: cout<<"Mire: ";
break;
case 4: cout<<"Shume mire: ";
break;
case 5: cout<<"Shkelqyeshem: ";
break;
default: cout <<"Gabim-Nota duhet”
<<“ te jete mes 1 dhe 5\n";
}
int Nota;
cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;
cin >> Nota;
if (Nota == 1) cout<<"Dobet: ";
else
if (Nota == 2) cout<<"Mjaftueshem: ";
else
if (Nota == 3) cout<<"Mire: ";
else
if (Nota == 4) cout<<"Shume mire: ";
else
if (Nota == 5) cout<<"Shkelqyeshem: ";
else cout << "Gabim - Nota duhet mes 1 dhe 5";
A keni ndonjë pyetje ?
Përmbajtja për këtë ligjëratë
� Çka mësuam javën e kaluar ?
-Struktura për degëzim IF
� Strukturat për degëzim IF të ndërthurura
� Operatori për kushtëzim “?”
� Struktura për degëzim Switch
� Kapërcimi pa kusht Goto
� Unaza While
Leximi i fjalive
� cin>>a� cin.get(a,n) // n – numri i karaktereve që lexohen� cin.getline(a,n) // leximi i nje rreshti
Cin.get( ) nuk e shlyen delimiterin nga baferi, perderi sa cin.getline e shlyen delimiterin nga baferi.cin.getline e shlyen delimiterin nga baferi.
Forma e përgjithshme e strukturës për
degëzim IF
if (kushti)
{
urdhëri1;
urdhëri2;
…
urdhërin;urdhërin;
}
else
{
urdhëri1;
urdhëri2;
…
urdhërim;
}
Strukturat e ndërthurura për degëzim
if (kushti1)
if (kushti2)
urdhëri1;
elseelse
urdhëri2;
else
urdhëri3;
Strukturat e ndërthurura për degëzim –
shembull
#include <iostream.h>
int main()
{
int x;
cout << "Vlera x=";
cin >> x;
if (x > 0)
if (x>10)
cout << "\nx eshte pozitiv me i madh se 10\n";
else
cout << "\nx eshte pozitiv me i vogel se 10\n";
else
cout << "\nx eshte negativ \n";
return 0;
}
Struktura për degëzim IF me operatorë
logjik – shembull
#include <iostream.h>
int main()
{
int x,y,z;
cout << "Vlera x=";
cin >> x;
Si do të dukej algoritmi për këtë kod ?
if ((x >= 0) && (x<=10))
{
cout << "\nx eshte pozitiv me i vogel ose
baraz me 10\n";
}
else
else if(x>10)
else
cout << "\nx eshte negativ\n";
cout<<endl;
return 0;
Operatori për kushtëzim “?”
(Kushti) ? (urdhëri1) : (urdhëri2);
#include <iostream.h>
int main()
{{
int a=2, b=8;
int y;
y=(a>b) ? a : b;
cout << "Vlera e variablës y="
<< y
<< "\n";
return 0;
}
Struktura për degëzim Switch
switch (variabla)
{
case a1:
urdhërat ;
break;
case a2:
urdhërat;
break;
…
case an:
urdhërat;
break;
default :
urdhërat;
}
Struktura për degëzim Switch – shembull
int Nota;
cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;
cin >> Nota;
switch(Nota)
{
case 1: cout<<"Dobet: ";
break;break;
case 2: cout<<"Mjaftueshem: “;
break;
case 3: cout<<"Mire: ";
break;
case 4: cout<<"Shume mire: ";
break;
case 5: cout<<"Shkelqyeshem: ";
break;
default: cout <<"Gabim-Nota duhet”
<<“ te jete mes 1 dhe 5\n";
}
int Nota;
cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;
cin >> Nota;
if (Nota == 1) cout<<"Dobet: ";
else
if (Nota == 2) cout<<"Mjaftueshem: ";
else
if (Nota == 3) cout<<"Mire: ";
else
if (Nota == 4) cout<<"Shume mire: ";
else
if (Nota == 5) cout<<"Shkelqyeshem: ";
else cout << "Gabim - Nota duhet mes 1 dhe 5";
Kapërcimi pa kusht - goto
#include <iostream.h>
int main()
{
goto Fundi;
Fillimi: //Labela – etiketa,adresa “Fillimi”
cout<< "Fillimi\n";
goto Dalja;goto Dalja;
Mesi: //Labela – etiketa,adresa “Mesii”
cout << "Mesi\n";
goto Fillimi;
Fundi:
cout << "Fundi\n";
goto Mesi;
Dalja:
return 0;
}
Kapërcimi pa kusht – goto - shembull
#include <iostream.h>int main(){int i; char zgjedhja;Perseritje: //Labela(etiketa-adresa) per kapercim pa kusht
cout << "Zgjedhni vleren per i: i=";cin >> i;cout << endl;cout << endl;if (i<10)
cout << "Keni zgjedhur i me te vogel se 10\n\n";else cout << "Keni zgjedhur i me te madh ose baraz me 10\n\n";
cout << "Perserite testin? (P-Po, J-Jo) \a";cin >> zgjedhja;if ((zgjedhja=='P') || (zgjedhja =='p'))
goto Perseritje;cout <<"\n ****************** Dalja ********************\n";return 0;}
� Përsëritja e ekzekutimit të një apo më shumë urdhrave të programit
� Unaza ka variablen e unazës, e cila përdoret si tregues se sa herë do të përsëriten urdhrat brenda unazës (ciklet e përsëritjes)
� Zakonisht variabla e unazës fillon me vlerën fillestare dhe për çdo herë të ekzekutimit të urdhrave të unazës, e ndryshon vlerën për një
Unazat (Loops - laqet)
Unaza (kushti){Variabla_e_unazës;komandat;
}
fillestare dhe për çdo herë të ekzekutimit të urdhrave të unazës, e ndryshon vlerën për një hap të caktuar, që njihet si hapi i unazës
� Ky ndryshim (rritje, zvogëlim, etj) i vlerës së variablës së unazës, për hapin e caktuar, vazhdon deri sa të plotësohet kushti për dalje prej unazës
� Në dalje apo hyrje të unazës, testohet se a është plotësuar kushti për dalje prej unazës (apo hyrje në unazë)
Unaza whilei=f;
while(kushti)
{
urdhëri/at;
i=i+h;
}
ku janë:
i - variabla e unazës.
f - vlera fillestare e variablës së unazës.
kushti - kushti i ekzekutimit të urdhërave që përfshihen në trupin e unazës.
h - hapi me të cilin ndryshohen vlerat e variablës i.
urdhëri/at – urdhërat që ekzekutohen brenda unazës.
Unaza while – shembull
#include <iostream.h>
int main()
{
double S;
int i;
S=0;
i=1;//vlera fillestare
while (i<=10)//kushti për mbetje brenda unazëswhile (i<=10)//kushti për mbetje brenda unazës
{
S=S+i; //urdhëri
i=i+1; //rritja e hapit të unazës
}
cout << "S="
<< S
<< "\n";
return 0;
}
A keni ndonjë pyetje ?
Çka mësuam javën e kaluar ? � Strukturat për degëzim IF të ndërthurura
� Operatori për kushtëzim “?”
� Struktura për degëzim Switch
� Kapërcimi pa kusht Goto
� Unaza While
Përmbajtja për këtë ligjëratë:� Unaza do – while� Unaza for� Ndërprerja e unazës� Kapërcimi i hapit të unazës� Krijimi i algoritmeve për operim me vargje� Deklarimi, inicializimi dhe shtypja e vlerave të anëtarëve të vektorit
Unaza do – while
i=f;
do
{
urdhëri/at;
i=i+h;
}
while(kushti);
i=f;
while(kushti)
{
urdhëri/at;
i=i+h;
}while
ku janë:i - variabla e unazës.
f - vlera fillestare e variablës së unazës.
kushti - kushti i ekzekutimit të urdhërave që përfshihen në trupin
e unazës.h - hapi me të cilin ndryshohen vlerat e variablës i.
urdhëri/at – urhdëri/at e përfshira brenda unazës.
}
Unaza do – while – shembull
#include <iostream.h>
int main()
{
const int m=3;
int i;
double s;
s=0;s=0;
i=1; //vlera fillestare
do //(do - bëj, vepro, kryej)
{
s=s+i; //urdhëri
i++; /rritja e hapit të unazës
}
while (i<=m);//kushti për mbetje në unazë
cout << "Shuma s= "
<< s
<< "\n";
return 0;
}
Unaza for
for (i=f; kushti; i=i+h)
{
urdhëri/at;
}
i++ � rritja per nje e vlerës së i-sëi-- � zvoglimi për një i vlerës së i-sëi+=h � rritja per hapin h e vlerës së i-sëi-=h � zvoglimi për hapin h i vlerës së i-së
ku:
i - variabla e unazës.
kushti - kushti i mbetjes brenda unazës.
h - hapi me të cilin ndryshohen vlerat e
variablës i.
urdhëri/at – urdhëri/at që ekzekutohen
brenda unazës.
Unaza for – algoritmi
Ndërprerja e unazës – komanda break
OSE
#include <iostream.h>
int main()
{
int i;
for (i=1;i<=10;i++)
{
if (i>5) if (i>5)
break;
cout << "i="
<< i
<< "\n";
}
return 0;
}
Kapërcimi i hapit të unazës – komanda continue
Fillimi
n
i=1
Po
#include <iostream.h>
int main()
{
int i;
for (i=1;i<=10;i++)
{
i
Fundi
i<=n
Po
Jo
i=i+1
i=5Po
Jo
{
if (i = = 5) continue;
//kalo hapin, për i=5
cout << "i=" << i
<<endl;
}
return 0;
}
Shembull: Të gjendet shuma e numrave prej
1 deri në n, por duke përjashtuar treshin (3)
, si në vijim:
∑≠
=
n
ii
i
31
Fillimi
n
S=0
#include <iostream.h>
int main()
{
int i,n;double s=0;
cout << "Vlera e variables n=";
cin >> n;
for (i=1;i<=n;i++)
Jo
Po
Jo
i=1
S=S+i
i=i+1
i n
S
Fundi
i 3Po
for (i=1;i<=n;i++)
{
if (i==3) continue;
//kaloje 3-shin
s=s+i;
}
cout << "Shuma s="
<< s
<< "\n";
return 0;
}
Krijimi i algoritmeve për operim me vargje
Shembull: Te gjendet sa anëtarë ka vektori Temperaturat[10, 7, 9, 3, 5, 11,-2].
Krijimi i algoritmeve për operim me vargje
Shembull: Te gjendet prodhimi i anëtarëve të vektorit me vlerë mes 5 dhe 12, si dhe të shtypen anëtarët tjerë.
Deklarimi, inicializimi dhe shtypja e vlerave
të anëtarëve të vektorit
//Shtypja horizontale
#include <iostream.h>
int main()
{
const int m=5;
int i;
int A[m]={2,5,-1,6,3};int A[m]={2,5,-1,6,3};
cout << "Vektori A"
<< "\n";
for (i=0;i<m;i++)
cout << A[i]
<< " ";
cout << "\n";
return 0;
}
Deklarimi, inicializimi dhe shtypja e vlerave
të anëtarëve të vektorit
//Shtypja vertikale
#include <iostream.h>
int main()
{
const int m=5;
int i;
int A[m]={2,5,-1,6,3};int A[m]={2,5,-1,6,3};
for (i=0;i<m;i++)
cout << "A["
<< i
<< "]="
<< A[i]
<< "\n";
return 0;
}
Leximi të anëtarëve të vektorit nga tastiera
#include <iostream.h>
int main()
{
const int m=5;
int i, A[m];
//Krijimi i vektorit
for (i=0;i<m;i++)for (i=0;i<m;i++)
{
cout << "A["
<< i+1
<< "]= ";
cin >> A[i];
}
// Shtypja e anëtarëve të vektorit nuk është
// paraqitur
return 0;
}
A keni ndonjë pyetje ?
Recommended