DELEGATET DHE ZBATIMI I TYRE NE KOMPONETE

Σχετικά έγγραφα
Ligji I Ohmit Gjatë rrjedhës së rrymës nëpër përcjellës paraqitet. rezistenca. Georg Simon Ohm ka konstatuar

Algoritmet dhe struktura e të dhënave

PASQYRIMET (FUNKSIONET)

Analiza e regresionit të thjeshtë linear

Α ί τ η σ η Δ ή λ ω σ η σ υ μ μ ε τ ο χ ή ς

paraqesin relacion binar të bashkësisë A në bashkësinë B? Prandaj, meqë X A B dhe Y A B,

Fluksi i vektorit të intenzitetit të fushës elektrike v. intenzitetin të barabartë me sipërfaqen të cilën e mberthejnë faktorët

Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike. Agni H. Dika

Q k. E = 4 πε a. Q s = C. = 4 πε a. j s. E + Qk + + k 4 πε a KAPACITETI ELEKTRIK. Kapaciteti i trupit të vetmuar j =

Detyra për ushtrime PJESA 4

Metodat e Analizes se Qarqeve

Rikardo dhe modeli standard i tregtisë ndërkombëtare. Fakulteti Ekonomik, Universiteti i Prishtinës

Analiza e Regresionit dhe Korrelacionit

Nyjet, Deget, Konturet

Eλληνικά για σας A0 ανάγνωση - γραφή - προφορά - τονισμός. Gjuha greke për ju A0 lëxim - shkrim - shqiptim - theksim

Definimi i funksionit . Thirrja e funksionit

NDËRTIMI DHE PËRMBAJTJA E PUNIMIT

Kolegji - Universiteti për Biznes dhe Teknologji Fakultetit i Shkencave Kompjuterike dhe Inxhinierisë. Lënda: Bazat Teknike të informatikës - BTI

Kapitulli. Programimi linear i plote

Qëllimet: Në fund të orës së mësimit ju duhet të jeni në gjendje që të:

Treguesit e dispersionit/shpërndarjes/variacionit

KSF 2018 Student, Klasa 11 12

SI TË BËHENI NËNSHTETAS GREK? (Udhëzime të thjeshtuara rreth marrjes së nënshtetësisë greke)*

R = Qarqet magnetike. INS F = Fm. m = m 0 l. l =

Shtrohet pyetja. A ekziston formula e përgjithshme për të caktuar numrin e n-të të thjeshtë?

Tregu i tët. mirave dhe kurba IS. Kurba ose grafiku IS paraqet kombinimet e normave tët interesit dhe nivelet e produktit tët.

BAZAT E INFRASTRUKTURES NË KOMUNIKACION

Analiza e qarqeve duke përdorur ligjet Kirchhoff ka avantazhin e madh se ne mund të analizojme një qark pa ngacmuar konfigurimin e tij origjinal.

Testimi i hipotezave/kontrollimi i hipotezave Mostra e madhe

PËRMBLEDHJE DETYRASH PËR PËRGATITJE PËR OLIMPIADA TË MATEMATIKËS

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ALGJEBËR II Q. R. GASHI

Σι θα δούμε σε αυτό το μάθημα;

Definimi dhe testimi i hipotezave

Skripta e Kursit: Algjebra Elementare, Kalkulusi dhe Matematika Financiare, dhe Statistika Përshkruese Vëll. 1: Algjebra Elementare Edicioni i 3 të

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Rrjetat Kompjuterike. Arkitektura e rrjetave Lokale LAN. Ligjerues: Selman Haxhijaha

SUPERIORITETI DIELLOR ME TEKNOLOGJINË

Lënda: Mikroekonomia I. Kostoja. Msc. Besart Hajrizi

Studim i Sistemeve të Thjeshta me Fërkim në Kuadrin e Mekanikës Kuantike

AISHE HAJREDINI (KARAJ), KRISTAQ LULA. Kimia Inorganike. TESTE TË ZGJIDHURA Të maturës shtetërore

Generics και ArrayLists

2. Përpunimi digjital i sinjaleve

ELEKTROSTATIKA. Fusha elektrostatike eshte rast i vecante i fushes elektromagnetike.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Republika e Kosovës Republika Kosova - Republic of Kosovo

KALKULIMI TERMIK I MOTORIT DIESEL. 1. Sasia teorike e nevojshme për djegien e 1 kg lëndës djegëse: kmol ajër / kg LD.

2.1 Kontrolli i vazhdueshëm (Kv)

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

VENDIM Nr.803, date PER MIRATIMIN E NORMAVE TE CILESISE SE AJRIT

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

I}$E SF$RTIT MATURA SHTETIIRORE, MIN{ISTRIA E ARSIIITIT. liinua.: GJUHE GREKE (Niveli 82) PROGRAMET ORIEI{TUESE IKOLLA MIRATO

MATEMATIKË (Analizë me teori të gjasës)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής

2. DIODA GJYSMËPËRÇUESE

Γιατί η νέα γενιά Αλβανών μεταναστών στην Ελλάδα χάνει στη γλώσσα της; Νίκος Γογωνάς

REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR PËRGATITJEN E PROVIMIT KOMBËTAR

Υπερφόρτωση Μεθόδων και Πέρασμα Ορισμάτων

REPUBLIKA E KOSOVËS REPUBLIKA KOSOVO REPUBLIC OF KOSOVA QEVERIA E KOSOVËS - VLADA KOSOVA - GOVERNMENT OF KOSOVA

Algoritmika dhe Programimi i Avancuar KAPITULLI I HYRJE Algoritmat nje problem renditjeje Hyrja: a1, a2,, an> Dalja: <a 1, a 2,, a n> a 1 a 2 a n.

Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ

Libër. mësuesi 7,8,9. Lediana Bardhi. Informatika INFORMATIKA. INFORMATIKA Për klasën e tetë të arsimit 9-vjeçar 8 INFORMATIKA

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

MODULI: Antibiotikoterapia dhe antibiotikorezistenca Antibiotikët dhe Përdorimi i Tyre

Metodologji praktike për Deep Learning. kapitull i plotë

API: Applications Programming Interface

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Προγραμματισμός ΙΙ Εισαγωγή Τμήμα Ηλεκτρονικών Μηχανικών Εργαστήριο στην C# ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ

Indukcioni elektromagnetik

Sistemi qendror i pastrimit me Vakum. Teknika NINA. Tani pastrimi është më i lehtë!


Αντικειµενοστρεφής Προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008

UNIVERSITETI I GJAKOVËS FEHMI AGANI FAKULTETI I EDUKIMIT PROGRAMI PARASHKOLLOR PUNIM DIPLOME

Article 25 in LCPJ. Abstract

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Shpërndarjet e mostrave dhe intervalet e besueshmërisë për mesatare aritmetike dhe përpjesën. Ligjërata e shtatë

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

TEORIA E INFORMACIONIT

REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT

Ministria e Arsimit, Shkencës dhe Teknologjisë Ministarstvo Obrazovanja, Nauke i Tehnologije Ministry of Education, Science and Technology

Βασικά της γλώσσας JAVA

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Propozim për strukturën e re tarifore

Συλλογές, Στοίβες και Ουρές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Transcript:

DELEGATET DHE ZBATIMI I TYRE NE KOMPONETE KAPITULLI 5 Prof. Ass. Dr. Isak Shabani 1

Delegatët Delegati është tip me referencë i cili përdorë metoda si të dhëna. Përdorimi i zakonshëm i delegatëve është në rastet kur metodat trajtohen si të dhëna. Delegati është një tip që referon një metodë. Pasi t i caktohet metodës një delegat, delegati do të sillet saktësisht sikurse metoda. Metoda delegat mund të përdoret sikur çdo metodë tjetër, me parametra dhe vlerë kthyese. Përparësitë e përdorimit të delegatëve ndaj thirrjes direkte të metodave: Thirrja e shumë metodave duke përdorur vetëm një delegat, pa shkruar shumë thirrje të metodave. Implementimi i një sistemi sistem të bazuar në ngjarje. Thirrja e dy metoda të njejta në nënshkrim, që qëndrojnë në klasa të ndryshme. Kalimi i metodave si parametra. etj. 2/15

Delegatët - vazhdim Delegatët në C#: Delegati është tip, vlerat e të cilit përmbajnë metoda. Delegatët që përmbajnë metoda të instancës: Delegati mund të përmbajë një objekt, që përbëhet nga një pranues së bashku me një metodë që aktivizohet në pranues. Delegatët me shumë vlera: Një delegat mund të përmbajë një numër metodash. Shprehjet Llambda (λ) Sintaksa: parametrat-formal => trupi në vend të sintaksës delegate(parametrat-formal)trupi 3/15

Delegatët në C# Delegati është tip, vlerat e të cilit përmbajnë metoda. Delegatët na mundësojnë të punojmë me variabla dhe parametra të cilat përmbajnë metoda Një delegatë i një funksioni të thjeshtë numerik (shembull) Delegatët e bëjnë të mundur qasjen në stilin e programimit funksional. Metodat mund të pasohen gjithashtu si parametra dhe të kthehen si rezultate nga metodat tjera. Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Drejtimi: Inxhinieri Kompjuterike 4

Delegatët që përmbajnë metoda të instancës Në shembujt paraprak të gjithë delegatët përmbanin metoda statike Në rastin kur delegati përmban metoda të instancës, marrësi është pjesë e delegatit Klasa Messenger dhe delegati Mesazhi Një aplikacion që i shfrytëzon klasën dhe delegatin Delegatët e bëjnë të mundur qasjen në stilin e programimit funksional. Metodat mund të pasohen gjithashtu si parametra dhe të kthehen si rezultate nga metodat tjera. Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Drejtimi: Inxhinieri Kompjuterike 5

Delegatët me shumë vlera Një delegat mund të përmbajë një numër metodash Metodat Instalo dhe Deinstalo në klasën Messenger Një aplikacion Përmbledhje për delegatët: Delegatët janë tipe: vlerat e tipeve deleguese janë metoda, Me delegatë, metodat bëhen anëtarë të klasit të parë, Variabla e tipit delegate mund të përmbajë metoda statike dhe të instancës. Variabla e tipit delegues mund të përmbajë edhe dy e më shumë metoda. Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Drejtimi: Inxhinieri Kompjuterike 6

Shprehjet Llambda Shprehjet Llambda nga C# 3.0 ofrojnë qasje për notacionin e funksioneve anonime Shprehjet anonime të metodave në C# 2.0 delegate(...) statements janë shumë të ngjashme me shprehjet llambda Pesë funksionet anonime nga shprehjet e metodave anonime tek shprehjet llambda Karakteristikat e shprehjeve llambda Trupi mund të jetë bllok vendimesh ose shprehje Përdor operatoritn => i cili ka prioritet të ulët dhe është asociativ nga e djathta Mund të përmbajë referencë implicite të tipeve të parametrave Shprehjet llambda shërbejnë si melmesë sintakse për shprehjet me delegatë 7

Aplikacioni Biblioteka Aplikacioni Biblioteka e FIEK është realizuar që të mundësoj menaxhim më të lehtë dhe më të shpejtë të bibliotekës. 8/15

Zbatimi i delegatëve në aplikacionin Biblioteka Delegatët janë zbatuar për të kryer thirrjen e Ueb-mesazheve të cilat informojnë shfrytëzuesin e aplikacionit në rastet kur nuk plotësohen disa fusha të caktuara nga shfrytëzuesit apo edhe në rastet kur ndodh ndonjë gabim gjatë plotësimit të fushave. 9/15

Zbatimi i delegatëve në aplikacionin Biblioteka - vazhdim 10/15

Permbledhje per delegatet Rasti i aplikimit të delegatit në aplikacionin Biblioteka e FIEK dëshmon se delegatët mund të gjejnë zbatim në pothuajse të gjitha aplikacionet e programuara në C#. Delegatët mund edhe të ndihmojnë në reduktimin e rreshtave me kod. Tani ne vetëm e thërrasim delegatin në klasat në të cilat nevojiten alert mesazhet. Definimin e metodës e bëjmë vetëm një herë në një klasë të vetme. Prandaj, rekomandoj përdorimin e delegatëve sepse ofrojnë zgjidhje alternative në shumë probleme dhe paraqesin një vegël mjaft të fuqishme për të krijuar edhe aplikacione më të fuqishme. 11/15

Shembuj që referohen ligjeratat 12

Një delegat i thjeshtë i një funksioni numerik using System; public class Aplikacioni public delegate double FunksioniNumerik(double d); public static void ShtypeTabelenMeFunksione(FunksioniNumerik f, string femri, double nga, double tek, double hapi) double d; for (d = nga; d <= tek; d += hapi) Console.WriteLine("0,10(1,-4:F3) = 2", femri, d, f(d)); Console.WriteLine(); public static double Kubik(double d) return d * d * d; public static void Main() ShtypeTabelenMeFunksione(Math.Log, "log", 0.1, 5, 0.1); ShtypeTabelenMeFunksione(Math.Sin, "sin", 0.0, 2 * Math.PI, 0.1); ShtypeTabelenMeFunksione(Math.Abs, "abs", -1.0, 1.0, 0.1); ShtypeTabelenMeFunksione(Kubik, "kubik", 1.0, 5.0, 0.5); 13

Klasa Messenger dhe delegati Mesazhi using System; public delegate void Mesazhi(string txt); public class Messenger private string derguesi; private Mesazhi message; public Messenger(string derguesi) this.derguesi = derguesi; message = null; public Messenger(string sender, Mesazhi amessage) this.derguesi = sender; message = amessage; public void Dergoje() 14

Një aplikacion që i shfrytëzon klasën dhe delegatin namespace Ligjerata6 internal class Program private static void Main(string[] args) Aa a1 = new Aa(1), a2 = new Aa(2), a3 = new Aa(3); Messenger m = new Messenger("AA", a1.metodaa); m.dergoje(); public class Aa private int gjendja; public Aa(int i) state = i; public void MetodaA(string s) 15

Mesazhet Instalo dhe Deinstalo të klasës Messenger using System; public delegate void Mesazhi(string txt); public class Messenger private string derguesi; private Mesazhi mesazhi; public Messenger(string derguesi) this.derguesi = derguesi; mesazhi = null; public Messenger(string sender, Mesazhi amessage) this.derguesi = sender; mesazhi = amessage; public void MesazhiInstalo(Mesazhi mes) this.mesazhi += mes; public void MesazhiDeinstalo(Mesazhi mes) this.mesazhi -= mes; public void Dergoje() 16

Një aplikacion me delegatët me shumë vlera namespace Ligjerata6 internal class Program private static void Main(string[] args) Aa a1 = new Aa(1), a2 = new Aa(2), a3 = new Aa(3); Messenger m = new Messenger("AA", a2.metodaa); m.mesazhiinstalo(a1.metodaa); m.dergoje(); Console.WriteLine(); m.mesazhiinstalo(a3.metodaa); m.mesazhiinstalo(a3.metodaa); m.dergoje(); Console.WriteLine(); m.mesazhideinstalo(a3.metodaa); m.mesazhideinstalo(a1.metodaa); m.dergoje(); 17

Pesë funksionet anonime nga shprehjet e metodave anonime tek shprehjet llambda using System; using System.Collections.Generic; class Program public delegate double FunksionetNumerike(double d); public static void Main() FunksionetNumerike[] funksionetekuivalente = new FunksionetNumerike[] delegate (double d)return d*d*d;, (double d) => return d*d*d;, (double d) => d*d*d, (d) => d*d*d, d => d*d*d ; foreach (FunksionetNumerike nf in funksionetekuivalente) Console.WriteLine("FunksioniNumerik(0) = 1", 5, nf(5)); 18