programim i
DESCRIPTION
PROGRAMIM I. UNIVERSITETI I TETOVËS. Përmbajtja. 1. Programimi. 2. Gjuhët programuese. 3. Algoritme. Programimi. PROGRAMIMI – procesi i shkuarjes së programeve kompjuterike. - PowerPoint PPT PresentationTRANSCRIPT
1
PROGRAMIM I
UNIVERSITETI I TETOVËS
2
Përmbajtja
1. Programimi1. Programimi
2. Gjuhët programuese2. Gjuhët programuese
3. Algoritme3. Algoritme
3
Programimi
PROGRAMIMI – procesi i shkuarjes së programeve kompjuterike.
GJUHË PROGRAMUESE – gjuhë artificiale për komunikim në relacionin njeri-kompjuter 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).
4
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 makinerikKomanda binare Komanda heksadecimale1000111011011000 8ED8
1100110100100001 CD211011010001001100 B44C
5
Programimi
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ë asembler16D7:000F Move [BX], AL 16D7:0011 Move AH, 4C1616D7:0013 Int 21
GJUHË SIMBOLIKE - ASEMBLER (1950) – programet përmbajnë komanda me simbole të paracaktuara (Move, Load, Add, …).
6
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
}
7
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.
8
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.)
9
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)
10
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.
11
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
12
Programi burimor
Përkthyesi (Compiler)
Programi ekzekutiv
Programi burimor
Interpretuesi (Interpreter)
Rezultate dalëse
Përkthimi i programeve
Intepretimi i programeve
Gjuhë programuese
Të dhëna hyrëse
13
1. Definimi i problemit 1. Definimi i problemit
2. Definimi i algoritmit (veprimit për zgjidhje të problemit) 2. Definimi i algoritmit (veprimit për zgjidhje të problemit)
3. Programimi (Shkruarja e programit)3. Programimi (Shkruarja e programit)
4. Testimi i programit4. Testimi i programit
Zgjidhje kompjuterike e problemit të caktuar:
14
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.
15
Algoritme
PROBLEMI: Caktimi i numrit më të madh nga tre numra
ALGORITËM ANALITIK I DETAJIZUAR:
Hapi 1. Leximi i numrave a, b, c.
Hapi 2. Nëse a>b atëherë xa, përndryshe xb.
Hapi 3. Nëse x>c atëherë yx, përndryshe yc.
Hapi 1. Shtypja e numrit y.
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.
16
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.
17
Algoritme
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
Paraqitja grafike e algoritmeve
Fillim
Fund Tregon fundin e algoritmit
Degëzimi i veprimeve në bazë të kushteve të shënuara në bllok
18
Programimi
algoritëm NumriMaksimal:
fillim
lexo a,b,c;
nëse a>b
atëherë xa
përndryshe xb
fund_nëse
nëse x>c
atëherë yx
përndryshe yc
fund_nëse
shtyp y
fund
Paraqitja tekstuale e algoritmit për caktimin e numrit më të madh nga tre numra
19
Algoritme
Fillim
Fund
a,b,c
a>b
xaxb
yxyc
x>c
y
Bllok diagrami i algoritmit për caktimin e numrit më të madh nga tre numra
20
Programimi strukturor
Strukturat kontrolluese:Strukturat kontrolluese:
1. Struktura kontrolluese sekuenciale1. Struktura kontrolluese sekuenciale
2. Strukturat kontrolluese seleksionuese2. Strukturat kontrolluese seleksionuese
3. Strukturat kontrolluese ciklike3. Strukturat kontrolluese ciklike
PROGRAMIMI STRUKTUROR – përdor strukturat kontrolluese për të caktuar radhitjen e ekzekutimit të hapave algoritmike.
Struktura kontrolluese
Dalje
Hyrje
21
1.Struktura kontrolluese sekuenciale
Hapi A
Hapi B
Hapi N
Hyrje
Dalje
. . .
Fillim
Hapi A;
Hapi B;
…
Hapi N;
Fund
STRUKTURA KONTROLLUESE SEKUENCIALE (Sequence) – përmban hapa algoritmike që ekzekutohen sipas radhës.
Fillim
x15;
x210;
yx2;
xx1+y;
Shtyp x,y;
Fund
; Ndarje e hapave algoritmike. Dhënia e vlerës së variablës.
Dhëmbëzimi.
SK në pseudo-gjuhë Shembull:
22
2.Strukturat kontrolluese seleksionuese
Nëse Kushti
Atëherë
Hapi A
Përndryshe
Hapi B
FundNëse
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.
Nëse a>b
Atëherë
xa
Përndryshe
xb
FundNëse
Hyrje
Hapi AHapi B
Dalje
Kushti Po Jo
Pseudo-kod Shembull:
1.SK seleksionuese për selektim të një prej dy drejtimeve të mundshme
23
2. Strukturat kontrolluese seleksionuese
Nëse Kushti
Atëherë
Hapi A1;
Hapi A2;
…
Hapi An;
Përndryshe Hapi B1
Hapi B1;
Hapi B2;
…
Hapi Bm;
FundNëse
Nëse a>b
Atëherë
ii+1;
xa;
S1S1+100;
Përndryshe
ii+1;
xb;
S2S2+200;
FundNëse
RASTI 1 – Drejtimet e mundshme mund të përmbajnë më shumë hapa algoritmike.
Pseudo-kod Shembull:Hyrje
Hapi A1Hapi B1
Dalje
Kushti Po
Jo
Hapi A2
Hapi An
Hapi B2
. . .
Hapi Bm
. . .
24
2. Strukturat kontrolluese seleksionuese
Hyrje
Hapi A
Dalje
Kushti Po Jo
RASTI 2 – Një nga drejtimet e mundshme nuk përmban hapa algoritmike.
Hyrje
Hapi A1
Dalje
Kushti Po Jo
Hapi A2
Hapi An
. . .
Nëse Kushti
Atëherë
Hapi A
FundNëse
Pseudo-kod
Nëse Kushti
Atëherë
Hapi A1;
Hapi A2;
…
Hapi An;
FundNëse
Pseudo-kod
Nëse a>b
Atëherë
ii+1;
xa;
S1S1+100;
FundNëse
Shembull:
Nëse a>b
Atëherë
xa
FundNëse
Shembull:
25
2.Strukturat kontrolluese seleksionuese
Struktura seleksionuese për selektim të një prej më tepër drejtimeve të mundshme të ekzekutimit të hapave algoritmike.
Hyrje
Hapi X
Dalje
Shprehje
Hapi NHapi BHapi A …
a b n
Rasti shprehje
a: Hapi A;
b: Hapi B;
…
c: Hapi N;
Përndryshe Hapi X
FundRasti
Pseudo-kod
26
2.Strukturat kontrolluese seleksionuese
Struktura seleksionuese për selektim të një prej më tepër drejtimeve të mundshme të ekzekutimit të hapave algoritmike.
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
Shembull:
27
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
Hapi A
Hapi N
Hyrje
Dalje
. . .
Kushti
Po
Jo
Derisa Kushti Ekzekuto
Hapi A;
Hapi B;
…
Hapi N;
FundDerisa
SK në pseudo-gjuhë: DerisaEkzekuto
Mund të mos ekzekutohet asnjë cikël nëse nuk është i plotësuar kushti.
Hapat algoritmike të ciklit ekzekutohen derisa është i plotësuar kushti
28
SKC ma dalje në fillim të ciklit
Algoritmi Shuma_n_DE
Fillim
Lexo n;
S0;
i1;
Derisa i<n Ekzekuto
SS+i;
ii+1;
FundDerisa
Shtyp S;
Fund
Hapi Komanda Rezultati
1 Fillim Fillimi i algoritmit
2 Lexo n; n=3
3 S0 S=0
4 i1 i=1
5 (i<=n)? Po (1<=3)
6 SS+i S=0+1=1
7 ii+1 i=1+1=2
8 (i<=n)? Po (2<=3)
9 SS+i S=1+2=3
10 ii+1 i=2+1=3
11 (i<=n)? Po (3<=3)
12 SS+i S=3+3=6
13 ii+1 i=3+1=4
14 (i<=n)? Jo (4>3)
15 Shtyp S Shtypet numri 6
16 Fund Fundi i algoritmit
Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese DerisaEkzekuto.
SS+i
i≤nPo
Jo
i i+1
i1
Fillim
n
S
Fund
S0
29
2. STRUKTURA KONTROLLUESE CIKLIKE ME DALJE NË FUND TË CIKLIT
Ekzekuto
Hapi A;
Hapi B;
…
Hapi N;
Derisa Kushti FundEkzekuto
SK në pseudo-gjuhë: EkzekutoDerisa
Së paku një cikël ekzekutohet meqë kushti llogaritet në fund të ciklit.
Hapat algoritmike të ciklit ekzekutohen derisa është i plotësuar kushti.
Hyrje
Hapi A
Hapi N
Dalje
. . .
Kushti Po
Jo
3.Strukturat kontrolluese ciklike (SKC)
30
SKC ma dalje në fund të ciklit
Algoritmi Shuma_n_ED
Fillim
Lexo n;
S0;
i1;
Ekzekuto
SS+i;
ii+1;
Derisa i<n
FundEkzekuto
Shtyp S;
Fund
Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese EkzekutoDerisa.
Fillim
S0
SS+i
ii+1
i ≤ n Po
Jo
i1
n
S
Fund
Hapi Komanda Rezultati
1 Fillim Fiilimi i algoritmit
2 Lexo n; n=3
3 S0 S=0
4 i1 i=1
5 SS+i S=0+1=1
6 ii+1 i=1+1=2
7 (i<=n)? Po (2<=3)
8 SS+i S=1+2=3
9 ii+1 i=2+1=3
10 (i<=n)? Po (3<=3)
11 SS+i S=3+3=6
12 ii+1 i=3+1=4
13 (i<=n)? Jo (4>3)
14 Shtyp S Shtypet numri 6
15 Fund Fundi i algoritmit
31
3. STRUKTURA KONTROLLUESE CIKLIKE ME NUMËRIM TË CIKLEVE
Për ifillim Derinë fund Hapi vlera
Hapi A;
Hapi B;
…
Hapi N; FundPër
SK në pseudo-gjuhë: PërDerinëHapi
Numri i ekzekutimeve të ciklit llogaritet në bazë të parametrave të strukturës.
Hapi A
Hapi N
Dalje
. . .
i<fund
Po
Jo
i i+vlera
ifillim
Hyrje
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.
32
SKC ma numrim të cikleve
Algoritmi Shuma_n_PDH
Fillim
Lexo n;
S0;
Për i1 Derinë n Hapi 1
SS+i;
FundPër
Shtyp S;
Fund
Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese PërDerinëHapi.
.
SS+i
i ≤ nPo
Jo
i i+1
i1
Fillim
n
S
Fund
S0
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 S0 S=0
4 i1 i=1
5 (i<=n)? Po (1<=3)
6 SS+i S=0+1=1
7 ii+1 i=1+1=2
8 (i<=n)? Po (2<=3)
9 SS+i S=1+2=3
10 ii+1 i=2+1=3
11 (i<=n)? Po (3<=3)
12 SS+i S=3+3=6
13 ii+1 i=3+1=4
14 (i<=n)? Jo (4>3)
15 Shtyp S Shtypet numri 6
16 Fund Fundi i algoritmit
33
SKC ma dalje në fillim të ciklit
Algoritmi Shuma_n_DE
Fillim
Lexo n;
S0;
i1;
Derisa i<n Ekzekuto
SS+i;
ii+1;
FundDerisa
Shtyp S;
Fund
Hapi Komanda Rezultati
1 Fillim Fiilimi i algoritmit
2 Lexo n; n=3
3 S0 S=0
4 i1 i=1
5 (i<=n)? Po (1<=3)
6 SS+i S=0+1=1
7 ii+1 i=1+1=2
8 (i<=n)? Po (2<=3)
9 SS+i S=1+2=3
10 ii+1 i=2+1=3
11 (i<=n)? Po (3<=3)
12 SS+i S=3+3=6
13 ii+1 i=3+1=4
14 (i<=n)? Jo (4>3)
15 Shtyp S Shtypet numri 6
16 Fund Fundi i algoritmit
Fillim
S0
SS+i
ii+1
i ≤ n Po
Jo
i1
n
S
Fund
Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese EkzekutoDerisa.