Implementering van 'n vaste lengte EIEU Queue in Java By die werk met tydreeksdata, een dikwels moet somme opeenvolgende getalle te bereken vir 'n vasgestelde tyd raam. Stel jou byvoorbeeld die berekening van 'n bewegende gemiddelde met 'n vaste grootte. Let39s kyk na 'n baie eenvoudig tydreekse. Die aanvaarding van 'n bewegende gemiddelde lengte 4 resultate in die volgende reeks: Die formule vir 'n bewegende gemiddelde lengte 4 So is: MA t (som van alle elemente van t-3 tot t) / 4 Hoe sou ons doeltreffend dit in Java-kode te implementeer die probleem is dat ons nodig het om die som te bereken in die formule vir elke bewegende gemiddelde. Natuurlik is dit moontlik om altyd herhaal oor alle getalle in die huidige tyd om dit te doen, maar dit is onnodig stadig. In plaas daarvan, kan ons eenvoudig trek die laaste element in die tyd en voeg die nuutste een om op te som. Op hierdie manier kan ons 'n beduidende aantal van onnodige berekeninge te red. Tog het ons om tred te hou van wat eintlik die ou en die nuwe elemente te hou. Ons moet hierdie nommers iewers te stoor. 'N Gepaste datastruktuur sou 'n eerste-in-eerste-uit (EIEU) ry getalle wees. Maar hoe presies kan 'n EIEU tou in 'n (nie-funksionele) programmeertaal geïmplementeer soos Java Die eerste gedagte is tipies 'n-reeks gebaseer implementering gebruik en om die posisie van elemente skuif in die skikking deur herhaaldelik effens skep verskuif afskrifte van die skikking. In die bogenoemde voorbeeld, sou ons nodig het om 'n nuwe reeks vyf keer te skep, een keer vir elke nuwe bedrag word bereken. Dit is natuurlik baie ondoeltreffende, omdat die skepping van 'n skikking in die geheue is relatief stadig. Implementering gebaseer op klasse soos java. util. ArrayList of java. util. Vector is reeds baie beter, want hulle intern staatmaak op meer skikkings en indekse. Tog is dit nie die beste oplossing, want sodra die interne indekse beweeg buite die interne array39s grense 'n nuwe kopie van die interne skikking moet geskep. 'N Tipiese alternatiewe vir die implementering van EIEU toue is dus die gebruik van 'n geskakelde lys: Die voordeel is voor die hand liggend, nie meer kopiëring of her-skep skikkings in die geheue. Al wat ons moet doen, is om te manipuleer 'n paar wenke. Natuurlik verloor ons die voordeel van direk beoordeling van 'n element in die ry by die indeks, maar vir ons doel - die berekening van bewegende gemiddeldes - dit is iets wat ons nie wil hê om in elk geval te doen. Gister het dit skielik by my opgekom dat daar eintlik 'n nog beter alternatief as die lengte van die tou vas (soos in ons voorbeeld). Ons kan effektief gebruik 'n ring. 'n nuwe nommer aan die tou toe te voeg en die weglating van die oudste een is dieselfde as bloot die oudste element vervang in hierdie ring met 'n nuwe een. Intern, kan ons weer gebruik 'n verskeidenheid van 'n vaste lengte in kombinasie met 'n roterende indeks. Dit is hoe die kode lyk in Java. In die eerste plek let39s skep ons eie Queue koppelvlak: Dit koppelvlak afwyk ietwat uit die een wat in die Java biblioteke, maar dit is onbelangrik vir nou. Volgende, die implementering van ons ry: Die tou quotrollsquot deur die ring. 'n nuwe element toevoeging van die hoof van die tou outomaties verwyder die oudste element in die ry - geen kopiëring van skikkings of herstel nie, voorwerp verwysings nodig. In teenstelling met met geskakelde lyste kan ons eintlik toegang elke element in die ring direk met die get-metode. Ten slotte, kan ons 'n subklas van ons ry voorwerp wat uit genade sal rol oor as nuwe waardes bymekaar getel in die tou / ring te skep. Ons kan die klas nou gebruik. Die lengte van die bewegende gemiddelde is aanvanklik ingestel deur die lengte van die skikking aan sy constructor. I nodig om tred te hou van die laaste 7 dae werksure in 'n plat lêer lees lus te hou. Die gebruik om fatigueability werk roosters te meet. Op die oomblik het ek iets wat werk, maar dit lyk eerder uitgebreide en Ek is nie seker of Theres 'n patroon dis meer bondige. Op die oomblik het ek 'n Java klas met 'n statiese skikking na die laaste x dae data te hou, en dan as ek deur die lêer te lees, ek afkap die eerste element en beweeg die ander 6 (vir 'n week aan die rol totaal) terug vir een. Die verwerking van hierdie statiese skikking word gedoen in sy eie metode dws. My vraag: is dit 'n redelike ontwerp benadering, of is daar iets verblindend duidelik en eenvoudig om hierdie taak Dankie ouens gevra 30 Augustus 11 van die 14:33 Dankie baie ouens doen: I39ve het die boodskap gekry: gebruik 'n hoër vlak voorwerp en ontgin die relevante metodes of 'n omsendbrief buffer. Groot antwoorde, almal van hulle. As jy daaroor dink, wat jy altyd toegang tot die hele skikking nodig sodat jy ontslae te raak van daardie eerste inskrywing kan kry - wat ek wasn39t 100 seker van my eie. I39m verlig dat ek hadn39t gemis sowat 1 sak en was basies op 'n redelike, indien nie doeltreffende en kortaf spoor Dit is wat ek graag oor hierdie webwerf: hoë-gehalte, relevante antwoorde van mense wat hul SHT weet. â € Pete855217 30 Augustus 11 by 15:05 Hoekom doen jy inisialiseer runningTotal om nul Wat is die tipe Waar verklaar Dit sal goed doen as jy 'n paar kode monsters wat werklike Java-kode lyk. jou funksie nie te veel: aanbeweeg, sal my kritiek op die volgende wees. 'N funksie, of metode, moet samehangende wees. Meer toepaslik, moet hulle een ding en net een ding om te doen. Erger nog, wat gebeur in jou lus wanneer x 5 Jy runningTotal6 kopieer na runningTotal5. maar dan het jy twee kopieë van dieselfde waarde by posisie 5 en 6. In jou ontwerp, jou funksie beweeg / skud die items in jou reeks word bereken dat die totale druk dinge om standaardfout die totale Dit maak te veel terug. My eerste voorstel is nie om dinge rond te beweeg in die skikking. In plaas daarvan, te implementeer 'n omsendbrief buffer en gebruik dit in plaas van die skikking. Dit sal jou ontwerp te vereenvoudig. My tweede voorstel is dinge af te breek in funksies wat samehangende is: 'n datastruktuur ( 'n omsendbrief buffer) wat jou toelaat om by te voeg om dit (en dat druppels die oudste inskrywing wanneer dit sy kapasiteit bereik.) Het die data struktuur te implementeer 'n interator het 'n funksie wat die totale bereken op die iterator (jy dont care as jy die totale uit 'n skikking, lys of omsendbrief bufer is bereken.) hoef noem dit totaal. Noem dit som, en dit is wat jy berekening. Dis wat id doen :) That39s groot inligting Luis egter onthou dit funksie is 'n klein deel van die funksie van die klas, en dit sou overkill wees om te veel kode te voeg om dit perfek te maak. Jy is tegnies korrek, en ek verstaan my kode nie 39too much39 maar terselfdertyd soms it39s beter om te dwaal op die kant van kleiner, duideliker kode as gaan na perfeksie. Gegewe my Java vaardighede, selfs die maak van die pseudokode jy beskryf saamstel sou my blaas my begroting op hierdie (), maar dankie vir die duidelike beskrywing. â € Pete855217 31 Augustus 11 by 02:23 Hmmm, it39s nie oor perfeksie nie, maar oor gevestigde industriële praktyke wat ons het geweet vir die laaste 3 dekades. Skoon-kode is altyd een wat verdeel. Ons het dekades van bewyse wat daarop dui dit is die pad om te gaan in die algemene geval (in terme van koste-effektiwiteit, defek vermindering, begrip, ens). tensy dit 'weggooi-kode vir 'n eenmalige soort ding. Dit is nooit duur om dit te doen wanneer 'n mens 'n probleem-analise op hierdie wyse begin. Kodering 101, breek die probleem en die kode volg, nie overkill of moeilik) uitvoering maak luis. espinal 31 Augustus 11 by 15:55 Jou taak is te eenvoudig en die hoek te benader jy aangeneem is beslis goed vir die werk. Maar, as jy wil 'n beter ontwerp gebruik, jy moet ontslae raak van al dat die getal beweging kry jy 'n beter gebruik 'n EIEU tou en maak goeie gebruik van druk en pop metodes wat manier die kode gewoond te besin enige data verkeer, net die twee logika aksies van nuwe data en verwyder data ouer as 7 dae. antwoord 30 Augustus 11 van die 14: 49Stacks en toue Inleiding Beide stapels en toue is soos Lists (geordende versameling van items), maar met meer beperkte bedrywighede. Hulle kan beide geïmplementeer óf met behulp van 'n skikking of met behulp van 'n geskakelde lys aan die werklike items te hou. Stapels Die konseptuele foto van 'n stapel ADT is iets soos hierdie: Dink aan 'n stapel van koerante of bak in 'n kafeteria. Die enigste item wat uit geneem kan word (of selfs gesien) is die mees onlangs bygevoeg (of top) item 'n stapel is 'n laaste-in-eerste-uit (LIEU) abstrakte datatipe. Hier is die stapel ADT bedrywighede omdraai ware IFF die stapel is leeg byvoeging OB na die bokant van die stapel te verwyder en die standaard van die item uit die bokant van die stapel (fout as die stapel is leeg) terug die item wat op die top van die stapel. maar nie afhaal nie (fout as die stapel is leeg) In Java skep ons die StackADT koppelvlak as: wachtrij Die konseptuele prentjie van 'n tou ADT is iets soos hierdie: Dink aan mense staan in die lyn. 'N tou is 'n eerste-in-eerste-uit (EIEU) abstrakte datatipe. Items kan slegs bygevoeg aan die agterkant van die ry en die enigste item wat verwyder kan word is die een aan die voorkant van die tou. Hier is die waglys ADT bedrywighede omdraai ware IFF die waglys is leeg leemte enqueue (E OB) voeg OB aan die agterkant van die tou te verwyder en die standaard van die item uit die voorkant van die tou (fout as die waglys is leeg) In Java ons skep die QueueADT koppelvlak as: implementering Stapels die stapel ADT is baie soortgelyk aan die lys ADT dus hul implementering is ook baie soortgelyk. Array Implementering Hier is die definisie van die ArrayStack klas, met behulp van 'n verskeidenheid van die items in die stapel kennis dat ons sluit 'n statiese finale veranderlike INITSIZE stoor. om gebruik te word deur die ArrayStack konstruktor as die aanvanklike grootte van die skikking (dieselfde ding gedoen vir die Array List klas). TOETS JOUSELF 1 Skryf die ArrayStack constructor. Die druk metode is soos die weergawe van die lys te voeg metode wat 'n voorwerp dra by tot die einde van die lys (omdat items altyd op die top van die stapel gestoot). Let daarop dat dit tot en met ons as die ontwerpers van die ArrayStack klas om te besluit watter kant van die skikking kom ooreen met die bokant van die stapel. Ons kan altyd kies om items aan die begin van die skikking te voeg of altyd items aan die einde van die skikking te voeg. Dit is egter duidelik nie 'n goeie idee om items aan die begin van die skikking te voeg, aangesien dit vereis bewegende alle bestaande items maw daardie keuse sal maak druk wees O (N) (waar N die aantal items in die stapel). As ons voeg 'n item aan die einde van die skikking, dan is die tyd vir stoot hang af van hoe ons omgaan met die uitbreiding van die skikking. Die naïewe implementering maak stoot O (1) wanneer die skikking is nie vol, O (N) wanneer dit vol is, en O (1) op die gemiddelde. As ons gebruik die skaduwee verskeidenheid truuk, dan stoot altyd O (1). Hier is 'n voor en na foto's illustreer die uitwerking van 'n oproep om te stoot: En hier is die kode vir die druk metode: Die pop metode moet die top-van-stapel item verwyder en stuur dit terug, soos hieronder geïllustreer. Let daarop dat, in die prentjie, die waarde bbb is nog in items2 egter dat n waarde is nie meer in die stapel, want numItems is 2 (wat beteken dat items1 is die laaste item in die stapel). TOETS JOUSELF 2 Voltooi die pop metode, met behulp van die volgende opskrif Die blik metode is baie soortgelyk aan die pop metode, behalwe dat dit net die top-van-stapel waarde sonder om die stapel terugkeer. Die isEmpty metode eenvoudig terugkeer ware IFF numItems nul. TOETS JOUSELF 3 Vul die volgende tabel, gebruik van Big-O-notasie om die ergste en gemiddelde-geval keer gee vir elk van die ArrayStack metodes vir 'n stapel van grootte N. Gekoppel-lys Implementering Om 'n stapel te implementeer met behulp van 'n geskakelde lys, ons moet eers definieer die Listnode klas. Die Listnode definisie is dieselfde een wat ons gebruik vir die verband-lys implementering van die LinkedList klas. Die handtekeninge van die metodes van die StackADT koppelvlak is onafhanklik van die vraag of die stapel geïmplementeer met behulp van 'n skikking of met behulp van 'n geskakelde lys van die StackADT implementeer met behulp van 'n geskakelde lys, sowel verander die naam van die klas die implementering van die stapel en die tipe van die items gebied: Soos hierbo bespreek, 'n belangrike eienskap van stapels is dat items net gestoot en inloer aan die een kant (die top van die stapel). As ons 'n stapel te implementeer met behulp van 'n geskakelde lys, kan ons kies watter kant van die lys ooreenstem met die bokant van die stapel. Dit is die maklikste en mees doeltreffende om by te voeg en items verwyder aan die voorkant van 'n geskakelde lys, dus sal ons die voorkant van die lys as die top van die stapel (dws die veld items sal 'n verwysing na die knoop wat die bevat te kies top-van-stapel item). Hieronder is 'n foto van 'n stapel verteenwoordig deur 'n geskakelde lys in hierdie geval, items is gestoot in alfabetiese volgorde, sodat cc is aan die bokant van die stapel: Let daarop dat, in die prentjie, die top van stapel is na links ( aan die voorkant van die lys), terwyl dit vir die skikking implementering, die top van stapel was om die regte (aan die einde van die skikking). Kom ons kyk na hoe om die pop metode skryf. Dit sal nodig hê om die volgende stappe uit te voer: Kyk of die stapel is leeg indien wel, gooi 'n EmptyStackException. Verwyder die eerste knoop van die geskakelde lys deur die instelling van items items. getNext (). Decrement numItems. Stuur die waarde wat in die eerste knoop in die lys. Let daarop dat teen die tyd dat ons by die laaste stap (die terugkeer van die top-van-stapel waarde), die eerste node reeds verwyder van die lys, sodat ons nodig het om die waarde daarvan te red om dit terug te keer (goed noem wat stap 2 (a)). Hier is die kode en 'n illustrasie van wat gebeur wanneer pop genoem vir 'n stapel met cc, bb, aa (met cc aan die bokant). kan nou kyk hoe die druk metode. Hier is 'n voor en na foto's, die effek van 'n oproep om te stoot wanneer die stapel geïmplementeer illustreer met behulp van 'n geskakelde lys: Die stappe wat uitgevoer moet word is: Skep 'n nuwe node wie data veld bevat dat die voorwerp 'gestoot en wie volgende veld bevat 'n verwysing na die eerste knoop in die lys (of nul as die lys is leeg). Let daarop dat die waarde vir die volgende gebied van die nuwe node is die waarde in die LLStack s items veld. Verander items om te wys op die nuwe nodus. Inkrement numItems. TOETS JOUSELF 4 Voltooi die druk metode, met behulp van die volgende kop. Die oorblywende metodes (die konstruktor, loer. En leë) is redelik eenvoudig. Jy moet in staat wees om dit te implementeer sonder enige groot probleme. TOETS JOUSELF 5 Vul die volgende tabel, gebruik van Big-O-notasie om die ergste geval keer gee vir elk van die LLStack metodes vir 'n stapel van grootte N, in die veronderstelling n gekoppelde-lys implementering. Kyk terug na die tabel wat jy ingevul vir die skikking implementering. Hoe kan die tye vergelyk wat is die voor - en nadele van die gebruik van 'n verskeidenheid vs behulp van 'n geskakelde lys te implementeer die stapel ADT Implementering Toue Die belangrikste verskil tussen 'n stapel en 'n tou is dat 'n stapel slegs verkry word vanaf die top, terwyl 'n tou is toeganklik aan beide kante (van agter vir die toevoeging van items, en van voor af vir die verwydering van items). Dit maak beide die skikking en die verband-lys implementering van 'n tou meer ingewikkeld as die ooreenstemmende stapel implementering. Array Implementering Kom eers na 'n tou implementering wat baie soortgelyk aan ons (array-gebaseerde) implementering Lys. Hier is die klas definisie: Ons kan enqueue implementeer deur die toevoeging van die nuwe item aan die einde van die skikking en implementeer dequeue deur die redding van die eerste item in die skikking, beweeg al die ander items op een plek na links, en die terugkeer van die gered waarde. Die probleem met hierdie benadering is dat, hoewel die enqueue werking is doeltreffende, die dequeue werking is nie - dit verg tyd eweredig aan die aantal items in die tou. Om beide enqueue en dequeue doeltreffend te maak, moet ons die volgende insig: Daar is geen rede om te dwing om die voorkant van die tou altyd te wees in items0. Ons kan nie toelaat dat dit beweeg as items dequeued. Om dit te doen, moet ons op hoogte van die indekse van die items op die voorkant en agterkant van die ry te hou (so ons moet twee nuwe velde te voeg tot die ArrayQueue klas, frontIndex en rearIndex. Albei tipe int). Om hierdie idee te illustreer, hier is 'n foto van 'n tou na 'n paar enqueue en dequeue bedrywighede is uitgevoer: Nou dink oor wat om hierdie tou moet gebeur as ons enqueue twee items: dd en ee. Dit is duidelik dat dd moet gestoor word in items6. Dan wat ons kan die grootte van die skikking te verhoog en sit ee in items7. maar dit sou lei tot verlore ruimte - ons sal nooit onthou items0. items1. of items2. In die algemeen, sal die items in die ry te hou gly na regs in die skikking, wat veroorsaak dat al hoe meer vermorste spasie aan die begin van die skikking. 'N Beter benadering is om jou te laat die agterste indeks draai om (in hierdie geval, 6-0) solank as wat daar is leë ruimte in die voorkant van die skikking. Net so, as na enqueuing dd en ee ons dequeue vier items (sodat net ee oorbly in die tou), sal die voorste indeks het om rond te draai van 6 tot 0. Hier 'n prentjie van wat gebeur wanneer ons enqueue dd en ee: konseptueel, die skikking is 'n omsendbrief skikking. Dit mag dalk makliker wees om dit te visualiseer as 'n sirkel. Byvoorbeeld, kan die skikking vir die finale tou hierbo getoon word beskou as: Ons moet nog steeds dink oor wat moet gebeur as die skikking is baie goed van mening dat geval in 'n minuut. Hier is die kode vir die enqueue metode, met die volle reeks geval nog voltooi word: Let daarop dat in plaas van die gebruik van incrementIndex ons kon die mod operateur () gebruik, en skryf: rearIndex (rearIndex 1) items. length. Maar die mod operateur is baie stadig en dit is maklik om daardie uitdrukking verkeerd te kry, sodat ons die hulp metode gebruik (met 'n tjek vir die wrap-around geval) in plaas. Om te sien waarom ons eenvoudig expandArray cant gebruik wanneer die skikking is vol, oorweeg die prentjie hieronder getoon. Na 'n beroep expandArray. die laaste item in die tou is nog reg voor die eerste item - daar is nog nie 'n plek om die nuwe item sit (en daar is 'n groot gaping in die middel van die tou, uit items7 om items13). Die probleem is dat expandArray afskrifte van die waardes in die ou reeks in dieselfde posisies in die nuwe reeks. Dit werk nie vir die tou implementering wat ons nodig het om die toegedraai rondom waardes te beweeg om te kom na die nie-toegedraai rondom in die nuwe reeks waardes. Die stappe wat gevolg moet word uitgevoer wanneer die skikking is vol is: Ken 'n nuwe reeks van twee keer die grootte. Kopieer die waardes in die reeks itemsfrontIndex om itemsitems. length-1 in die nuwe reeks (vanaf posisie frontIndex in die nuwe skikking). Kopieer die waardes in die reeks items0 om itemsrearIndex in die nuwe reeks (vanaf posisie items. length in die nuwe skikking). Let wel: As die voorkant van die tou was in items0. dan sal al die waardes is gekopieer vir stap 2, so hierdie stap is nie nodig nie. Stel items om te wys op die nuwe skikking. Fix die waarde van rearIndex. Hier is 'n illustrasie: En hier is die finale kode vir enqueue: Die dequeue metode sal ook gebruik metode incrementIndex om een by te voeg om frontIndex (met wrap-around) voordat hy terugkeer die waarde wat aan die voorkant van die tou. Die ander ArrayQueue metode, isEmpty. is dieselfde as vir die ArrayStack klas - dit net gebruik maak van die waarde van die veld numItems. Gekoppel-lys Implementering Die eerste besluit in die beplanning van die gekoppelde-lys implementering van die tou ADT is wat einde van die lys sal stem ooreen met die voorkant van die tou. Onthou dat items moet aan die agterkant van die ry om by te voeg en verwyder van die voorkant van die tou. Daarom moet ons ons keuse op grond van of dit makliker om by te voeg / verwyder 'n knoop van voor / einde van 'n geskakelde lys. As ons verwysings na beide die eerste en laaste nodes van die lys te hou, kan ons 'n knoop te voeg aan beide kante in konstante tyd. Maar, terwyl ons kan die eerste node verwyder in die lys in konstante tyd, die verwydering van die laaste knoop vereis eers die vorige node, wat tyd eweredig aan die lengte van die lys neem opspoor. Daarom moet ons kies om die einde van die lys te wees die agterkant van die ry en die voorkant van die lys te wees die voorkant van die tou. Die klas definisie is die soortgelyk aan die skikking implementering ,: Heres 'n foto van 'n tou met drie items, aa, bb, cc, met aa aan die voorkant van die tou: Jy moet in staat wees om al die LLQueue metodes gebruik te maak van die skryf kode wat jy geskryf het vir die verband-lys implementering van die lys ADT as 'n riglyn. Vergelyking van Array en gekoppel-List Implementaties Die voor - en nadele van die twee implementering is in wese dieselfde as die voor - en nadele in die geval van die lys ADT: In die verband-lys implementering, moet 'n mens wyser word gestoor vir elke item in die stapel / tou, terwyl die verskeidenheid winkels net die items self. Aan die ander kant, die wat gebruik word vir 'n geskakelde lys ruimte is altyd eweredig aan die aantal items in die lys. Dit is nie noodwendig waar vir die skikking implementering soos beskryf: as 'n baie items bygevoeg om 'n stapel / tou en dan verwyder word, kan die grootte van die skikking na willekeur groter as die aantal items in die stapel / tou wees. Maar, kan ons hierdie probleem op te los deur die wysiging van die pop / dequeue bedrywighede om die skikking te krimp wanneer dit te leeg. Vir die skikking implementering, die ergste geval tye vir die druk en enqueue metodes is O (N) vir die naïef implementering, vir 'n stapel / tou met N items (om 'n nuwe reeks toe te ken en 'n afskrif van die waardes) met behulp van die skaduwee verskeidenheid truuk , daardie twee operasies is O (1). Vir die gekoppelde-lys implementering, druk en enqueue altyd O (1). Aansoeke van stapels en toue Stapels word gebruik om metodes tydens looptyd te bestuur (wanneer 'n metode genoem word, is die parameters en plaaslike veranderlikes gestoot op 'n stapel wanneer die metode opbrengste, die waardes inloer uit die stapel). Baie parsing algoritmes (wat gebruik word deur opstellers om vas te stel of 'n program is sintakties korrek) behels die gebruik van stapels. Stapels kan gebruik word om rekenkundige uitdrukkings te evalueer (bv deur 'n eenvoudige sakrekenaar program) en hulle is ook nuttig vir 'n paar operasies op grafieke. 'n datastruktuur sal ons later in die semester leer oor. Toue is nuttig vir baie simulasies en word ook gebruik vir 'n paar operasies op grafieke en bome. TOETS JOUSELF 6 Volledige metode reverseQ. wie se kop word hieronder gegee. Metode reverseQ moet 'n stapel gebruik om die volgorde van die items in die tou parameter.4.3 stapels en toue In hierdie afdeling te keer, stel ons twee nou verwante datatipes vir manipuleer arbitrêr groot versamelings van voorwerpe: die stapel en die tou. Stapels en toue is spesiale gevalle van die idee van 'n versameling. Elkeen is gekenmerk deur vier operasies: skep die versameling, voeg 'n item, verwyder 'n item, en toets of die versameling is leeg. Stapels. 'N stapel is 'n versameling wat gebaseer is op die laaste-in-eerste-uit (LIEU) beleid. Deur tradisie, noem ons die stapel insetsel metode druk () en die stapel te verwyder werking pop (). Ons sluit ook 'n metode om te toets of die stapel is leeg, soos aangedui in die volgende API: Array implementering van stapels. Verteenwoordig stapels met skikkings is 'n natuurlike idee. In die besonder, ons handhaaf 'n geval veranderlike N dat die aantal items in die stapel en 'n verskeidenheid items wat die N items stoor winkels, met die mees onlangs bygevoeg item in itemsn-1 en die minste onlangs bygevoeg item in items0. Hierdie beleid stel ons in staat om items aan die einde by te voeg en te verwyder sonder om te beweeg enige van die ander items in die stapel. Vaste-lengte reeks implementering van 'n stapel van snare. ArrayStackOfStrings. java implemente hierdie benadering vir 'n stapel van snare waarvan die maksimum kapasiteit is wat deur die argument na die konstruktor. Om 'n item te verwyder, ons N decrement en dan terug 'n 'n nuwe item in te voeg, ons stel 'n gelyk aan die nuwe item en dan inkrementeer N. Resizing verskeidenheid implementering van 'n stapel van snare. ResizingArrayStackOfStrings. java is 'n weergawe van ArrayStackOfStrings. java wat dinamiese pas die lengte van die skikking items sodat dit is groot genoeg om al die items te hou en maar nie so groot soos 'n oormatige hoeveelheid spasie mors. In die eerste plek in druk (). check ons of daar ruimte vir die nuwe item indien nie, 'n nuwe reeks van dubbel die lengte van die ou reeks skep ons en die items uit die ou reeks kopieer na die nuwe reeks. Net so, in die pop (). check ons of die skikking is te groot, en ons halveer sy lengte as dit die geval is. Dit verdubbeling-en-halvering strategie waarborg dat die stapel nooit oorloop en nooit minder as 'n kwart vol. Resizing verskeidenheid implementering van 'n generiese stapel. ResizingArrayStack. java implementeer 'n generiese stapel met 'n resizing skikking. Om tegniese redes is 'n cast wat nodig is by die toekenning van die verskeidenheid van generiese. Geskakelde lyste. 'N een-een gekoppel lys bestaan uit 'n reeks van knope. met elke knoop met 'n verwysing (of skakel) om sy opvolger. Deur konvensie, die skakel in die laaste knoop is nul. om aan te dui dat dit beëindig die lys. Met objekgeoriënteerde programmering, implementering geskakelde lyste is nie moeilik. Ons definieer 'n klas vir die knoop onttrekking wat rekursiewe in die natuur: 'n knoop voorwerp het twee byvoorbeeld veranderlikes: 'n tou en 'n knoop. Die String is 'n plekhouer in hierdie voorbeeld vir enige inligting wat ons dalk wil struktuur met 'n geskakelde lys (kan ons enige stel byvoorbeeld veranderlikes gebruik) die geval veranderlike van tipe Node kenmerkend van die gekoppelde aard van die data struktuur. Met 'n skakel saam 'n geskakelde lys. Byvoorbeeld, 'n geskakelde lys wat die items om bevat bou. wees . en of. Ons skep 'n knoop vir elke item: Voeg. Veronderstel dat jy 'n nuwe node in te voeg in 'n geskakelde lys. Die maklikste plek om dit te doen is aan die begin van die lys. Byvoorbeeld, om die string te voeg nie aan die begin van 'n gegewe gekoppel lys wie se eerste node is eerste. ons red eerste in 'n tydelike veranderlike oldFirst. toewys om eers 'n nuwe node. en wys sy item veld om nie met sy volgende veld te oldFirst. Verwyder. Veronderstel dat jy die eerste knoop uit 'n lys te verwyder. Hierdie operasie is nog makliker: eenvoudig wys om eers die waarde first. next. Traversal. Om elke item in 'n geskakelde lys te ondersoek, inisialiseer ons 'n lus indeks veranderlike x wat die die eerste Node van die geskakelde lys verwys. Dan vind ons die waarde van die item wat verband hou met x deur toegang tot x. item. en dan werk x om te verwys na die volgende Node in die geskakelde lys, toewys om dit te die waarde van x. next en herhaal die proses totdat x is van nul (wat daarop dui dat ons die einde van die geskakelde lys bereik). Hierdie proses staan bekend as dwars deur die lys, en is bondig uitgedruk in hierdie kode fragment: Implementering van stapels met geskakelde lyste. Verteenwoordig stapels met geskakelde lyste is 'n natuurlike idee. In die besonder, ons handhaaf 'n geval veranderlike eerste wat 'n verwysing na die mees onlangs bygevoeg item stoor. Hierdie beleid stel ons in staat om items aan die begin van die geskakelde lys te voeg en te verwyder sonder toegang tot die skakels van enige ander items in die geskakelde lys. Gekoppel-lys implementering van 'n stapel van snare. LinkedStackOfStrings. java gebruik 'n geskakelde lys na 'n stapel van snare te implementeer. Die implementering is gebaseer op 'n sub-klas Node soos die een wat ons het al met behulp van. Java stel ons in staat om te definieer en gebruik ander klasse binne die klas implementering in hierdie natuurlike manier. Ons wys die sub-klas as private omdat kliënte hoef nie enige van die besonderhede van die geskakelde lyste te leer ken. Gekoppel-lys implementering van 'n generiese stapel. Stack. java implementeer 'n generiese stapel met 'n enkel geskakelde lys. Tou. 'N tou ondersteun die insetsel en bedrywighede te verwyder met behulp van 'n eerste-in-eerste-uit (EIEU) dissipline. Deur konvensie, noem ons die tou insetsel werking enqueue en die verwyder werking dequeue. soos aangedui in die volgende API: Gekoppel-lys implementering van 'n tou. Queue. java implementeer 'n EIEU tou van snare met behulp van 'n geskakelde lys. Soos stapel. Ons handhaaf 'n verwysing eerste om die minste onlangs bygevoeg Node op die tou. Vir doeltreffendheid, ons 'n verwysing in stand te hou ook laastes wees om die mees onlangs bygevoeg Node op die tou. Resizing verskeidenheid implementering van 'n tou. ResizingArrayQueue. java implementeer 'n tou met 'n resizing skikking. Dit is soortgelyk aan ResizingArrayStack. java. maar moeiliker omdat ons nodig het om by te voeg en items uit die teenoorgestelde punte van die skikking te verwyder. Generiese. Ons het stapel implementering ontwikkel wat ons in staat stel om 'n stapel van 'n bepaalde soort, soos String bou. 'N Spesifieke meganisme in Java bekend as generiese tipes stel ons in staat om te bou versamelings voorwerpe van 'n tipe gespesifiseer word deur die kliënt-kode. Implementering van 'n generiese versameling. Om 'n generiese versameling implementeer, ons spesifiseer 'n tipe parameter. soos punt. in hoek tussen hakies en gebruik daardie tipe parameter in ons uitvoering in plaas van 'n spesifieke tipe. Byvoorbeeld, Stack. java is generiese weergawe van LinkedStackOfStrings. java behulp van 'n generiese versameling. Om 'n generiese versameling gebruik, moet die kliënt die tipe argument spesifiseer wanneer die stapel geskep: Autoboxing. Ons het ons stapels ontwerp generiese te wees. sodat hulle oogmerke van enige soort. Die Java-taal funksies bekend as autoboxing en unboxing stel ons in staat om generiese kode met primitiewe tipes hergebruik sowel. Java voorrade ingeboude voorwerp tipes bekend as wrapper tipes. een vir elk van die primitiewe tipes: Boolean. Heelgetal. Dubbel. Karakter. en dies meer. Java vat outomaties tussen hierdie tipes verwysing en die ooreenstemmende primitiewe tipes sodat ons kode soos die volgende kan skryf: iterasie. Soms is die kliënt se behoeftes om al die items van 'n versameling, een op 'n tyd toegang, sonder dat hulle die verwydering. Om enkapsulering te handhaaf, het ons nie wil hê dat die interne voorstelling van die tou (skikking of gekoppel lys) aan die kliënt openbaar. Om dit te ontwerp patroon te akkommodeer, Java bied die foreach verklaring. Jy moet die volgende vir verklaring interpreteer in die volgende kode fragment soos vir elke string s in die versameling, druk s. Implementering van 'n versameling wat iterasie op hierdie manier ondersteun vereis die implementering van Javas java. util. Iterator en java. util. Iterable koppelvlakke. Sien die handboek vir meer inligting. Stapel en tou aansoeke. Stapels en toue het talle nuttige programme. Rekenkundige evaluering uitdrukking. 'N Belangrike toepassing van stapels is in parsing. Byvoorbeeld, moet 'n samesteller rekenkundige uitdrukkings geskryf met behulp van voeg sels notasie ontleed. Byvoorbeeld evalueer die volgende voeg sels uitdrukking 212. Evaluate. java evalueer 'n ten volle hakies rekenkundige uitdrukking. Funksie-oproep onttrekking. Die meeste programme gebruik stapels implisiet omdat hulle ondersteun 'n natuurlike manier om te funksioneer oproepe te implementeer, soos volg: op enige stadium tydens die uitvoering van 'n funksie, definieer sy toestand te wees die waardes van al sy veranderlikes en 'n verwysing na die volgende instruksie te wees uitgevoer word. Die natuurlike manier om die funksie-oproep onttrekking implementeer is om 'n stapel gebruik. Om 'n funksie te roep, druk die staat op 'n stapel. Om terug te keer van 'n funksie oproep, pop die staat van die stapel op alle veranderlikes hul waardes te herstel voor die funksie oproep en hervat uitvoering by die volgende opdrag wat uitgevoer moet word. M / M / 1 tou. Een van die belangrikste toustaan modelle staan bekend as 'n M / M / 1 tou, wat getoon het om akkuraat model baie werklike situasies. Dit word gekenmerk deur drie eienskappe: Daar is een servermdasha EIEU queue. Interarrival keer om die tou te gehoorsaam 'n eksponensiële verspreiding met koers lambda per minuut. Service tye van 'n-leeg tou gehoorsaam n eksponensiële verspreiding met koers mu per minuut. MM1Queue. java simuleer 'n M / M / 1 tou en plotte 'n histogram van wagtye standaard tekening. Load balancing. LoadBalance. java simuleer die proses van die toeken N items om 'n stel van m bedieners. Vir elke item, dit kies 'n monster van s bedieners en ken die item na die bediener wat die minste huidige items het. Oefeninge Voeg 'n metode isFull () om ArrayStackOfStrings. java. Skryf 'n filter Reverse. java dat snare lees een op 'n tyd van standaard insette en druk hulle op standaard uitset in omgekeerde volgorde. Skryf 'n stapel kliënt Parentheses. java dat 'n string van hakies, vierkantige hakies, en krullerige draadjies van standaard insette lees en gebruik van 'n stapel te bepaal of hulle behoorlik gebalanseer. Byvoorbeeld, moet jou program waar vir () en valse vir druk (). Wat beteken die volgende kode fragment druk wanneer N 50 Gee 'n hoë-vlak beskrywing van wat die kode fragment doen wanneer dit met 'n positiewe heelgetal n. Oplossing. druk die binêre voorstelling van N (110010 toe N 50). Wat beteken die volgende kode fragment doen om die tou tou. Oplossing. omkeer aan die orde van die snare in die tou. Voeg 'n metode blik () om Stack. java dat die mees onlangs bygevoeg element terug op die stapel (sonder die verwydering van dit). Voeg 'n metode grootte () vir beide Queue. java en Stack. java dat die aantal items in die versameling terugkeer. Skryf 'n filter InfixToPostfix. java dat 'n rekenkundige uitdrukking vat van voeg sels te postfix. Skryf 'n program EvaluatePostfix. java dat 'n postfix uitdrukking van standaard insette neem, evalueer dit en die waarde druk. (Pype die opbrengs van jou program van die vorige oefening om hierdie program gee ekwivalent gedrag te Evaluate. java.) Ontwikkel 'n datatipe ResizingArrayQueueOfStrings. java dat 'n tou wit ha vaste-lengte reeks implemente in so 'n wyse dat alle bedrywighede neem konstante tyd . Verander MM1Queue. java om 'n program MD1Queue. java dat 'n tou vir die diens tye vas (deterministiese) by koers mu simuleer maak. Bevestig Littles wet vir hierdie model. Ontwikkel 'n klas StackOfInts. java dat 'n gekoppelde-lys verteenwoordiging (maar geen generiese) gebruik om 'n stapel van heelgetalle te implementeer. Skryf 'n kliënt wat die prestasie van jou implementering met StackltIntegergt om die prestasie straf van autoboxing en unboxing bepaal op jou stelsel vergelyk. Gekoppel-List Oefeninge Veronderstel x is 'n gekoppelde-lys knoop. Wat is die effek van die volgende kode fragment oplossing. Verwyder uit die lys die knoop onmiddellik na x. Skryf 'n metode te verwyder () wat die eerste knoop in 'n geskakelde lys en 'n int argument k neem en verwyder die k de node in die geskakelde lys, indien dit bestaan. Veronderstel dat X is 'n gekoppelde-lys knoop. Wat is die effek van die volgende kode fragment oplossing. Voeg node t onmiddellik na node x. Waarom het die volgende kode fragment nie dieselfde effek as in die vorige vraag oplossing. Wanneer dit kom tyd om t. next werk. x. next is nie meer die oorspronklike node volgende x. maar is in plaas t self kreatiewe oefeninge Josephus probleem. In die Josephus probleem uit die oudheid, N mense in nood en instem tot die volgende strategie om die bevolking te verminder. Hulle rangskik hulself in 'n sirkel (op posisies genommer van 0 tot N minus1) en voort te gaan om die sirkel, die uitskakeling van elke mnd persoon tot slegs een persoon oorbly. Legende het dit dat Josephus uitgepluis het waar om te sit om te verhoed dat uitgeskakel. Skryf 'n ry kliënt Josephus. java dat twee heelgetal command-line argumente m neem en N en die volgorde waarin mense word uitgeskakel (en dus Josephus waar om te sit in die kring sal wys) druk. Topologiese aard. Jy moet aan die orde van N poste wat genommer 0 tot N-1 op 'n bediener te ry. Sommige van die werk moet voltooi voor ander kan begin. Skryf 'n program TopologicalSorter. java dat 'n opdrag-lyn argument N en 'n reeks op standaard insette van geordende pare werk (i, j) neem, en dan druk 'n reeks van heelgetalle wat weerskante van elke paar (i, j) in die insette, werk ek verskyn voor werk j. Ons moet nou 'n paar funksies by te voeg, sodat dit produseer 'n bewegende gemiddelde van die data wat ingesamel. Ek kan 'n tou van myDataClass om die EIEU buffer doen skep, maar ek het gewonder wat die beste manier doen die gemiddelde kan wees. Soos jy kan sien uit die kode voorbeeld hieronder myDataClass bevat verskeie datastrukture waarvan sommige kan gemiddeld en 'n paar wat nie kan (bv die string). I039m besig met 'n funksie om 'n eksponensiële gemiddelde opbrengs en daar is 'n baie voorbeelde van eksponensiële bewegende gemiddeldes, maar hulle het almal begin met 'n bewegende gemiddelde dit is net die gemiddelde as 'n voorsprong in die berekening van die voortsetting van bewegende gemiddelde. Na Googlen my Bing af het ek nog haven039t iets gesien so hier is my poging om 'n basiese eksponensiële gemiddelde. Ek is op soek na 'n manier om die bewegende gemiddelde vir kliënte oor 'n tydperk van 30 dae kry. Maar ek was nie in staat om 'n monster VB-kode te vind om te help my begin. Ek het gevind dat hierdie C monster op Kode Projek maar my pogings tot bekering het nie suksesvol was. Het enige iemand 'n bestaande VB klas hulle wil deel of weet jy van 'n monster wat ek kan gebruik om my eie te bou Ek wil 'n gemiddelde in 'n kolom waar die gemiddelde ignoreer nul waardes in 'n verslag sel waar die kolom kan insluit het ek wil 16, nie 11 sodat (17 19 12 13 19) / 5 nie (17 19 0 0 12 13 19) / 7 Iets soos hierdie is dit sal werk. Som (Fieldsfieldname. Value) / Telling (IIF (Fieldscountcycleperhour. Value GT 0, Fieldsfieldname. Value, 0)) In wese net gemiddelde alles in die kolom nie 'n nul Ek sit kommentaar op die gemiddelde opbrengs, want ek het om fout boodskappe oor. My uit hou sê: Maksimum waarde: 33 Minimum waarde: 33 Wat doen ek verkeerd Opsie Explicit Op Opsie streng I039m in 'n rekenaarwetenskap klas, en ons skryf eenvoudige programme met behulp van Visual Basic 2008 Ek is baie onbeholpe wanneer dit kom by hierdie, soos ek dit nog nooit tevore gedoen het. Ek nodig het om 'n program wat skryf: quotAsks die gebruiker vir 5 nommers en bere die gemiddelde. Dit vertoon dan die gemiddelde van 'n gepaste boodskap voor die average. quot Ek het regtig naby aan hierdie, maar ek can039t kry die getalle te voeg, dan verdeel met 5, en 'n pop-up boodskap vertoon. Ek het 'n vorm wat 'n tou het en ek wil hê dat die tou na 'n ander tou in 'n ander vorm. Maar toe ek probeer om die elemente te gebruik in die tweede ry na oordrag, kry ek die fout boodskap tou emptybelow is my kode eerste vorm Invoere System. Collections. Generic Openbare Klas Form1 Private mPerformanceCounter Soos New System. Diagnostics. PerformanceCounter (quotProcessorquot, quot verwerker Timequot, quotTotalquot) Ek het 'n skikking wat I039m basies behandeling soos 'n tou (EIEU) I039m probeer om die vinnigste manier om te implementeer this. Currently I039m net iterating deur en skuif alles tot 'n element besluit en die plasing van die nuwe data 0. dit was fyn toe ek die hantering van 1000 element skikkings, maar nou I039m beweeg tot 100k element skikkings en it039s stol my code. It het nuttig om die data opgestel vorm het as gevolg I039m met behulp van die array. sort metode en 'n paar ander statistiese aanpassings is dat gebruik die element nommer (van die gesorteerde lys) te work. I039m nie seker of VB lyste (soos Java) wyser gebaseer, en indien wel ek dink dat die verskuiwing van verwysings vinniger as my huidige approach. My vraag sou voer is, as ek dit doen skuif na 'n lys sou dit 'n) vinniger wees, en b) is daar 'n manier om 'n vinnige soort uit die lys classIf die uitvoering tyd 'is dieselfde vir die skikking teen lys is daar 'n beter manier om 'n EIEU struktuur maak in VB hoe quotpeekquot regtig bedryf of iets, maar wat I039m probeer doen is om 2 aparte klank lêers speel een na die ander oor en oor again. I verwag dat ek wav1 en wav2 alternatiewe sal hoor, maar ek hoor net wav1 op elke cycle. Doesn039t blik gebruik die eerste data dan druk dit na die agterkant sonder om ontslae itTherefore wav2 sal volgende aan die beurt wees om te speel kode het iemand gesien hoe 'n e-pos tou Ek wil in staat wees om die SMTP-bediener spesifiseer om te stuur via verslag probleme en probeer e-pos as nodig of versoek. 039I kan my nie met die lyn quotsenda Suba (sendaobj, EventArgs. Empty) quot. kode. Sub DestroyUser (ByRef Victomcheck As Integer, ByRef Victorcheck As Integer) Dim num ten doel WriteSub (quotdestroyuserquot) Ek maak 'n haarstyl en make-up sagteware in VB en ek nodig het om die prentjie wat geredigeer oplaai, om 'n haarstyl en make-up aan te trek . ive geen idee hoe ek dit kan doen. Dit is 'n virtuele makeover sagteware en ek nodig het om die lewer voor en na foto's. asseblief iemand my help, my spertyd is op die 31ste Hoe kan ek die drukker tou van VB as ek dit doen met die hand sou ek spooler diens te stop, leë die gids windowssystem32spoolprinters en die diens Wat is die verskil tussen 'n tou (van t herlaai ) en lys (van t) I039ve gewerk baie met lys (van t), maar tot onlangs het ek haven039t selfs gehoor van tou (t). Ek weet dat hulle is albei algemene lys. Ek is tans die skep van 'n FTPWebrequest te hanteer my oplaai (die webrequest deel van my funksie is onder). Op die oomblik is lusse my kode deur middel van hierdie webrequest afdeling vir elke lêer - gee die lêer pad van elke lêer in die tou quotCompleteLocalPathquot. Vir elke lêer skep dit 'n webrequest en gee die nodige lêer pad, die lêer oplaai met behulp van 'n lêer stroom, en dan sluit die stroom. Dit werk, maar lyk nogal 'n lang tyd in beslag neem. Kan jy raai 'n meer doeltreffende manier Miskien deur die gebruik van 'n webrequest maar die wysiging van die oplaai pad Ek het 'n program wat gebruik API039s om die muis gebeure en sleutelbord gebeure na 'n ander program wat loop. Ek moet weet hoe om te sê as daar enige boodskappe gelaat om te verwerk vir die venster na ek klik op 'n knoppie of verskuif na die volgende gebied. Ek moet weet hierdie so ek don039t stuur nie meer muis of sleutelbord gebeure totdat dit verwerk alles in sy boodskap tou het afwerking. 'N Voorbeeld is dat ek op uit die sleutel veld en die vorm het om uit te gaan en lees 'n kliënt rekord. Dit kan 'n sekonde of twee te neem, so ek nodig het om te wag totdat die vorm is gereed vir meer insette. Die onderstaande kode (VB 2008) sal die druk tou check elke milisecond vir 'n werk. Dit sal dan wys die PAGECOUNT in 'n tekskassie. Dit werk baie goed wanneer im druk om 'n plaaslike drukker, maar sodra ek my rekenaar verstek drukker verander na 'n netwerkdrukker, ek kan nie enige data vas te lê. I039m op soek na 'n manier om 'n printjob beweeg van 'n onderbreek drukker na 'n ander drukker. Ek het gekyk na die nuwe naam ruimte System. printing in raamwerk 3.X. Is daar 'n manier om dit te doen in 'n externa aansoek skep 'n printjob. I vang die kwota geval printjob addquot in die printqueue. I breek die printjob. Now ek wil die printjob 'n manier om dit te doen in Sê Ek het 'n rollende versameling van waardes waar ek die grootte van die versameling en enige tyd 'n nuwe waarde toegevoeg spesifiseer na 'n ander printerIs daar enige ou waardes buite die gespesifiseerde grootte afgelaai. Obviously (en I039ve getoets hierdie) die beste tipe versameling te gebruik vir hierdie gedrag is 'n tou: myQueue. Enqueue (newValue) As myQueue. Count GT specifiedSize Dan myQueue. Dequeue () Ons het kode vir die skryf van en na 'n IBM boodskap queue. Writin goed gaan, maar lees gee 'n fout, sien vet teks die volgende 2 SQL-stellings dieselfde Sal hulle dieselfde resultate sql1 quotSELECT UIT StudentDetials WAAR (Subject1 SOOS 039quot amp Onderwerp (0) amp quot039 OF Subject2 SOOS 039quot amp Onderwerp (0) amp quot039) EN (Dag 1 SOOS 039quot amp TabDay amp quot039 OF Dag2 SOOS 039quot amp TabDay amp quot039) EN (Time1 GT 039quot amp Tyd (0) amp quot039 EN ETime1 Dit 039quot amp Tyd (1) amp quot039 OF Time2 GT 039quot amp Tyd (0) amp quot039 EN ETime2 Dit 039quot amp Tyd (1) amp quot039) quot sql1 quotSELECT UIT StudentDetials WAAR (Subject1 SOOS 039quot amp Onderwerp (0) amp quot039 EN Dag 1 SOOS 039quot amp TabDay amp quot039 EN Time1 GT 039quot amp Tyd (0) amp quot039 EN ETime1 Dit 039quot amp Tyd (1) amp quot039) OR (Subject2 SOOS 039quot amp Onderwerp (0) amp quot039 EN Dag2 SOOS 039quot amp TabDay amp quot039 EN Time2 GT 039quot amp Tyd (0) amp quot039 EN ETime2 dit 039quot amp Tyd (1) amp quot039) quot In my geval het hulle eenvoudig dieselfde resultate, maar that039s as gevolg van die data i039m behulp produseer. Ek het probeer om te sit volgende C-kode in VB en het quotExpression nie 'n valuequot fout te produseer, terwyl die opstel van die kode terugkeer Fluently. Configure (). Mappings (m GT m. FluentMappings. AddFromAssemblyOfltMyEntityMappinggt ()).Database (SQLiteConfiguration. Standard. InMemory ( ).ShowSql ()).ExposeConfiguration (x GT nuwe SchemaExport (x).Execute (valse, ware of valse)).BuildSessionFactory () Return Fluently. Configure ().Mappings (Function (m) m. FluentMappings. AddFromAssemblyOf (van SubscriptionMap) ()).Database (SQLiteConfiguration. Standard. InMemory (). ShowSql ()).ExposeConfiguration (Function (x) Nuwe SchemaExport (x).Execute (Vals, True, False)).BuildSessionFactory () Die fout gebeur op 2 laaste linie van VB-kode, terwyl C-kode is saamgestel sonder problem. What is verkeerd met die omskakeling Ek het probeer om te sit volgende C-kode in VB en het quotExpression nie 'n valuequot fout te produseer, terwyl die opstel van die kode Ek porting oor 'n paar kode van (VB) PHP en ek het oor 'n paar MD5 hashing dat ek can039t reproduseer in PHP. In die een is daar twee funksies een gebruik UTF-8-kodering en die ander gebruik Unicode kodering. Die produksie is 'n ander gemors toe geslaag in 'n string // eerste funksie (terugkeer GUID) Dim oHasher Soos Cryptography. MD5 Cryptography. MD5.Create () Dim oEncoder Soos New System. Text. UTF8Encoding () Dim csData () As Byte maar hulle albei produseer dieselfde resultaat. Is dit moontlik om dieselfde resultate in PHP produseer met MD5 hashing I039m met behulp van die onderstaande kode om 'n gereedskap punt vir elke ry van 'n script lys te produseer. Wanneer vertikaal beweeg oor die script lys 'n gereedskap punt sal verskyn wanneer die muis raak tussen twee rye - omleiding enige van die ToolTip039s opsies. Private mHoveredItem Soos ListViewItem private Sub ListView1MouseMove (ByVal sender ten doel het, ByVal e Soos System. Windows. Forms. MouseEventArgs) Hanteer lv. MouseMove I039m nie die gebruik van die eiendom ShowItemToolTips van die script lys, want ek wil 'n meer geformateer ToolTip het (ToolTipIcon, titel ens) Ek don039t glo hierdie opsies kan ingestel word vir die ListViews ToolTip I039ve updloaded n monster projek van die saak hier: URL. Ek het 'n program wat 'n XML-lêer kan produseer van die SQL geskep database. and die kode is lyk soos volg: Hoekom is daar 'n ltNewDataSetgtlt / NewDataSetgt node2. Hoe om dit te knoop ek nou op soek na 'n manier om PDF-lêers te produseer uit xls lêers te verwyder. Sedert die voltooide program sal versprei word aan ander, sal dit op die omgewing te werk sonder die quotpdf producerquot ek using. Which is die quotpdf producerquot om usequotI is nou besig met die uitdruklike weergawe van VB 2005 (wat nie kristal verslag het nie) . Ek het Acrobat 8.0 geïnstalleer, maar het nie uitgepluis het hoe om dit te doen.
No comments:
Post a Comment