Ushtrimi-1 - WordPress.com

Download Report

Transcript Ushtrimi-1 - WordPress.com

PROGRAMIM I
UNIVERSITETI I TETOVËS
1
Përmbajtja
1. Programimi
2. Gjuhët programuese
3. Algoritme
2
Programimi
PROGRAMIMI – procesi i shkuarjes së programeve kompjuterike.
GJUHË PROGRAMUESE – gjuhë artificiale për komunikim në relacionin njerikompjuter që mundësojnë shprehjen e veprimit të zgjidhjes kompjuterike të
problemeve të caktuara.
KLASIFIKIM I PËRGJITHSHËM I GJUHËVE PROGRAMUESE:
1. Gjuhë makinerike (Machine Languages).
2. Gjuhë simbolike - asembler (Assembly Languages).
3. Gjuhë programuese të nivelit të lartë (High-level Programming Languages).
3
Programimi
GJUHË MAKINERIKE (1945) – programet përmbajnë komanda binare (shifra 0,1)
dhe heksadecimale (shifra 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
KARAKTERISTIKA:
 Të vështira për programim.
 Të varura nga kompjuteri (procesori).
 Nevojiten komanda për operacione elementare të procesorit.
Program makinerik
Komanda binare
Komanda heksadecimale
1000111011011000
8ED8
1100110100100001
CD21
1011010001001100
B44C
4
Programimi
GJUHË SIMBOLIKE - ASEMBLER (1950) – programet përmbajnë
komanda me simbole të paracaktuara (Move, Load, Add, …).
KARAKTERISTIKA:
 Më të kuptueshme për programim në krahasim me gjuhët makinerike.
 Të varura nga kompjuteri.
 Është i nevojshëm përkthim i komandave simbolike në makinerike.
 Nevojiten komanda për operacione elementare të procesorit.
Program në asembler
16D7:000F Move [BX], AL
16D7:0011 Move AH, 4C16
16D7:0013 Int 21
5
Gjuhë programuese
GJUHË PROGRAMUESE TË NIVELIT TË LARTË – programet përmbajnë komanda
me fjalë nga gjuha e natyrshme e njeriut.
KARAKTERISTIKA:
 Programimi është më i kuptueshëm dhe më i pranueshëm në krahasim me gjuhët
makinerike dhe simbolike.
 Nuk janë të varura nga kompjuteri.
 Është i nevojshëm përkthim i programit burimor në instruksione makinerike.
 Nuk nevojiten komanda për operacione elementare të procesorit.
Program në C++
S=0;
For (i=1; i<=10, i++) {
S=S+i
}
6
Gjuhë programuese
KLASIFIKIMI I GJUHËVE PROGRAMUESE TË NIVELIT TË LARTË (sipas mënyrës
së përpunimit të të dhënave):
1. Gjuhë imperative (të dhëna hyrëse  komanda  rezultate dalëse)
2. Gjuhë deklarative (përshkruhet mënyra e fitimit të rezultatit)
GJUHË PROGRAMUESE IMPERATIVE
1. Gjuhë procedurale (Programim strukturor): C, Pascal, Algol, Fortran, Basic etj.
2. Gjuhë objekt-orientuese (Programim i orientuar në objekte): C++, C#, Java,etj.
GJUHË PROGRAMUESE DEKLARATIVE:
1.
Gjuhë funksionale (të dhëna hyrëse  funksione  rezultate dalëse): Lisp,
etj.
2.
Gjuhë logjike (të dhëna hyrëse  relacione  rezultate dalëse): Prolog etj.
7
Gjuhë programuese
GJUHË PROGRAMUESE TË NIVELIT TË LARTË:

Fortran (1955, IBM, Formula Translating Language) – llogaritje komplekse
matematikore në aplikacione shkencore dhe inxhinierike)

Cobol (1959, Common Business Oriented Language) – aplikacione komerciale

Algol (1960, Algorithm Language) – shprehje programore e algoritmeve të
ndryshme.

Basic (1965, John Kemeny, Beginner’s All-Purpose Symbolic Instruction Code
Language),

Pascal (1971, Niklaus Wirth) – në universitete.

Zbatim i kufizuar për aplikacione industriale dhe komerciale.

C (1972, Dennis Ritchie, Bell Laboratories) – shkruarje e sistemeve operative
(UNIX, Windows etj.)
8
Gjuhë programuese

C++ (1990, Bjarne Stroustup, Bell Laboratories) – gjuhë programuese hibride

Programim i strukturuar

Programim i orientuar në objekte

Visual Basic (1991, Microsoft) – gjuhë programuese hibride

Programim i strukturuar

Programim i orientuar në objekte

Programim vizual

Visual C++ (1995, Microsoft) – programim vizual

Java (1995, James Gosling, Sun Microsystems)


Programim në Internet (përmbajtje dinamike të Web-faqeve)
Aplikime për pajisje të ndryshme (telefona mobil, pager, PDA etj)
9
Gjuhë programuese

C# (2000, Anders Hejlsberg, Microsoft) – bazohet në gjuhët C, C++ dhe Java.

Përdor hapësirë të integruar zhvillimi (IDE, Integrated Development
Environment)

Përdor module të përbashkëta me Visual C++ dhe Visual Basic

Programim i orientuar në objekte.

Programim vizuel.

Programim në Internet.
10
Gjuhë programuese

SINTAKSA E GJUHËS – përcakton rregullat për krijimin e komandave.

SEMANTIKA E GJUHËS – përcakton domethënien e komandave për të realizuar
veprime plotësisht të definuara.

PROGRAM BURIMOR (Source Code) – programë e shkruar në gjuhë
programuese të nivelit të lartë

PROGRAM EKZEKUTIV (Executive program) – program makinerik

PËRKTHYES (Compiler) – program sistemor që përkthen programin e shkruar
në gjuhë të nivelit të lartë në program makinerik
11
Gjuhë programuese
Përkthimi i programeve
Programi
burimor
Përkthyesi
(Compiler)
Programi
ekzekutiv
Intepretimi i programeve
Programi
burimor
Interpretuesi
(Interpreter)
Rezultate
dalëse
Të dhëna
hyrëse
12
Zgjidhje kompjuterike e problemit të caktuar:
1. Definimi i problemit
2. Definimi i algoritmit (veprimit për zgjidhje të problemit)
3. Programimi (Shkruarja e programit)
4. Testimi i programit
13
Algoritme
 ALGORITËM – grumbull i veprimeve me një radhë të fiksuar që
ndërmerren për zgjidhje të një problemi të caktuar.
 Abu Jafar Mohammed Musa Al Khowarizmi, (Algorithmi) – rregulla për
ekzekutim të katër operacioneve bazike me shifra arabe (shek.IX).
 HAPA ALGORITMIKE – veprimet e algoritmit.
 ALGORITËM ANALITIK
 Algoritëm i përgjithshëm.
 Algoritëm i detajizuar.
14
Algoritme
PROBLEMI: Caktimi i numrit më të madh nga tre numra
ALGORITËM ANALITIK I PËRGJITHËM:
Hapi 1. Leximi i tre numrave.
Hapi 2. Krahasimi i dy numrave dhe përcaktimi i numrit më të madh.
Hapi 3. Krahasimi i numrit më të madh nga Hapi 2 me numrin e tretë.
Hapi 4. Shtypja e numrit më të madh nga tre numrat.
ALGORITËM ANALITIK I DETAJIZUAR:
Hapi 1. Leximi i numrave a, b, c.
Hapi 2. Nëse a>b atëherë xa, përndryshe xb.
Hapi 3. Nëse x>c atëherë yx, përndryshe yc.
Hapi 1. Shtypja e numrit y.
15
Programimi
 PARAQITJA E ALGORITMEVE
 Tekstuale – përdoret pseudo-gjuhë me fjalë të caktuara
 Grafike – përdoren bllok-diagrame
FJALË TË PSEUDO GJUHËS
 algoritëm,
 subalgoritm,
 fillim,
 fund,
 lexo,
 shtyp,
 nëse,
 atëherë,
 përndryshe,









fund_nëse,
përderisa,
ekzekuto
përsërit,
për,
hap,
zmadho,
zvoglo,
dalje.
16
Algoritme
Paraqitja grafike e algoritmeve
Fillim
Tregon fillimin e algoritmit
Lexohen vlerat e variabllave të
shënuara në bllok
Lexohen vlerat e variabllave të
shënuara në bllok
Realizohen veprimet ose llogaritjet
të shënuara në bllok
Degëzimi i veprimeve në bazë të
kushteve të shënuara në bllok
Fund
Tregon fundin e algoritmit
17
Programimi
Paraqitja tekstuale e algoritmit për caktimin e
numrit më të madh nga tre numra
algoritëm NumriMaksimal:
fillim
lexo a,b,c;
nëse a>b
atëherë xa
përndryshe xb
fund_nëse
nëse x>c
atëherë yx
përndryshe yc
fund_nëse
shtyp y
fund
18
Algoritme
Fillim
Bllok diagrami i algoritmit për caktimin e
numrit më të madh nga tre numra
a,b,c
a>b
xa
xb
x>c
yc
yx
y
Fund
19
Programimi strukturor
PROGRAMIMI STRUKTUROR – përdor strukturat kontrolluese për të caktuar radhitjen e
ekzekutimit të hapave algoritmike.
Strukturat kontrolluese:
1. Struktura kontrolluese sekuenciale
2. Strukturat kontrolluese seleksionuese
Hyrje
Struktura
kontrolluese
Dalje
3. Strukturat kontrolluese ciklike
20
1.Struktura kontrolluese sekuenciale
STRUKTURA KONTROLLUESE SEKUENCIALE (Sequence) – përmban hapa
algoritmike që ekzekutohen sipas radhës.
Hyrje
Hapi A
Hapi B
...
Hapi N
Dalje
SK në pseudo-gjuhë
Fillim
Hapi A;
Hapi B;
…
Hapi N;
Fund
Shembull:
Fillim
x15;
x210;
yx2;
xx1+y;
Shtyp x,y;
Fund
; Ndarje e hapave algoritmike.
 Dhënia e vlerës së variablës.
Dhëmbëzimi.
21
2.Strukturat kontrolluese seleksionuese
STRUKTURAT KONTROLLUESE SELEKSIONUESE (Selection) – mundësojnë
selektim të një drejtimi nga drejtimet e mundshme të ekzekutimit të hapave algoritmike,
sipas kushtit të caktuar logjik.
KLASIFIKIMI:
1. Struktura seleksionuese për selektim të një prej dy drejtimeve të mundshme.
2. Struktura seleksionuese për selektim të një prej më tepër drejtimeve të mundshme.
1.SK seleksionuese për selektim të një prej dy drejtimeve të mundshme
Pseudo-kod
Hyrje
Jo
Kushti
Hapi B
Po
Hapi A
Nëse Kushti
Atëherë
Hapi A
Përndryshe
Hapi B
FundNëse
Shembull:
Nëse a>b
Atëherë
xa
Përndryshe
xb
FundNëse
Dalje
22
2. Strukturat kontrolluese seleksionuese
RASTI 1 – Drejtimet e mundshme mund të përmbajnë më shumë hapa algoritmike.
Hyrje
Pseudo-kod
Jo
Po
Kushti
Hapi B1
Hapi A1
Hapi B2
Hapi A2
...
...
Hapi Bm
Hapi An
Nëse Kushti
Atëherë
Hapi A1;
Hapi A2;
…
Hapi An;
Përndryshe Hapi B1
Hapi B1;
Hapi B2;
…
Hapi Bm;
FundNëse
Shembull:
Nëse a>b
Atëherë
ii+1;
xa;
S1S1+100;
Përndryshe
ii+1;
xb;
S2S2+200;
FundNëse
Dalje
23
2. Strukturat kontrolluese seleksionuese
RASTI 2 – Një nga drejtimet e mundshme nuk përmban hapa algoritmike.
Hyrje
Jo
Hyrje
Po
Kushti
Jo
Pseudo-kod
Po
Kushti
Hapi A1
Hapi A
Hapi A2
Dalje
...
Nëse Kushti
Atëherë
Hapi A1;
Hapi A2;
…
Hapi An;
FundNëse
Hapi An
Shembull:
Pseudo-kod
Nëse Kushti
Atëherë
Hapi A
FundNëse
Shembull:
Nëse a>b
Atëherë
xa
FundNëse
Dalje
Nëse a>b
Atëherë
ii+1;
xa;
S1S1+100;
FundNëse
24
2.Strukturat kontrolluese seleksionuese
Struktura seleksionuese për selektim të një prej më tepër drejtimeve të mundshme të
ekzekutimit të hapave algoritmike.
Pseudo-kod
Hyrje
Shprehje
a
Hapi A
b
Hapi B
n
…
Hapi N
Hapi X
Rasti shprehje
a: Hapi A;
b: Hapi B;
…
c: Hapi N;
Përndryshe Hapi X
FundRasti
Dalje
25
2.Strukturat kontrolluese seleksionuese
Struktura seleksionuese për selektim të një prej më tepër drejtimeve të mundshme të
ekzekutimit të hapave algoritmike.
Shembull:
Fillim
Lexo n;
Rasti n
1: Shtyp “Dobët”;
2: Shtyp “Majftueshëm”;
3: Shtyp “Mirë”;
4: Shtyp “Shumë mirë”;
5: Shtyp “Shkëlqyeshëm”;
Përndryshe
Shtyp “Gabim”;
FundRasti
Fund
26
3.Strukturat kontrolluese ciklike (SKC)
STRUKTURAT KONTROLLUESE CIKLIKE (LOOP) – mundësojnë përsëritje të grupeve të
hapave algoritmike.
KLASIFIKIMI:
1. SKC me dalje në fillim të ciklit. 2. SKC me dalje në fund të ciklit. 3. SKC me numërim të cikleve.
1. STRUKTURA CIKLIKE ME DALJE NË FILLIM TË CIKLIT
Hyrje
Kushti
Po
Hapi A
...
Hapi N
Dalje
Jo
SK në pseudo-gjuhë:
DerisaEkzekuto
Derisa Kushti Ekzekuto
Hapi A;
Hapi B;
…
Hapi N;
 Hapat algoritmike të ciklit
ekzekutohen derisa është i
plotësuar kushti
 Mund të mos ekzekutohet
asnjë cikël nëse nuk është i
plotësuar kushti.
FundDerisa
27
SKC ma dalje në fillim të ciklit
Shembull: Të llogaritet shuma e n numrave të
parë natyrorë me strukturën kontrolluese
DerisaEkzekuto.
Fillim
n
S0
i1
Jo
i≤n
Po
SS+i
i i+1
S
Fund
Algoritmi Shuma_n_DE
Fillim
Lexo n;
S0;
i1;
Derisa i<n Ekzekuto
SS+i;
ii+1;
FundDerisa
Shtyp S;
Fund
Hapi
Komanda
Rezultati
1
Fillim
Fillimi i algoritmit
2
Lexo n;
n=3
3
S0
S=0
4
i1
i=1
5
(i<=n)?
Po (1<=3)
6
SS+i
S=0+1=1
7
ii+1
i=1+1=2
8
(i<=n)?
Po (2<=3)
9
SS+i
S=1+2=3
10
ii+1
i=2+1=3
11
(i<=n)?
Po (3<=3)
12
SS+i
S=3+3=6
13
ii+1
i=3+1=4
14
(i<=n)?
Jo (4>3)
15
Shtyp S
Shtypet numri 6
16
Fund
Fundi i algoritmit
28
3.Strukturat kontrolluese ciklike (SKC)
2. STRUKTURA KONTROLLUESE CIKLIKE ME DALJE NË FUND TË CIKLIT
Hyrje
SK në pseudo-gjuhë:
EkzekutoDerisa
Hapi N
Ekzekuto
Hapi A;
Hapi B;
…
Hapi N;
Kushti
Derisa Kushti
FundEkzekuto
Hapi A
...
Po
 Hapat algoritmike të ciklit
ekzekutohen derisa është i
plotësuar kushti.
 Së paku një cikël
ekzekutohet meqë kushti
llogaritet në fund të ciklit.
Jo
Dalje
29
SKC ma dalje në fund të ciklit
Shembull: Të llogaritet shuma e n numrave
të parë natyrorë me strukturën kontrolluese
EkzekutoDerisa.
Fillim
n
S0
i1
SS+i
ii+1
Po
i≤n
Jo
S
Fund
Algoritmi Shuma_n_ED
Fillim
Lexo n;
S0;
i1;
Ekzekuto
SS+i;
ii+1;
Derisa i<n
FundEkzekuto
Shtyp S;
Fund
Hapi
Komanda
Rezultati
1
Fillim
Fiilimi i algoritmit
2
Lexo n;
n=3
3
S0
S=0
4
i1
i=1
5
SS+i
S=0+1=1
6
ii+1
i=1+1=2
7
(i<=n)?
Po (2<=3)
8
SS+i
S=1+2=3
9
ii+1
i=2+1=3
10
(i<=n)?
Po (3<=3)
11
SS+i
S=3+3=6
12
ii+1
i=3+1=4
13
(i<=n)?
Jo (4>3)
14
Shtyp S
Shtypet numri 6
15
Fund
Fundi i algoritmit
30
3. STRUKTURA KONTROLLUESE CIKLIKE ME NUMËRIM TË CIKLEVE
Hyrje
SK në pseudo-gjuhë:
PërDerinëHapi
ifillim
i<fund
Po
Hapi A
Jo
Për ifillim Derinë fund Hapi vlera
Hapi A;
Hapi B;
…
 Numri i ekzekutimeve të
ciklit llogaritet në bazë të
parametrave të strukturës.
Hapi N;
FundPër
...
Hapi N
i i+vlera
Dalje
PARAMETRA TË STRUKTURËS:
i – numëruesi i cikleve.
fillim – vlera fillestare e numëruesit për të cilën ekzekutohet cikli.
fund – vlera e fundit e numëruesit për të cilën ekzekutohet cikli.
vlera – vlera e për të cilën ndryshohet numëruesi i.
31
SKC ma numrim të cikleve
Shembull: Të llogaritet shuma e n numrave
të parë natyrorë me strukturën kontrolluese
PërDerinëHapi.
.
Fillim
n
S0
i1
i≤n
Po
Jo
Algoritmi Shuma_n_PDH
Fillim
Lexo n;
S0;
Për i1 Derinë n Hapi 1
SS+i;
FundPër
Shtyp S;
Fund
SS+i
i i+1
S
Fund
Parametrat e strukturës:
i – numëruesi i cikleve.
fillim=1
fund=n .
vlera=1
Hapi
Komanda
Rezultati
1
Fillim
Fiilimi i algoritmit
2
Lexo n;
n=3
3
S0
S=0
4
i1
i=1
5
(i<=n)?
Po (1<=3)
6
SS+i
S=0+1=1
7
ii+1
i=1+1=2
8
(i<=n)?
Po (2<=3)
9
SS+i
S=1+2=3
10
ii+1
i=2+1=3
11
(i<=n)?
Po (3<=3)
12
SS+i
S=3+3=6
13
ii+1
i=3+1=4
14
(i<=n)?
Jo (4>3)
15
Shtyp S
Shtypet numri 6
16
Fund
Fundi i algoritmit
32
SKC ma dalje në fillim të ciklit
Hapi
Komanda
Rezultati
1
Fillim
Fiilimi i algoritmit
2
Lexo n;
n=3
3
S0
S=0
4
i1
i=1
5
(i<=n)?
Po (1<=3)
6
SS+i
S=0+1=1
7
ii+1
i=1+1=2
8
(i<=n)?
Po (2<=3)
9
SS+i
S=1+2=3
10
ii+1
i=2+1=3
11
(i<=n)?
Po (3<=3)
12
SS+i
S=3+3=6
i≤n
Jo
S
13
ii+1
i=3+1=4
14
(i<=n)?
Jo (4>3)
15
Shtyp S
Shtypet numri 6
Fund
16
Fund
Fundi i algoritmit
33
Shembull: Të llogaritet shuma e n numrave të
parë natyrorë me strukturën kontrolluese
EkzekutoDerisa.
Fillim
n
S0
i1
SS+i
ii+1
Po
Algoritmi Shuma_n_DE
Fillim
Lexo n;
S0;
i1;
Derisa i<n Ekzekuto
SS+i;
ii+1;
FundDerisa
Shtyp S;
Fund