Érettségi feladatok megoldása LINQ-kel

download Érettségi feladatok megoldása LINQ-kel

If you can't read please download the document

description

Érettségi feladatok megoldása LINQ-kel. Farkas Csaba tanár Jedlik Ányos Gimnázium. Mi a LINQ?. Language Integrated Querry A Visual Studio 2008 új eleme: a programozási nyelvbe integrált adatlekérdezési lehetőség Kulcsszavak: from , where , select SQL ismerete esetén szinte triviális - PowerPoint PPT Presentation

Transcript of Érettségi feladatok megoldása LINQ-kel

  • rettsgi feladatok megoldsa LINQ-kelFarkas Csaba tanr Jedlik nyos Gimnzium

  • Mi a LINQ?Language Integrated QuerryA Visual Studio 2008 j eleme: a programozsi nyelvbe integrlt adatlekrdezsi lehetsgKulcsszavak: from, where, select SQL ismerete esetn szinte trivilisHasznlhat: tmb, struktratmb, gyjtemny, lista, SQL adatbzis, XML dokumentum esetn

  • Alapismeretekeuro() = {275, 276, 276, 278, }sszests: elemek szma, legmagasabb rfolyam, tlagos rfolyam, stb.Adott tulajdonsg elemek lekrdezseAdott tulajdonsg elemek sszestseAz rtkek rendezse(Csoportosts intervallumokba pl. 260-270; 270-280; 280-290)

  • sszest (aggregl) fggvnyekAz adatok szma: x=euro.CountWrite(euro.Count)Az adatok sszege, tlaga: euro.Sum, euro.AverageLegmagasabb s legalacsonyabb rfolyam: euro.Max, euro.MinEls s utols adat: euro.First, euro.Last

  • Lekrdezsek I.Plda: a 280 feletti rtkek levlogatsaMaga a parancs: From x In euro Where x > 280 Select xAz eredmny kinyerse implicit tpussal: Dim q = From x In euro A tmb feldolgozsa For Each ciklussal: For Each x In q Write(x & " ") Next

  • Lekrdezsek II.A 280 feletti rtkek szma (From x In euro Where x > 280 Select x).CountA 280 feletti rtkek tlaga (From x In euro Where x > 280 Select x).AverageAz els 280 Ft feletti rtk (From x In euro Where x > 280 Select x).First)

  • RendezsRendezett tmb ltrehozsa: Dim q = From x In euro Order By xTmbk esetn hagyomnyos megolds: Array.Sort(euro)Rendezs lekrdezssel: Dim q = From x In euro Where x > 280 Order By x

  • Helyjegy (2010 mjus)Egy kzlekedsi vllalat autbuszain kizrlag helyjeggyel lehet utazni. A jegyeken szerepl adatoksorszm (a jegy szma felszlls sorrendjben)ls(az utas helye)fel(a felszlls helye, km-ben)le(a leszlls helye, km-ben)A jegyeken lv adatok birtokban kell krdsekre vlaszolnunk: Pl. hnyan utaztak vgig, hnyan szlltak le egy adott megllban, hny megll volt, stb.

  • AdatszerkezetAz adatokat egy struktratmbben troljuk: Structure BuszJegy Dim sorszm As Integer, Dim ls As Integer Dim fel As Integer Dim le As integer End Structure Dim egyjegy As BuszJegy Dim jegyek(4) As BuszJegyHivatkozs: egyjegy.le vagy jegyek(2).ls

  • Konkrt adatokEgyszer adatokkal:

    sorszmlsfellejegyek(0)1108jegyek(1)2202jegyek(2)3304jegyek(3)4248jegyek(4)5368

  • Az utols jegyvsrlAdja meg az utols jegyvsrl lsnek szmt, s az ltala beutazott tvolsgot! Az utols eladott jegy: jegyek.Lastgy az utols vsrl lse: jegyek.Last.lsAz ltala megtett t: jegyek.Last.le - jegyek.Last.fel

  • VgigutaztaListzza ki, kik utaztk vgig a teljes utat!Azok, akik ltal megtett t a teljes thossz: Const vonalhossz = 8 Dim q = From x In jegyek Where x.le - x.fel = vonalhossz Select x.sorszmAz adatok kirsa q-bl: For Each x In q Write(x & " ") Next

  • BevtelMennyi bevtele szrmazott a trsasgnak, ha minden megkezdett tzkilomter 71 Ft-ba kerl? (Most a kerektstl eltekintnk.)A szakaszrnak ltrehozunk egy konstanst: Const r = 71 Dim q = (From x In jegyek Select Int((x.le-x.fel)/10+1)*r ).Sum

  • Megllk szmaAdja meg, hny helyen llt meg a busz a kiindul lloms s a cllloms kztt! Ahol felszlltak: Dim q = From x In jegyek Select x.felAhol leszlltak: Dim r = From x In jegyek Select x.leA kt halmazt egyestjk, s az elemek szmbl levonjuk a kt vgllomst: Dim u = (q.Union(r)).Count - 2

  • Utols megll utasforgalma I.Adja meg, hnyan szlltak le s fel az utols megllban! Melyik volt az utols megll? Dim q = (From x In jegyek Select x.fel).MaxDim r = (From x In jegyek Where x.le vonalhossz Select x.le).MaxDim utols = Math.Max(q, r)

  • Utols megll utasforgalma II.Itt hnyan szlltak le illetve fel? Dim s = (From x In jegyek Where x.le = utols).CountDim t = (From x In jegyek Where x.fel = utols).Count

  • Ksznm a figyelmet!LINQ-rl C#-ban Ills Zoltn: Programozs C# nyelvenrettsgi feladatok megolds LINQ-kel: http://www.jos.hu/Letoltes/Programozas.htm Nits Lszl (NL) megoldsaiEz az anyag felkerl a VB .NET knyv honlapjra: http://www.jos.hu/Konyv/0253/index.html

    *