PROGRAMIM I UNIVERSITETI I TETOVS 1 Prmbajtja 1
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 8 ED 8 1100110100100001 CD 21 101101001100 B 44 C 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 16 D 7: 000 F Move [BX], AL 16 D 7: 0011 Move AH, 4 C 16 16 D 7: 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 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 Numri. Maksimal: fillim lexo a, b, c; nëse a>b atëherë x a përndryshe x b fund_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 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 x 1 5; x 2 10; y x 2; x x 1+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 Fund. Nëse Shembull: Nëse a>b Atëherë x a Përndryshe x b Fund. Nëse Dalje 22
2. Strukturat kontrolluese seleksionuese RASTI 1 – Drejtimet e mundshme mund të përmbajnë më shumë hapa algoritmike. Hyrje Pseudo-kod Jo Kushti Po Hapi B 1 Hapi A 1 Hapi B 2 Hapi A 2 . . . Hapi Bm Hapi An Nëse Kushti Atëherë Hapi A 1; Hapi A 2; … Hapi An; Përndryshe Hapi B 1; Hapi B 2; … Hapi Bm; Fund. Nëse Shembull: Nëse a>b Atëherë i i+1; x a; S 1+100; Përndryshe i i+1; x b; S 2+200; Fund. Nëse Dalje 23
2. Strukturat kontrolluese seleksionuese RASTI 2 – Një nga drejtimet e mundshme nuk përmban hapa algoritmike. Hyrje Jo Kushti Po Jo Kushti Pseudo-kod Po Hapi A 1 Hapi A 2 Dalje . . . Nëse Kushti Atëherë Hapi A 1; Hapi A 2; … Hapi An; Fund. Nëse Hapi An Pseudo-kod Nëse Kushti Atëherë Hapi A Fund. Nëse Shembull: Nëse a>b Atëherë x a Fund. Nëse Dalje Shembull: Nëse a>b Atëherë i i+1; x a; S 1+100; Fund. Në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 Fund. Rasti 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”; Fund. Rasti 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. Fund. Derisa 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; Fund. Derisa Shtyp S; Fund Hapi Komanda Rezultati 1 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 Fundi i algoritmit 28
3. Strukturat kontrolluese ciklike (SKC) 2. STRUKTURA KONTROLLUESE CIKLIKE ME DALJE NË FUND TË CIKLIT Hyrje Hapi N Ekzekuto Hapi A; Hapi B; … Hapi N; Kushti Derisa Kushti Fund. Ekzekuto Hapi A. . . Po SK në pseudo-gjuhë: Ekzekuto Derisa 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 Fund. Ekzekuto 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 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; Fund. Pë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; Fund. Pë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 Fundi i algoritmit 32
SKC ma dalje në fillim 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_DE Fillim Lexo n; S 0; i 1; Derisa i<n Ekzekuto S S+i; i i+1; Fund. Derisa 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 (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 Fundi i algoritmit 33
- Slides: 33