Download - PROGRAMIM I

Transcript
Page 1: PROGRAMIM  I

1

PROGRAMIM I

UNIVERSITETI I TETOVËS

Page 2: PROGRAMIM  I

2

Përmbajtja

1. Programimi1. Programimi

2. Gjuhët programuese2. Gjuhët programuese

3. Algoritme3. Algoritme

Page 3: PROGRAMIM  I

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).

Page 4: PROGRAMIM  I

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

Page 5: PROGRAMIM  I

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, …).

Page 6: PROGRAMIM  I

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

}

Page 7: PROGRAMIM  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.

Page 8: PROGRAMIM  I

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.)

Page 9: PROGRAMIM  I

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)

Page 10: PROGRAMIM  I

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.

Page 11: PROGRAMIM  I

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

Page 12: PROGRAMIM  I

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

Page 13: PROGRAMIM  I

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:

Page 14: PROGRAMIM  I

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.

Page 15: PROGRAMIM  I

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.

Page 16: PROGRAMIM  I

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.

Page 17: PROGRAMIM  I

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

Page 18: PROGRAMIM  I

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

Page 19: PROGRAMIM  I

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

Page 20: PROGRAMIM  I

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

Page 21: PROGRAMIM  I

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:

Page 22: PROGRAMIM  I

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

Page 23: PROGRAMIM  I

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

. . .

Page 24: PROGRAMIM  I

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:

Page 25: PROGRAMIM  I

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

Page 26: PROGRAMIM  I

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:

Page 27: PROGRAMIM  I

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

Page 28: PROGRAMIM  I

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

Page 29: PROGRAMIM  I

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)

Page 30: PROGRAMIM  I

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

Page 31: PROGRAMIM  I

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.

Page 32: PROGRAMIM  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

Page 33: PROGRAMIM  I

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.