380 likes | 801 Views
PROGRAMIM I. UNIVERSITETI I TETOVËS. Përmbajtja. 1. Programimi. 2. Gjuhët programuese. 3. Algoritme. Programimi. PROGRAMIMI – procesi i shkuarjes së programeve kompjuterike.
E N D
PROGRAMIM I UNIVERSITETI I TETOVËS
Përmbajtja 1. Programimi 2. Gjuhët programuese 3. Algoritme
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: • Gjuhë makinerike (Machine Languages). • Gjuhë simbolike - asembler (Assembly Languages). • Gjuhë programuese të nivelit të lartë (High-level Programming Languages).
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 binareKomanda heksadecimale 1000111011011000 8ED8 1100110100100001 CD21 1011010001001100 B44C
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
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 }
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: • Gjuhë funksionale (të dhëna hyrëse funksione rezultate dalëse): Lisp,etj. • Gjuhë logjike (të dhëna hyrëse relacione rezultate dalëse): Prolog etj.
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.)
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)
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.
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
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
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
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.
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ë xa, përndryshe xb. Hapi 3. Nëse x>c atëherë yx, përndryshe yc. Hapi 1. Shtypja e numrit y.
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.
Fillim Fund Algoritme Paraqitja grafike e algoritmeve 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 Tregon fundin e algoritmit
Programimi Paraqitja tekstuale e algoritmit për caktimin e numrit më të madh nga tre numra algoritëmNumriMaksimal: 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
Fund Algoritme Bllok diagrami i algoritmit për caktimin e numrit më të madh nga tre numra Fillim a,b,c a>b xa xb x>c yc yx y
Programimi strukturor PROGRAMIMI STRUKTUROR – përdor strukturat kontrolluese për të caktuar radhitjen e ekzekutimit të hapave algoritmike. Strukturat kontrolluese: Hyrje 1. Struktura kontrolluese sekuenciale Struktura kontrolluese 2. Strukturat kontrolluese seleksionuese Dalje 3. Strukturat kontrolluese ciklike
Hyrje Hapi A Hapi B . . . Hapi N Dalje 1.Struktura kontrolluese sekuenciale STRUKTURA KONTROLLUESE SEKUENCIALE (Sequence) – përmban hapa algoritmike që ekzekutohen sipas radhës. SK në pseudo-gjuhë Shembull: Fillim x15; x210; yx2; xx1+y; Shtyp x,y; Fund Fillim Hapi A; Hapi B; … Hapi N; Fund ; Ndarje e hapave algoritmike. • Dhënia e vlerës së variablës. Dhëmbëzimi.
Hyrje Jo Po Kushti Hapi B Hapi A Dalje 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 Shembull: Nëse a>b Atëherë xa Përndryshe xb FundNëse Nëse Kushti Atëherë Hapi A Përndryshe Hapi B FundNëse
2. Strukturat kontrolluese seleksionuese RASTI 1 – Drejtimet e mundshme mund të përmbajnë më shumë hapa algoritmike. Hyrje Pseudo-kod Shembull: Jo 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 Po Kushti Hapi B1 Hapi A1 Hapi B2 Hapi A2 . . . . . . Hapi An Hapi Bm Dalje
Hyrje Jo Po Hyrje Kushti Po Hapi A1 Kushti Hapi A Hapi A2 . . . Dalje Hapi An Dalje 2. Strukturat kontrolluese seleksionuese RASTI 2 – Një nga drejtimet e mundshme nuk përmban hapa algoritmike. Pseudo-kod Jo Nëse Kushti Atëherë Hapi A1; Hapi A2; … Hapi An; FundNëse Shembull: Pseudo-kod Nëse a>b Atëherë ii+1; xa; S1S1+100; FundNëse Shembull: Nëse Kushti Atëherë Hapi A FundNëse Nëse a>b Atëherë xa FundNëse
Hyrje Shprehje a b n … Hapi A Hapi B Hapi N Hapi X Dalje 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 Rasti shprehje a: Hapi A; b: Hapi B; … c: Hapi N; Përndryshe Hapi X FundRasti
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
Kushti 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 SK në pseudo-gjuhë: DerisaEkzekuto Jo Hapat algoritmike të ciklit ekzekutohen derisa është i plotësuar kushti Derisa Kushti Ekzekuto Hapi A; Hapi B; … Hapi N; FundDerisa Po Hapi A Mund të mos ekzekutohet asnjë cikël nëse nuk është i plotësuar kushti. . . . Hapi N Dalje
n Fillim Fund S0 i1 Jo i≤n Po SS+i i i+1 S SKC ma dalje në fillim të ciklit Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese DerisaEkzekuto. Algoritmi Shuma_n_DE Fillim Lexo n; S0; i1; Derisa i<nEkzekuto SS+i; ii+1; FundDerisa Shtyp S; Fund
Hyrje Hapi A . . . Kushti Hapi N Po Jo Dalje 3.Strukturat kontrolluese ciklike (SKC) 2. STRUKTURA KONTROLLUESE CIKLIKE ME DALJE NË FUND TË CIKLIT SK në pseudo-gjuhë: EkzekutoDerisa Ekzekuto Hapi A; Hapi B; … Hapi N; Derisa Kushti FundEkzekuto Hapat algoritmike të ciklit ekzekutohen derisa është i plotësuar kushti. Së paku një cikël ekzekutohet meqë kushti llogaritet në fund të ciklit.
n Fillim Fund i ≤ n SKC ma dalje në fund të ciklit Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese EkzekutoDerisa. Algoritmi Shuma_n_ED Fillim Lexo n; S0; i1; Ekzekuto SS+i; ii+1; Derisa i<n FundEkzekuto Shtyp S; Fund S0 i1 SS+i ii+1 Po Jo S
i<fund 3. STRUKTURA KONTROLLUESE CIKLIKE ME NUMËRIM TË CIKLEVE Hyrje SK në pseudo-gjuhë: PërDerinëHapi ifillim Për ifillim Derinë fund Hapi vlera Hapi A; Hapi B; … Hapi N; FundPër Numri i ekzekutimeve të ciklit llogaritet në bazë të parametrave të strukturës. Jo Po Hapi A . . . 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ëruesitpër të cilën ekzekutohet cikli. vlera –vlera e për të cilën ndryshohet numëruesi i. Hapi N i i+vlera Dalje
n Fillim Fund S0 i1 Jo i ≤ n Po SS+i i i+1 S SKC ma numrim të cikleve Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese PërDerinëHapi. . Algoritmi Shuma_n_PDH Fillim Lexo n; S0; Për i1 Derinë n Hapi 1 SS+i; FundPër Shtyp S; Fund Parametrat e strukturës: i – numëruesi i cikleve. fillim=1 fund=n. vlera=1
n Fillim Fund i ≤ n SKC ma dalje në fillim të ciklit Shembull: Të llogaritet shuma e n numrave të parë natyrorë me strukturën kontrolluese EkzekutoDerisa. Algoritmi Shuma_n_DE Fillim Lexo n; S0; i1; Derisa i<nEkzekuto SS+i; ii+1; FundDerisa Shtyp S; Fund S0 i1 SS+i ii+1 Po Jo S