C# ir VB.NET palyginimas taikomųjų programų kūrimo požiūriu
|
|
- Joy Holland
- 5 years ago
- Views:
Transcription
1 VILNIAUS PEDAGOGINIS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Arnoldas Judinas C# ir VB.NET palyginimas taikomųjų programų kūrimo požiūriu Magistro baigiamasis darbas Darbo vadovas prof. dr. (HP) V. Slivinskas Recenzentas doc. dr. G. Melničenko Vilnius, 2010
2 Patvirtinimas Aš, Arnoldas Judinas, Vilniaus pedagoginio universiteto Matematikos ir informatikos fakulteto Informatikos magistrantūros studentas, patvirtinu, kad šį mokslinį darbą rašiau savarankiškai Data Parašas 2
3 Turinys Patvirtinimas... 2 Turinys... 3 Įvadas... 4 Lyginimo kriterijai... 4 Hipotezės... 4 Darbo uždaviniai Taikomoji programinė įranga Microsoft.NET karkasas C# ir VB.NET kalbų aprašas Visual Basic.NET C# Kalbų privalumai VB.NET kalbos privalumai C# kalbos privalumai C# ir VB.NET kalbų istorija Visual Basic ir Visual Basic.NET kalbų istorija C# istorija C# ir VB.NET kalbų sintaksė Raktiniai žodžiai Raktiniai žodžiai, išrikiuoti pagal abėcėlę Kalbų duomenų tipai Operatorių skirtumai Elementarūs kodo fragmentai C# ir VB.NET kodo fragmentai Programavimo eksperimentai Programų kūrimo aplinka Microsoft Visual Studio Matematinių ir įvesties/išvesties operacijų spartos palyginimas Householderio transformacija Rezultatai Išvados Priedas 1. Terminų žodynas Priedas 2..NET kalbos Literatūros šaltiniai Anotacija Santrauka Summary
4 Įvadas Darbe nagrinėjamos įvairiais požiūriais lyginamos dvi populiarios Microsoft kompanijos kalbos: VB.NET ir C#. Lyginimo kriterijai Lyginimo kriterijai: C# ir VB.NET kalbų istorija. Kas yra bendro tarp jų? Sintaksės panašumai/skirtumai. Vykdomo kodo greitaveika šiose srityse: o matematinės operacijos; o įvesties/išvesties operacijos;. Hipotezės Buvo iškeltos tokios hipotezės: taikomųjų programų kūrimo galimybės yra panašios; integruotos kūrimo aplinkos (IDE) vartotojo sąsaja toks pats, Windows Forms, meniu, mygtukai ir kiti įterpiami valdymo elementai; kodo, parašyto C# kalba, vykdymo greitis, lyginant su kodu, parašytu Visual Basic.NET kalba bus: o didesnis vykdant matematinius skaičiavimus; o toks pat, vykdant įvesties/išvesties operacijas. Darbo uždaviniai Siekiant tikslo, reikia atlikti šiuos uždavinius: apibrėžti svarbią sąvoką taikomoji programa ; apibūdinti Microsoft.NET platformą; atlikti abiejų kalbų istorinę apžvalgą; palyginti kalbų sintaksę; atlikti programuotojo aplinkos analizę; eksperimento metu nustatyti C# ir VB.NET vykdomo kodo greitaveiką. 4
5 1. Taikomoji programinė įranga Šio darbo esmė dviejų programavimo kalbų analizė taikomųjų programų kūrimo požiūriu. Norint tai daryti, būtina apibrėžti (kiek tai įmanoma) taikomosios programinės įrangos sąvoka. Tai galima padaryti lyginant taikomąją PĮ su sistemine PĮ. Toliau vartosiu sąvokos programinė įranga sinonimą programa. Sisteminės programos skirtos užtikrinti sklandų kompiuterio ir taikomųjų programų darbą [7]. Tiesioginio rezultato vartotojui jos neduoda. Sisteminių programų pavyzdžiai: operacinė sistema (pvz., FreeBSD, Windows XP); tvarkyklė (angl. driver, pvz., grafinės plokštės tvarkyklė); kietų diskų skaidymo programa (pvz., Partition Logic); kietų diskų defragmentavimo programa (pvz., UltraDefrag); antivirusinė programa (pvz., Avira AntiVir). Taikomosios programos skirtos vykdyti tam tikras užduotis, susijusias su žmonių veikla. Jos sąveikauja tiesiogiai su vartotoju. [8] Paprastai taikomosios programos negali tiesiogiai prieiti prie kompiuterio resursų ir sąveikauja su aparatine įranga per sistemines programas. Taikomųjų programų pavyzdžiai: tekstų apdorojimo programa (pvz., Microsoft WordPad); skaičiuoklė (pvz., Microsoft Excel); elektroninio pašto programa (pvz., Microsoft Outlook, Eudora); naršyklė (pvz., Opera, Chrome); buhalterinės apskaitos programa (pvz., Rivilė) integruota kūrimo aplinka (pvz., Dev-C++); nuotraukų ir grafikos peržiūros arba apdorojimo programa (pvz., GIMP); programa, atkurianti įvairius skaitmeninius įrašus (pvz., WinAmp, GomPlayer); žaidimas (pvz., Tetris); 5
6 2. Microsoft.NET karkasas Microsoft.NET karkasas (angl. framework) programinis karkasas, skirtas taikomųjų ir tinklo programų kūrimui..net yra patentuota Microsoft kompanijos technologija, tačiau po susitarimo su kompanija Novell technologija Mono buvo pripažinta kaip.net platformos realizacija Unix tipo operacinėse sistemose. Ko gero, svarbiausia idėja, realizuota.net karkase modulių, parašytų skirtingomis programavimo kalbomis, suderinamumas. Pvz., kodas, parašytas C++ kalba.net karkase, gali kreiptis į klasės, parašytos Delphi, metodą. Kiekviena.NET biblioteka turi duomenis apie savo versiją, tokiu būdu galima išvengti versijų nesuderinamumo problemos. NET programų kūrimo terpės (plačiau žr. straipsnį IDE terminų žodyne): Microsoft Visual Studio; SharpDevelop; MonoDevelop; Elipse; Borland Developer Sturio (kalbos: Delphi for.net, C#); Programas galima kurti ir bet kokiame tekstų doroklyje, naudojant konsolinį kompiliatorių. Panašiai kaip Java technologijoje,.net terpė sukuria bait-kodą, skirtą vykdyti virtualioje mašinoje, kuri vadinasi CLR (angl. Common Language Runtime). Bait-kodo naudojimas leidžia turėti daugiaplatformiškumą..net programų rašymo ir vykdymo procesas vyksta taip: kodo rašymas viena iš.net kalbų; parašyto kodo transliavimas į virtualios mašinos įeities kalbą bait-kodą, kuris vadinama MSIL (angl. Microsoft Intermediate Language) arba vėlesniu pavadinimu CIL (angl. Common Intermediate Language); CIL kodas iškart prieš taikomosios programos paleidimą transformuojamas į mašininį kodą specialiu JIT (angl. Just-in-time) kompiliatoriumi; gautas mašininis kodas vykdomas aparatiniame procesoriuje; 6
7 Taip pat yra galimybė pačiam sukompiliuoti CIL kodą į mašininį, pasinaudojus programa NGen.exe (pvz., jeigu manoma, kad kompiuteryje, kuriame bus vykdoma parašyta programa, nebus instaliuotas.net karkasas). Pav. 1..NET platforma.net karkaso savybės: Common Language Runtime -.NET karkaso virtuali mašina. Visos.NET programos vykdomos esant CLR kontrolei. Užtikrinamas tam tikras programų elgesys (operatyvios atminties valdymas, saugumas, išimčių apdorojimas). Base Class Library biblioteka, prieinama visoms.net kalbomis parašytoms programoms, Framework Class Library dalis. BCL sudėtyje yra klasės, kuriose yra dažnai naudojamos funkcijos (operacijos su failais, grafinės funkcijos, darbas su duomenų bazėmis, darbas su XML dokumentais). 7
8 Atgalinis suderinamumas, kuris leidžia.net terpėje sukurtoms programoms bendrauti su senesnėmis programomis. Suderinamumą užtikrina šios.net dalys: o System.Runtime.InteropServices, suteikianti prieigą prie COM (Component Object Model, dvejetainis programų tarpusavio saveikos standartas, atsiradęs 1993 m.); o System.EnterpriseServices taip pat suteikianti prieigą prie COM; o Platform Invocation Services (dažnai trumpinama kaip P/Invoke), kuri leidžia valdomam kodui kreiptis į mašininį kodą. Kalbų nepriklausomumas..net karkasas pristato Common Type System, sutrumpintai CTS. CTS specifikacija apibrėžia visus įmanomus duomenų tipus ir programines konstrukcijas, kurias palaiko CLR. Taip pat CTS specifikacija nustato būdus, kaip programinės konstrukcijos gali komunikuoti tarpusavyje (būdai atitinka Common Language Infrastructure specifikaciją). Dėl kalbų nepriklausomumo.net karkase kodas, parašytas viena karkasui priklausančia kalba, gali bendrauti su kodu, parašytu kita karkasui priklausančia kalba (pvz., kreiptis į modulius)..net programavimo kalbų sąrašas yra pateiktas 2-ame priede. Saugumas. Kuriant.NET platformą, buvo atsižvelgta į tai, kad kai kurios programavimo klaidos (pvz., sukeliančios buferio perpildymą) išnaudojamos kenksmingomis programomis. Be to,.net suteikia bendrą saugumo modelį visoms taikomosioms programoms. Pernešamumas. Teoriškai.NET karkasas leidžia būti nepriklausomiems nuo operacinės sistemos. Kitaip tariant, programa, sukurta karkase, turėtų būti vykdoma be jokių pakeitimų bet kur, kur yra.net karkaso realizacija. Tačiau pati Microsoft kūrė šį karkasą tik savo Windows OS šeimai. Iš kitos pusės, Microsoft kompanija pateikė Common Language Infrastructure (kuri susideda iš branduolio bibliotekų, Common Type System ir Common Intermediate Language) bei C# kalbos specifikacijas standartizavimu užsiimančioms organizacijoms ECMA ir ISO, tokiu būdu padarydama išvardintas technologijas atvirais standartais. Tai leidžia trečioms šalims kurti savo.net karkaso realizacijas. 8
9 3. C# ir VB.NET kalbų aprašas 3.1. Visual Basic.NET Visual Basic.NET (sutrumpintai VB.NET) objektiškai-orientuota programavimo kalba, į kurią galima žiūrėti kaip į Visual Basic kalbos evoliucinį darinį. Kalba realizuota Microsoft.NET platformoje. VB.NET ne turi atvirkštinio suderinamumo su ankstesne versija Visual Basic 6.0. Senųjų projektų (su plėtiniu *.vbp) plėtojimas galima tik po konvertacijos į VB.NET formatą naudojant specialų įrankį, kuris vadinamas Migration Wizard. Tačiau po konvertacijos reikalingas nemažas išeities tekstų koregavimas. Pokyčiai lyginant su VB 6.0, realizuoti VB.NET kalboje: objektiškai-orientuoto programavimo koncepcijų palaikymas: konstruktoriai, destruktoriai, paveldimumas, metodų perkrova ir kt. (yra netgi operacijų ženklų perkrova); kompiliacija į bait-kodą (angl. Intermediate Language), kuris vykdomas virtualioje mašinoje Common Language Runtime (CLR); viso objektinių bibliotekų rinkinio, įeinančio į.net Framework, naudojimas, įskaitant galingus įrankius, skirtus darbui su formomis (Windows Forms), duomenų bazėmis (ADO.NET), grafika (GDI+), taip pat saugumo įrankių ir ASP.NET (darbas su tinklalapiais) naudojimas; daugiagijiškumo palaikymas; struktūrinio išimčių apdorojimo (angl. structurized exception handling) palaikymas. Naujausia VB.NET versija Kodo, parašyto šia kalba, pavyzdys pateiktas 1- ame pav. 9
10 Pav. 2. VB.NET kodo pavyzdys 3.2. C# C# (tariama si-šarp ) objektiškai-orientuota programavimo kalba, kuri pirmąkart buvo išleista 2001 m. Šiuo metu egzistuoja 4.0 kalbos versija. Ji atsirado išleidus integruotą kūrimo aplinką Visual Sturio Simbolį #, vadinamą oktotorpu, galima interpretuoti kaip dvi pliusų poras (++ ir ++), kurios pratęstų grandinę C, C++, C++ ++ (C#). Ko gero, siekiama parodyti tolesnį kalbos progresą, lyginant su jos pirmtakais. C# kodo pavyzdys pateiktas pav. 2. C# kalba palaiko: statinę tipizaciją (žr. tipizacija terminų žodyne); operatorių perkrovą; delegatus; atributus; įvykius; savybes; apibendrinto programavimo paradigmą (angl. generic programming); iteratorius; anonimines funkcijas; LINQ; komentarus XML formatu. C# kalbos kūrėjus įtakojo šios programavimo kalbos: 10
11 C++; Java; Delphi (arba Object Pascal); Modula 2; Smalltalk. C# kalba įtakojo šias programavimo kalbas: F#; Nemeile; Vala; Windows PowerShell. C# buvo kuriama kaip taikomoji programavimo kalba CLR aplinkai (plačiau žr. straipsnį Common Language Runtime terminų žodyne), todėl kalbos galimybės priklauso nuo šios kalbos galimybių. Labiausiai tai liečia tipų sistemą, kuri atspindima Base Class Library bibliotekos. Tam tikrų elementų buvimas ar nebuvimas C# kalboje priklauso nuo galimybės transliuoti kalbos elementus į atitinkamas CLR konstrukcijas. Būtent dėl šios priežasties C# kalbos galimybės prasiplėtė, kai CLR aplinkos versija pakilo nuo 1.1 iki 2.0. CLR aplinka suteikia C# kalbai savybių, kurių neturi klasikinės programavimo kalbos. Pvz., šiukšlių surinkimas (nenaudojamas, bet ir neatlaisvintos operatyvios atminties naudojimas) nėra realizuotas pačioje kalboje, tačiau vykdoma CLR aplinkos, kuri tą patį daro ir VB.NET, ir J#, ir kitoms.net platformos kalboms. C# kalba buvo standartizuota dviejose organizacijose: ECMA ir ISO. Yra kelios nepriklausomos C# kalbos realizacijos, kurios remiasi paskelbtomis specifikacijomis (šios realizacijos yra vystymosi stadijoje): Mono. Projektas pradėtas Ximian kompanijoje ir tęsiamas kompanijoje Novell (atviro kodo). dotgnu ir Portable.NET, kurie kuriami organizacijoje Free Software Foundation (atviro kodo). SharpDevelop (atviro kodo). DotNetAnywhere, skirta įvairiems įtaisams. 11
12 3.3. Kalbų privalumai VB.NET kalbos privalumai VB.NET kalbos privalumai pagal [5]): Parametrų palaikymas, kuris įgalina patogų COM (angl. Component Object Model) naudojimą. COM yra technologinis Microsoft kompanijos standartas, skirtas kurti programinę įrangą, kuri remiasi komponentais, kuriuos gali naudoti kelios programos vienu metu. Vardinių indeksų (angl. named indexers) palaikymas. Įvairios legacy VB funkcijos (kurie pateikti Microsoft.VisualBasic vardų erdvėje (angl. namespace), ir gali būti naudojamos kituose kalbose, nurodant Microsoft.VisualBasic.dll biblioteką). Tačiau daugelis jų gali sumažinti greitaveiką (jei bus naudojamos neapdairiai), be to, manoma, kad jų dažniausiai reiktų vengti. with konstrukcija: diskutuotinas dalykas, ar tai privalumas, ar trūkumas. Paprastesnis (galbūt kiek sunkesnis supratimo požiūriu) įvykių apdorojimas. Metodas gali būti apibrėžtas kaip metodas, apdorojantis įvykį (nereikia specialaus metodo, vadinamo handler). Galimybė realizuoti interfeisus naudojant metodus, kurių vardai skirtingi (tačiau ši ypatybė apsunkina duotojo interfeiso realizacijos suradimą). Catch... When... sakiniai, kurie įgalina filtruoti išimtis remiantis vykdymo metu suformuotomis išraiškomis (angl. runtime expressions), o ne remiantis tik išimčių tipais. VB.NET kodo dalys jūsų Visual Studio.NET projekte kompiliuojamos foninio proceso metu. Mažiems projektams tai laikoma privalumu, tačiau žmonės, dirbantys su labai dideliais projektais, pastebi ženklų IKA (integruotos kūrimo aplinkos, angl. Integrated Development Environment, žr. straipsnį terminų žodyne) sulėtėjimą. 12
13 C# kalbos privalumai Yra du svarbiausi C# kalbos privalumai: populiarumas (žr. pav. 3) standartas de-facto tarp Microsoft programavimo kalbų, skirtų kurti taikomąsias programas (ne web) Pav. 3. Kalbų populiarumas [13] 13
14 4. C# ir VB.NET kalbų istorija 4.1. Visual Basic ir Visual Basic.NET kalbų istorija Nors iš pradžių buvo Visual Basic buvo kurtas kaip savotiškas programavimo žaislas, ši programavimo kalba gana greitai išsikovojo nemažą populiarumą. Šis populiarumas sąlygotas santykiniu paprastumu ir produktyvumu. Programos, parašytos Visual Basic kalba veikia lėčiau nei C/C++ analogai, bet vis tiek jos yra pakankamai greitos, tuo labiau kad tų programų kūrimas reikalauja žymiai mažiau laiko. [1] Formos (nepainioti su Windows Formomis, kurios atsirado žymiai vėliau!) buvo taupanti pastangas abstrakcija, kurią pasaulio programuotojams pasiūlė programuotojai iš Microsoft kompanijos. VB IDE leido kurti langus grafiniu būdu, pertempiant iš instrumentų srities tokius valdymo elementus kaip mygtukai ar sąrašai (toks pertempimo būdas angl. vadinamas drag-and-drop). Gavęs jo žvilgsnį tenkinančią formą, programuotojas galėjo pereiti prie kodo ir rašyti įvykių, susijusių su kiekvienu valdymo elementų, apdorojimo algoritmus. Tokiu būdu taikomųjų programų Visual Basic kalba kūrimas susidėjo iš kelių formų sukūrimo, kurios bendravo tarpusavyje ir, galbūt, kreipėsi į tam tikrą duomenų bazę. Formos leido naudoti langų privalumus žymiai patogesniu būdu. Visual Basic sumažino klaidų skaičių, pašalindamas kai kuriuos paslėptus C/C++ sintaksės elementus. Išskyrus ypatingus atvejus, reiškiniai aprašymas apsiribodavo viena kodo eilute, o kintamieji turėjo būti deklaruojami ir inicializuojami atskirose kodo eilutėse. Priskyrimo ir lyginimo operatoriai naudojo tą patį simbolį, tačiau Visual Basic kalbos gramatika reikalavo, kad šie operatoriai būtų naudojami taip, kad programuotojo ketinimai būtų visiškai aiškūs. Galima daiktas, kad svarbiausias dalykas, esantis VB rodyklių nebuvimas. Jų nebuvo pradedant nuo pirmų Microsoft BASIC versijų. Nors rodyklės yra naudingos, nes įgalina pasiekti bet kurią atminties ląstelę, tačiau neatsargus rodyklių naudojimas susijęs su nemažais pavojais. Gramatinio paprastumo reikalavimas BASIC kalboje prasideda nuo šios kalbos pavadinimo: Beginner s All-purpose Symbolic Instructional Code (Daugiatikslis simbolinis komandų kodas pradedantiesiems). 14
15 Šestos versijos Visual Basic tampa galinga kalba, kuria galima rašyti paskirstytų skaičiavimų programas, naudojant komponentus COM ir Microsoft Transaction Server. Microsoft kompanija pasiūlė trijų lygių koncepciją architektūrai klientas-serveris, kurioje plonieji (angl. thin) vartotojų interfeisai tarpininkavo su nutolusiais VB komponentais tam, kad gautų duomenis iš duomenų bazės ar iš kito kompiuterio. Pradedant 5-ąja VB versija, VB programos yra kompiliuojamos į mašininį kodą, tačiau jos buvo pagrįstos DLL naudojimu. Įdomu tai, kad VB kompiliatorius transliavimui naudoja daugiapakopį režimą, be to, po tarpinio kodo konvertavimui į mašininį naudoja kompiliatorių Microsoft C++. Šioje Visual Basic savybėje (DLL naudojimas ir C++ vidinio interfeiso naudojimas) matomos.net užuomazgos. Tačiau VB turi ne vieną trūkumą. Patyrę programuotojai dažnai stebisi, kad kai kuriuos dalykus (pvz., daugiagijiškumą, angl. multithreading) Visual Basic e realizuoti ganėtinai nelengva. Parašytos ištisos knygos apie tai, kaip priversti Visual Basic kalbą daryti sudėtingus dalykus, kuriuos be problemų parašytų C programuotojai. Pvz., pranešimų, siunčamų iš operacinės sistemos į VB Windows-formas, eilės peržiūra (angl. hooking). Kadangi programos Visual Basic kalba remiasi vykdymo terpe (kaip ir Java kalba), jos vykdomos lėčiau, nei programos C kalba, be to, jų vykdymui kompiuteryje turi būti VB vykdymo aplinkos komponentai. Programavimo kalba Basic buvo sukurta 1964 m. dviejų profesorių iš Dartmouth College. Tai buvo John Kemeny ir Thomas Kurtz. Savo kalbą jie skyrė studentams mokyti. Kalba gavosi tokia paprasta ir suprantama, kad po kurio laiko pradėta naudoti ir kitose mokslo įstaigose m., prasidėjus mikrokompiuterių erai, estafetę perėmė Bill Gates ir Paul Allen, Microsoft kompanijos įkurėjai. Būtent jie sukųrė naują Basic kalbos versiją pirmiems MITS Altair kompiuteriams, sugebančią dirbti 4 kilobaituose operatyvios atminties. Laikui bėgant, ši Basic kalbos atmaina tapo viena populiariausių kalbų pasaulyje [6]. Įdomu, kad nors buvo įvarių Basic versijų - GW-Basic, kuris buvo vienas iš standartų IBM PC tipo kompiuteriuose, Turbo Basic, QuickBasic, Basic PDS kuriant naują kalbos versiją visada stengtasi išsaugoti suderinamumą su ankstesnėmis kalbos versijomos. Programa, parašyta pirmai Basic versijai, su nežymiais pakitimais (arba visai be jų) galėtų veikti vėlesnėse kalbos versijose. Tačiau kai 1990-ais metais atiranda operacinė sistema Microsoft Windows 3.0, pateikusi naują grafinę vartotojo sąsają, 15
16 programuotojų darbas tapo sudėtingesnis. Tam, kad sukurt paprastą programą, reikėdavo prirašyti ne vieną puslapį kodo: kurti meniu ir programos langą, keisti šriftus, valyti atmintį, paišyti mygtukus. Nepaisant visko, naujo grafinio vartotojo interfeiso privalumai buvo tokie akivaizdūs, kad trečioji OS Windows versija tapo standartu asmeniniuose kompiuteriuose [6]. Tuo metu Microsoft viduje lygiagrečiai buvo vykdomi keli projektai, susiję su nauja kalba, kuri turėjo įsigalėti Windows OS terpėje gegužę pasaulį išvydo vienas iš tokių projektų nauja kalba, pavadinta Visual Basic. Programavimo sistema, sukurta Visual Basic kūrėjų, leido atsiriboti nuo sudėtingos langų struktūros ir kurti programas tarsi vaikiškame konstruktoriuje, iš atskirų elementų. Savo pirmą programą VB programuotojai sukurdavo po kelių minučių nuo kalbos pažinimo momento. Dar daugiau: Visual Basic leido programų plėtotojams kurti naujus elementus ( konstruktoriaus elementus ), kurie galėjo būti naudojami programose taip pat kaip ir standartiniai. Ši Microsoft sukurta programavimo kalba dar labiau išpopuliarėjo 1994 m., po Visual Basic for Applications išleidimo. Būtent tuo metu, po VBA įtraukimo į Microsoft Office paketo sudėtį, Basic tapo standartu de-facto Windows operacinių sistemų terpėje. Vėliau buvo pildomos kalbos galimybės: OLE, DAO, JET, 32-jų bitų architektūra. Paskutinės kalbos versijos buvo tokios sėkmingos, kad jų pagrindu galima buvo kurti bet kokio sudėtingumo programas: buvo įtrauktas atšaukimo (angl. callback) funkcijų palaikymas, puikus klaidų aptikimo modulis (žr. derintuvas temrinų žodyne), bibliotekos DirectX palaikymas ir t.t. Pagrindiniu Visual Basic kalbos sėkmės faktoriumi buvo programų vykdymas, pagrįstas įvykiais ir jų apdorojimu. Būtent tokia schema leidžia pamiršti apie tai, kas vyksta už programos ribų ir apie tai, kaip programa bendrauja su operacine sistema. Visual Basic komponentai, atsakydami į vartotojo veiksmus, generuoja įvykius, o programos logika juos apdoroja. Tokia paprasta koncepcija sąlygojo tai, kad pradedantieji programuotojai nesunkiai įvaldydavo Visual Basic pagrindus. Tačiau VB nebuvo objektiškai orientuota kalba, ir buvo aišku, jog anksčiau ar vėliau bus permainų m. vasario 13-ą dieną konferencijoje VSLive San-Francisko mieste Microsoft pristatė.net Framewor platformą ir naują programavimo aplinkos Visual Studio versiją Visual Studio.NET nebuvo eiline populiarios programavimo aplinkos versija, tai buvo revoliucinė naujovė..net Framework tai naujos kartos taikomųjų 16
17 programų vykdymo aplinka, kuri gali būti įdiegta į visas Windows OS versijas, pradedant nuo Windows 98..NET Framework pagrįstas virtualia vykdymo sistema (angl. Virtual Execution System). Taikomųjų programų, sukurtų.net Framework terpėje pagrindinė ypatybė programos sudarytos ne iš x86 procesorių šeimos instrukcijų, o iš virtualios mašinos instrukcijų, parašytų Microsoft Intermediate Language (MSIL) kalba..net Framework savo sudėtyje turi JIT kompiliatorių. Esant pirma kreipimuisi į programą, JIT kompiliatorius ne vykdo viso MSIL kodo, o kompiliuoja kiekvieną atskirą metodą, į kurį kreipiamasi programos vykdymo metu. Sukompiliuotas kodas saugomas atmintyje, ir sekantys kreipiniai į programą vykdo jau tą paruoštą vykdymui kodą. Būtent dėl šios priežasties esant pirma kreipiniui į programą pastebima kelių sekundžių pauzė tarp programos paleidimo ir jos vykdymo pradžios. Kai kas tai vadina rimtu.net platformos trūkumu, bet mano nuomone, taip nėra, tuo labiau, kad Microsoft suteikia specialų kompiliatorių CLR Native Image Generator (NGEN), kuris vykdo viso programos MSIL kodo kompiliavimą ir išsaugo rezultatą kietajame diske..net Framework yra plati ir sąlyginai paprastos struktūros biblioteka, kurios pagrindu galima kurti rimtas taikomąsias programas. Kas svarbu tai pilnai objektiškaiorientuota biblioteka. Kaip mano Microsoft ideologai, po tam tikro laiko.net taps daugumos Windows OS programų pagrindu ir, galiausiai, turėtų pakeisti taikomųjų programų (angl. API, Application Programming Interface) interfeisą. Taip pat Microsoft žada, kad Visual Studio.NET visada bus atvira trečioms šalims pagalbinių instrumentų gamybos prasme (remiantis Open Tools platform technologija). Kadangi.NET Framework pilnai objektiškai-orientuota platforma, o Visual Basic kalba niekada tokia nebuvo, tai koncepcijos pakeitimas pareikalavo rimtų kalbos pakeitimų, kurie sąlygojo tai, jog dabar jau nebėra visiško (arba beveik visiško) suderinamumo su ankstesnėmis kalbos versijomis. Kitaip tariant, iš esmės turime naują programavimo kalbą Visual Basic.NET. [6] Visual Basic.NET naudoja visiškai naujas formas Windows Forms. Windows Forms beveik pilnai suderinamos su Visual Basic 6 formomis, tačiau esama kelių esminių skirtumų: 17
18 Windows Forms nepalaiko valdymo elemento OLE container control; nėra valdymo elementų Shape ir Line; Windows Forms turi du valdymo elementus, realizuojančius meniu MainMeniu ir ContextMenu; Windows Forms nepalaiko dinaminio duomenų apsikeitimo (DDE); nėra metodo Form.PrintForm;.NET hierarchijoje yra pagerintas objektas Clipboard (System.WinForms.Clipboard), suteikiantis daugiau funkcionalumo bei palaikantis didesnį formatų skaičių, nei Visual Basic 6 objektas Clipboard; Windows Forms neturi savybės Name (formoms ir kontroliniams elementams), todėl visų formų (ar kontrolinių elementų) perrinkimas ieškant elemento su reikiamu vardu neveiks; reikia naudoti pixel vietoj twip; Windows Forms palaiko tik truetype ir opentype šriftus. Apskritai, Windows Forms suteikia programuotojui dideles galimybes. Pvz., anksčiau tokia operacija kaip programos ženkliuko įdėjimas į systray (esantį OS Windows dešiniajame apatiniame kampe) reikalavo nemažų pastangų, o atsiradus VB.NET ši operacija tapo pastebimai paprastesnė. Microsoft kompanija, suprasdama, kad migracijos į VB.NET procesas bus sudėtingas, sukūrė specialų įrankį, skirtą projektų transformacijai. Tačiau praktika parodė, kad kokybiškai konvertuoti į VB.NET galima tik klases (kitaip tariant, kodą). Projektų, turinčių formas (Form), konvertacija iš Visual Basic 6 greičiausiai nepavyks. Kodėl gi tas konvertavimo įrankis veikia taip blogai? Esmė ta, kad kokybiška projektų transformacija atlikti neįmanoma, nes radikaliai pasikeitė formos (Form), tapusios Windows Forms iš bibliotekos.net Framework. 18
19 4.2. C# istorija Sukurta m. Microsoft kompanijoje kaip pagrindinė taikomųjų programų kūrimo kalba.net platformai. Inžinerių grupei vadovavo Anders Hejlsberg. Šis danų programuotojas buvo prie Turbo/Borland Pascal IDE ištakų. Iki 1996 m. Hejlsberg buvo vyriausias kompanijos Borland inžinierius, kurioje Pascal io pagrindu sukūrė naują programavimo kalbą Delphi m. jis perėjo dirbti į Microsoft, kur dirbo su tokiais projektais kaip J++ ir Windows Foundation Classes. Vėliau tapo C# kalbos projektavimo ir kūrimo grupės lyderiu [27]. C# kalbos kūrėjai neišradinėjo dviračio. Jie paėmė gerąsias, laiko patikrintas kitų populiarių kalbų savybes [26, 27]. Šios kalbų pavadinimai yra pažįstami bet kuriam iš informatikų: C; C++; Java. Dauguma pasaulio programuotojų išmano bent vieną kalbą iš pateikto sąrašo (o neretai ir visas). Perėjimas nuo bet kurios iš minėtų kalbų prie C# nebus jiems sudėtingas. Trumpai C# programavimo kalbos ryšį su minėtomis kalbomis galima apibūdinti taip: objektinį modelį ji paėmė iš C++ kalbos; sintaksės, raktinių žodžių, operatorių prasme ji artima C kalbai; pernešamumo prasme C# panaši į Java kalbą (abiejų kalbų kodai vykdomi virtualioje mašinoje). Savaime suprantama, C# kalba turi ir inovacijų. Ko gero, pati svarbiausia C# kalbos savybė galimybė dirbti daugiakalbėje aplinkoje (.NET platformos palaikomų kalbų sąrašą žr. 2-ame priede). C# kalbos alfa-versija pasirodė 2000 m. viduryje. 1.0 kalbos versija išvydo pasaulį 2001 m m. balandžio mėn pasirodė naujausia kalbos versija
20 5. C# ir VB.NET kalbų sintaksė 5.1. Raktiniai žodžiai Lentelė 1. Retesni VB.NET ir C# raktiniai žodžiai Paskirtis VB.NET C# Kintamojo apibrėžimas Private, Public, Friend, Protected, Static1, Shared, Dim declarators (keywords include user-defined types and built-in types) Vardinės konstantos Const const apibrėžimas Naujo objekto sukūrimas New, CreateObject() new Funkcija/metodas be Sub void reikšmės grąžinimo Funkcijos arba metodo Overloads nieko naudoti nereikia perkrovimas (Visual Basic e: procedūros arba metodo) Pateikti nuorodą į duotą Me this objektą Nevirtualus kreipimasis į duotojo objekto virtualų metodą MyClass nėra Simbolio išgavimas iš eilutės GetChar Function [] Sudėtinės duomenų Structure <nariai> End struktūros apibrėžimas Structure (Visual Basic e: Structure) Objekto inicializavimas (konstruktoriai) Tiesioginis objekto sunaikinimas Metodas iškviečiamas prieš šiukšlių surinkimą Kintamojo inicializavimas apibrėžimo metu Funkcijos adreso gavimas Sub New() nėra Finalize Dim x As Long = 5 Dim c As New _ Car(FuelTypeEnum.Gas) AddressOf (Klasės nariams šis operatorius grąžina nuorodą į funkciją (deleguotos esybės pavidalu) struct, class, interface Konstruktoriai, arba konstruktoriai pagal nutylėjimą nėra destructor // inicializacija: int x = 123; // arba naudoti // konstruktorių // pagal nutylėjimą: int x = new int(); delegate 20
21 Paskirtis VB.NET C# Objekto asinchroniško nėra volatile modifikavimo apibrėžimas Priverstinis kintamųjų apibrėžimas Option Explicit nėra (visi kintamieji turi būti apibrėžti prieš jų naudojimą Objekto inicializacija obj = Nothing obj == null Value of an object variable Nothing null that does not refer to an object Patikrinimas, ar duombazė IsDbNull nėra yra null reikšmės Test whether a Variant nėra nėra variable has been initialized Define a default property Default by using indexers Kreipimasis į bazinę klasę MyBase base Interfeiso apibrėžimas Interface interface Interfeiso, kuris bus Implements (teiginys) class C1 : I1 realizuojamas, nurodymas Klasės apibrėžimas Class <realizacija> class Nurodymas, kad klasė gali būti tik paveldėta. Klasės egzempliorius negali būti sukurtas MustInherit abstract Nurodymas, kad klasė negali NotInheritable sealed būti paveldėta Declare an enumerated type Enum <members> End Enum enum Klasės konstantos apibrėžimas Const const (Applied to a field declaration) Išvesti klasę iš bazinės klasės Inherits C2 class C1 : C2 Metodo praplėtimas Overrides override Declare a method that must MustOverride abstract be implemented in a deriving class Metodo, kuris negali būti praplėstas, apibrėžimas NotOverridable (pagal nutylėjimą metodai nėra sealed Declare a virtual method, property (Visual Basic), or property accessor (C#, C++) overridable) Overridable virtual 21
22 Paskirtis VB.NET C# Bazinės klasės nario paslėpimas išvestinėje klasėje Shadowing nėra Declare a typesafe reference Delegate delegate to a class method Specify that a variable can WithEvents contain an object whose events you wish to handle Įvykių, kuriems esant bus paleista įvykių procedūrą, apibrėžimas Evaluate an object expression once, in order to access multiple members Struktūrinis išimčių apdorojimas Handles (Event procedures can still be associated with a WithEvents variable by naming pattern.) With objexpr <.member> <.member> End With Try <bandyk> Catch <apdorok klaidas> Finally <vykdyk visada> End Try Select Case..., Case, Case Else, End Select Sąlyginis sakinys, kai vykdymo variantų yra keli Sąlyginis sakinys (if... then) If... Then, ElseIf... Ciklas while Ciklas for Then, Else, End If While, Do [While, Until]..., Loop [While, Until] For..., [Exit For], Next For Each..., [Exit For,] Next (Write code - no specific keyword) nėra nėra try, catch, finally, throw switch, case, default, goto, break if, else do, while, continue for, foreach Masyvo apibrėžimas Dim a() As Long int[] x = new int[5]; Masyvo inicializavimas Dim a() As Long = {3, 4, 5} int[] x = new int[5] { 1, 2, 3, 4, 5}; Iš naujo išsskirti atmintį masyvui Visible outside the project or assembly Invisible outside the assembly (C#/Visual Basic) or within the package (Visual J#, JScript) Redim Public Friend nėra public internal 22
23 Paskirtis VB.NET C# Prieinamas tik projekto Private private ribose (tam tikrais atvejais gaubiančios klasės ribose) Prieinamas už klasės ir projekto arba modulio ribų Public public Prieinamas už klasės ribų, be Friend internal tik projekto ribose Prieinamas tik klasės arba Private private modulio ribose Prieinamas tik esamai arba Protected protected išvestinei (derived)? klasei Preserve procedure's local Static nėra variables Prieinama visiems klasės Shared static egzemplioriams Kodo komentarai ' komentaras //, /* */ - komentarams, užimantiems kelias eilutes /// - XML komentarams Ar svarbus raidžių registras? ne taip Windows API iškvietimas Declare <API> naudokite Platform Invoke Apibrėžti ir iššaukti įvykį Event, RaiseEvent event Gijų primityvai SyncLock lock Go to (eik į nurodytą kodo vietą) Goto goto 5.2. Raktiniai žodžiai, išrikiuoti pagal abėcėlę Lentelėje 2. yra pateikti visi abiejų kalbų raktiniai žodžiai, surikiuoti pagal anglišką abėcėlę. 23
24 Lentelė 2. Raktiniai žodžiai pagal abėcėlę. [11, 12] Anglų kalbos abėcėlės raidė C# VB.NET a abstract, as AddHandler, AddressOf, Alias, And, AndAlso, Ansi, As, Assembly, Auto b base, bool, break, byte Boolean, ByRef, Byte, ByVal Call, Case, Catch, CBool, CByte, c case, catch, char, checked, CChar, CDate, CDec, CDbl, Char, class, const, continue CInt, Class, CLng, CObj, Const, CShort, CSng, CStr, CType d Date, Decimal, Declare, decimal, default, Default, Delegate, Dim, delegate, do, double DirectCast, Do, Double e else, enum, event, Each, Else, ElseIf, End, Enum, explicit, extern Erase, Error, Event, Exit f false, finally, fixed, float, for, foreach False, Finally, For, Friend, Function g goto Get, GetType, GoSub*, GoTo h - Handles i if, implicit, in, in (angl. If, Implements, Imports, In, generic modifier), int, Inherits, Integer, Interface, Is interface, internal, is l lock, long Let*, Lib, Like, Long, Loop 24
25 Lentelė 2. Raktiniai žodžiai pagal abėcėlę (tęsinys). [11, 12] Anglų kalbos abėcėlės raidė C# VB.NET m - Me, Mod, Module, MustInherit, MustOverride, MyBase, MyClass n namespace, new, null, Namespace, New, Next, Not, Nothing, object NotInheritable, NotOverridable o operator, out, out (angl. generic modifier), override Object, On, Option, Optional, Or, OrElse, Overloads, Overridable, Overrides p params, private, ParamArray, Preserve, Private, Property, protected, public Protected, Public r readonly, ref, return RaiseEvent, ReadOnly, ReDim, REM, RemoveHandler, Resume, Return s sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch Select, Set, Shadows, Shared, Short, Single, Static, Step, Stop, String, Structure, Sub, SyncLock t this, throw, true, try, typeof Then, Throw, To, True, Try, TypeOf u uint, ulong, unchecked, unsafe, ushort, using Unicode, Until v virtual, void, volatile Variant* w while When, While, With, WithEvents, WriteOnly x - Xor papildomi - #Const #ExternalSource, #If...Then...#Else, #Region * - rezervuoti kaip raktiniai žodžiai, tačiau VB.NET kalboje jau nebenaudojami 25
26 5.3. Kalbų duomenų tipai Lentelė 3. Duomenų tipų skirtumai [10] Paskirtis/dydis VB.NET C# Dešimtainis Decimal decimal Data Date DateTime Eilutė String string 1 baitas Byte byte 2 baitai Boolean boll 2 baitai Short, Char (Unikodo simbolis) short, char (Unikodo simbolis) 4 baitai Integer int 8 baitai Long long 4 baitai Single float 8 baitai Double double Iš prieš tai pateiktų ir žemiau esančių lentelių galima daryti tokias pagrindines išvadas apie C# ir VB.NET kalbų sintaksę. Nedidelis skirtumas: operacijų ženklai; sakinių skyryba; komentarai. Tam tikras skirtumas: algoritmo valdymo elementai (pvz., ciklai); duomenų tipai, skirtumas gali būti šiose srityse o raidžių registras duomenų tipo pavadinime (Double double); o duomenų tipo pavadinimas (Single - float); o vienoje kalboje gali nebūti kitoje kalboje esančio tipo. Didelis skirtumas: kintamųjų inicializavimas; raktiniai žodžiai. 26
27 5.4. Operatorių skirtumai Lentelė 4. Operatorių skirtumai [5] Paskirtis VB.NET C# Sveikųjų skaičių dalyba \ / Dalyba moduliu Mod % Kėlimas laipsniu ^ nėra Sveikos dalybos rezultato priskyrimas \= /= Sujungimas (konkatenacija) &= NEW += Modulis nėra %= Dvejetainis IR nėra &= Dvejetainis ARBA ( bet ne abu ) nėra ^= Dvejetainis ARBA (disjunkcija) nėra = Lygu = == Nelygu <>!= Compare two object reference Is == variables Nuorodų į objektus palyginimas TypeOf x Is Class1 x is Class1 Eilučių sujungimas & + Shortcircuited Boolean AND AndAlso && Shortcircuited Boolean OR OrElse Mastelis.. ir base Masyvo elementas () [ ] Type cast Cint, CDbl,..., CType (type) Postfiksinis padidinimas nėra ++ Postfiksinis sumažinimas nėra -- (angl. Indirection) nėra * (tik unsafe režime) Adresas AddressOf & (tik unsafe režime) Loginis NE Not! One's complement Not ~ Prefiksinis padidinimas nėra ++ Prefiksinis sumažinimas nėra -- Duotojo tipo dydis nėra sizeof Bitwise-AND And & Dvejetainis exclusive-or Xor ^ Dvejetainis inclusive-or Or Loginis IR And && Loginis ARBA Or Sąlyginis sakinys If Function ()?: Rodyklė į narį nėra. (Unsafe mode only) 27
28 5.5. Elementarūs kodo fragmentai Lentelė 5. Elementarūs kodo fragmentai [5] Paskirtis VB.NET C# Kintamųjų apibrėžimas Dim x As Integer Public x As Integer = 10 Komentarai ' komentaras x = 1 ' komentaras Rem comment? Priskyrimo sakiniai Sąlygos sakiniai Pasirinkimo iš kelių variantų sakinys int x; int x = 10; // komentaras /* kelių eilučių komentaras */ nval = 7 nval = 7; If ncnt <= nmax Then ' tas pats: ntotal = ' ntotal + ncnt. ntotal += ncnt ' tas pats: ncnt = ncnt + 1. ncnt += 1 Else ntotal += ncnt ncnt -= 1 End If Select Case n Case 0 MsgBox ("Zero") ' Visual Basic.NET exits ' the Select at ' the end of a Case. Case 1 MsgBox ("One") Case 2 MsgBox ("Two") Case Else MsgBox ("Default") End Select if (ncnt <= nmax) { ntotal += ncnt; ncnt++; } else { ntotal +=ncnt; ncnt--; } switch(n) { case 0: Console.WriteLine("Zero"); break; case 1: Console.WriteLine("One"); break; case 2: Console.WriteLine("Two"); break; default: Console.WriteLine("?"); break; } 28
29 Paskirtis VB.NET C# Bazinės klasės narių paslėpimas Public Class BaseCls (gal inkapsuliacija?) Hiding Base Class Members ' elementas, kuriam turi būti sukurtas šešėlis Public Z As Integer = 100 _ public Sub Test() System.Console.WriteLine( "Test in BaseCls") End Sub End Class Public Class DervCls Inherits BaseCls ' elementas, sukuriantis šešėlį. Public Shadows Z As String = "*" public Shadows Sub Test() System.Console.WriteLine( _ "Test in DervCls") End Sub End Class Public Class UseClasses ' DervCls išplečiama ' iki BaseCls Dim BObj As BaseCls = New DervCls() ' prieiga per išvestinę ' (angl. derived) klasę Dim DObj As DervCls = New DervCls() public class BaseCls { // slepiamas elementas public int Z = 100; public void Test() { System.Console.WriteLine( "Test in BaseCls"); } } public class DervCls : BaseCls { // slepiantis elementas public new string Z = "*"; public new void Test() { System.Console.WriteLine( "Test in DervCls"); } } public class UseClasses { // DervCls išplečiama // iki BaseCls BaseCls BObj = new DervCls(); // prieiga per išvestinę // klasę DervCls DObj = new DervCls(); Public Sub ShowZ() public void ShowZ() 29
30 System.Console.WriteLine( _ "Accessed through base "&_ "class: " & BObj.Z) System.Console.WriteLine(_ "Accessed through derived "&_ "class: " & DObj.Z) BObj.Test() DObj.Test() End Sub End Class { System.Console.WriteLine( "Accessed through " + "base class: {0}", BObj.Z); System.Console.WriteLine( "Accessed through" + " derived class:{0}", DObj.Z); BObj.Test(); DObj.Test(); } } Paskirtis VB.NET C# WHILE ciklas ' Sąlyga ciklo pradžioje While n < 100. ' tas pats: n = n + 1. n += 1 End While ' FOR ciklas For n = 1 To 10 MsgBox("The number is " & n) Next For Each prop In obj prop = 42 Next prop while (n < 100) n++; for (int i = 1; i <= 10; i++) Console.WriteLine( "skaicius yra {0}", i); foreach(prop current in obj) { current=42; } 30
31 Paskirtis VB.NET C# Parameter Passing by Value ' The argument Y is 'passed by value. Public Sub ABC( _ ByVal y As Long) 'If ABC changes y, the ' changes do not affect x. End Sub ABC(x) ' Call the procedure. ' You can force parameters to ' be passed by value, ' regardless of how ' they are declared, ' by enclosing ' the parameters in ' extra parentheses. ABC((x)) Parametras, Public Sub ABC(ByRef y As Long) perduodamas ' Parametras y apibrėžiamas kaip nuoroda ' pagal nuorodą ' (angl. by reference). ' Jeigu ABC keičia y, ' pakinta x reikšmė End Sub ABC(x) ' procedūros iskvietimas. /* Note that there is no way to pass reference types (objects) strictly by value. You can choose to either pass the reference (essentially a pointer), or a reference to the reference (a pointer to a pointer).*/ // The method: void ABC(int x) {... } // Calling the method: ABC(i); /* Note that there is no way to pass reference types (objects) strictly by value. You can choose to either pass the reference (essentially a pointer), or a reference to the reference (a pointer to a pointer).*/ // Note also that unsafe C# //methods can take pointers //just like C++ methods. //Detaliau žr. // unsafe. // metodas: void ABC(ref int x) {... } // metodo iškvietimas: ABC(ref i); 31
32 Paskirtis VB.NET C# Struktūrizuotų išimčių If x = 0 Then Try valdymas Throw New Exception( _ "x equals zero") Else Throw New Exception( _ "x does not equal zero") End If Catch err As System.Exception MsgBox( _ "Error: " & Err.Description) Finally MsgBox( _ "Executing finally block.") End Try // try-catch-finally try { if (x == 0) throw new System.Exception( "x equals zero"); else throw new System.Exception( "x does not equal zero"); } catch (System.Exception err) { System.Console.WriteLine( err.message); } finally { System.Console.WriteLine( "executing finally block"); } Objektinė nuoroda į nieką Tipų inicializacija o = Nothing Dim dt as New System.DateTime( _ 2001, 4, 12, 22, 16, 49, 844) o = null; System.DateTime dt = new System.DateTime( 2001, 4, 12, 22, 16, 49, 844); 32
33 5.5. C# ir VB.NET kodo fragmentai Žemiau yra pateikti būdingesni C# ir VB.NET kodo fragmentai, suskirstyti į grupes [9]. Lyginant juos aiškiai matomi skirtumai ir panašumai. Lentelė 5. Svarbiausi VB.NET ir C# kodo fragmentai Imports System VB.NET C# Programos struktūra using System; Namespace Hello Class HelloWorld Overloads Shared Sub Main(ByVal args() As String) Dim name As String = "VB.NET" If args.length = 1 Then name = args(0) namespace Hello { public class HelloWorld { public static void Main(string[] args) { string name = "C#"; if (args.length == 1) name = args[0]; Console.WriteLine("Hello, " & name & "!") End Sub End Class End Namespace viena eilutė REM viena eilutė ''' <summary>xml komentarai</summary> Komentarai Console.WriteLine("Hello, " + name + "!"); } } } // viena eilutė /* kelios eilutės */ /// <summary>xml komentarai vienoje eilutėje</summary> /** <summary>xml kometarai keliose eilutėse</summary> */ Kintamųjų tipai Boolean Byte, SByte Char Short, UShort, Integer, UInteger, Long, ULong Single, Double Decimal Date Duomenų tipai Kintamųjų tipai bool byte, sbyte char short, ushort, int, uint, long, ulong float, double decimal DateTime (not a built-in C# type) 33
34 Nuorodų tipai Object String Inicializacija Dim correct As Boolean = True Dim b As Byte = &H2A 'hex arba &O52 aštuntainiams Dim person As Object = Nothing Dim name As String = "Dwight" Dim grade As Char = "B"c Dim today As Date = #12/31/ :15:00 PM# Dim amount As Decimal = 35.99@ Dim gpa As Single = 2.9! Dim pi As Double = Dim ltotal As Long = L Dim stotal As Short = 123S Dim ustotal As UShort = 123US Dim uitotal As UInteger = 123UI Dim ultotal As ULong = 123UL Nuorodų tipai object string Inicializacija bool correct = true; byte b = 0x2A; // hex object person = null; string name = "Dwight"; char grade = 'B'; DateTime today = DateTime.Parse("12/31/ :15:00"); decimal amount = 35.99m; float gpa = 2.9f; double pi = ; long ltotal = L; short stotal = 123; ushort ustotal = 123; uint uitotal = 123; ulong ultotal = 123; Sub TestFunc(ByVal x As Integer, ByRef y As Integer, ByRef z As Integer) x += 1 y += 1 z = 5 End Sub Dim a = 1, b = 1, c As Integer ' c pagal nutylėjima lygus 0 TestFunc(a, b, c) Console.WriteLine("{0} {1} {2}", a, b, c) ' Funkcija void TestFunc(int x, ref int y, out int z) { x++; y++; z = 5; } int a = 1, b = 1, c; // c nereikalauja inic, TestFunc(a, ref b, out c); Console.WriteLine("{0} {1} {2}", a, b, c); // Function Sum(ByVal ParamArray nums As Integer()) As Integer Sum = 0 For Each i As Integer In nums Sum += i Next End Function int Sum(params int[] nums) { int sum = 0; foreach (int i in nums) sum += i; return sum; } Dim total As Integer = Sum(4, 3, 2, 1) ' returns 10 int total = Sum(4, 3, 2, 1); // grąžina 10 34
35 Lyginimo = < > <= >= <> VB.NET C# Operatoriai Lyginimo == < > <= >=!= Aritemtiniai + - * / Mod \ (sveikojo dalyba) ^ (kėlimas laipsniu) Priskyrimo = += -= *= /= \= ^= <<= >>= &= Binariniai And Or Xor Not << >> Loginiai AndAlso OrElse And Or Xor Not Aritmetiniai + - * / % (mod) / (sveikoji dalyba, jei abu operandai yra int tipo) Math.Pow(x, y) Priskyrimo = += -= *= /= %= &= = ^= <<= >>= Binariniai & ^ ~ << >> Loginiai && & ^! Eulučių sujungimo (konkatenacijos) & Dim nums() As Integer = {1, 2, 3} For i As Integer = 0 To nums.length - 1 Console.WriteLine(nums(i)) Next ' 4 yra paskutinio elemento indeksas Dim names(4) As String names(0) = "David" names(5) = "Bobby" ' išmeta System.IndexOutOfRangeException Eulučių sujungimo (konkatenacijos) + Masyvai int[] nums = {1, 2, 3}; for (int i = 0; i < nums.length; i++) Console.WriteLine(nums[i]); // 5 yra masyvo dydis string[] names = new string[5]; names[0] = "David"; names[5] = "Bobby"; // išmeta System.IndexOutOfRangeException ' Masyvo dydžio pakeitimas, išsaugant esamas reikšmes ReDim Preserve names(6) Dim twod(rows-1, cols-1) As Single twod(2, 0) = 4.5 Dim jagged()() As Integer = { _ New Integer(4) {}, New Integer(1) {}, New Integer(2) {} } jagged(0)(4) = 5 // C# negali dinamiškai pakeisti masyvo dydį. Reikia nukopijuoti jį į naują masyvą. string[] names2 = new string[7]; Array.Copy(names, names2, names.length); // or names.copyto(names2, 0); float[,] twod = new float[rows, cols]; twod[2,0] = 4.5f; int[][] jagged = new int[3][] { new int[5], new int[2], new int[3] }; jagged[0][4] = 5; 35
36 VB.NET C# Ciklai Išankstinė sąlyga: Išankstinė sąlyga: While c < 10 c += 1 End While Do While c < 10 c += 1 Loop Do Until c = 10 c += 1 Loop For c = 2 To 10 Step 2 Console.WriteLine(c) Next // nereikia "until" while (c < 10) c++; for (c = 2; c <= 10; c += 2) Console.WriteLine(c); Post-sąlygą: Do c += 1 Loop While c < 10 Do c += 1 Loop Until c = 10 Post-sąlyga: do c++; while (c < 10); ' Darbas su masyvais arba kolekcijomis Dim names As String() = {"Fred", "Sue", "Barney"} For Each s As String In names Console.WriteLine(s) Next ' Ciklo nutrukimas Dim i As Integer = 0 While (True) If (i = 5) Then Exit While i += 1 End While ' Perėjimas prie kitos iteracijos For i = 0 To 4 If i < 4 Then Continue For Console.WriteLine(i) ' Išveda 4 Next // Darbas su masyvais arba kolekcijomis string[] names = {"Fred", "Sue", "Barney"}; foreach (string s in names) Console.WriteLine(s); // Ciklo nutrukimas int i = 0; while (true) { if (i == 5) break; i++; } // Perėjimas prie kitos iteracijos for (i = 0; i < 5; i++) { if (i < 4) continue; Console.WriteLine(i); // Išveda 4 } Kaip matome, panašumų tikrai yra, bet ir skirtumų nemažai 36
37 6. Programavimo eksperimentai 6.1. Programų kūrimo aplinka Microsoft Visual Studio Visual Studio yra eilė programinių Microsoft kompanijos produktų, kurie susideda iš integruotos programų kūrimo aplinkos ir kitų įrankių. Gali būti naudojama kuriant konsolines programas arba programas su grafiniu vartotojo interfeisu. Žemiau yra pateikti įvairūs sąrašai ir lentelės, susijusios su šia IDE. Į Visual Studio sudėtį įeina viena arba kelios dalys iš šių: Visual Basic.NET, o iki jos pasirodymo Visual Basic; Visual C++; Visual C#; Visual F# (įtrauktas į Visual Studio 2010); Įvairiuose Visual Studio variantuose taip pat būna Microsoft SQL Server arba Microsoft SQL Server Express. Anksčiau į Visual Studio sudėtį taip pat įėjo šie produktai: Visual InterDev; Visual J++; Visual J#; Visual FoxPro; Visual Source Safe (versijų valdymo sistema) Microsoft Visual Studio prieinamas tokiuose paketuose: Visual Studio Express; Visual Studio Standard; Visual Studio Professional; Visual Studio Tools for Office; Visual Studio Team System: o Team Explorer (bazinis TFS klientas) o Architecture Edition o Database Edition o Development Edition o Test Editon 37
38 Skirtingų metų versijos yra šios: Visual Studio 97 pirmoji viešai platinta Visual Studio versija. Joje pirmąkart buvo surinkti įvairūs taikomųjų programų kūrimo įrankiai. Buvo išleista dviem versijomis: Professional ir Enterprise. Visual Studio 97 buvo Microsoft bandymas sukurti vieną kūrimo aplinką skirtingoms programavimo kalboms, praplečiant esamą aplinką, vadinamą Developer Studio, kuri palaikė Visual C++, Visual J++, Visual InterDev ir MSDN. Visual Basic ir Visual FoxPro tuo metu naudojo atskiras programų kūrimo aplinkas. Į Visual Studio 97 sudėtį įėjo: o Visual Basic 5.0 o Visual C o Visual J o Visual FoxPro 5.0 o Visual InterDev (skirta neseniai atsiradusiai ASP). Visual Studio 6.0, išleista 1998 m. birželį. Paskutinė Visual Studio versija, veikianti Win9x šeimos operacinėse sistemose. Iki.NET platformos atsiradimo ši versija buvo pagrindinė Microsoft kompanijos IDE. Vis dar išsaugo tam tikrą populiarumą tarp programuotojų, naudojančių Visual Basic kalbą. Visual Studio.NET (kodinis pavadinimas - Rainiem, vidinė versija 7.0) buvo išleista 2002 m. vasario mėn. Į jos sudėtį įeina.net Framework 1.0. Pataisų rinkinys šiai VS versijai (Service Pack 1) buvo išleistas 2005 m. kovo mėn. Visual Studio.NET 2003 (kodinis pavadinimas Everett, vidinė versija 7.1) pasirodė 2003 m. balandį. Į jos sudėtį įeina.net Framework 1.1. Pataisų rinkinys šiai VS versijai (Service Pack 1) buvo išleistas 2006 m. rugsėjo mėn. Visual Studio 2005 (kodinis pavadinimas Whidbey, vidinė versija 8.0) išleista 2005 m. spalio mėnesį. Į šios versijos sudėtį įeina.net Framework 2.0. Lapkritį pasirodė susijusi Express versija, kurią sudarė Visual C Express, Visual Basic 2005 Express, Visual C# 2005 Express ir kt m. balandį Express versija tapo nemokama. Service Pack 1 tiek VS 2005, teik Express versijai buvo išleistas 2006 m. gruodį. Visual Studio 2008 (kodinis pavadinimas - Orcas) išleista 2007 m. lapkritį, kartu su.net Framework 3.5. Viena pagrindinių savybių programų operacinei sistemai Vista, pagalbinių įrankių Office 2007 kūrimas bei tinklo programų 38
39 rašymas. Į šios versijos sudėtį įeina LINQ (angl. Language Integrated Query, projektas, kurio tikslas papildyti.net platformos programavimo kalbas į SQL panašia sintakse), naujos C# ir Visual Basic kalbų versijos. Visual Studio 2010 (kodinis pavadinimas Hawaii, Team System kodinis pavadinimas - Rosario). Laukiama, kad ši versija pasirodys 2010 m. balandį. Įvairių Microsoft Visual Studio versijų palyginimas pateiktas žemiau esančiose lentelėse (pagal [14, 15, 16, 17]). Lentelė 6. Skirtingų Visual Studio aplinkos versijų palyginimas Produktas Plėtiniai Projektų Klasių Išoriniai Integracija Refaktoringas diegimo kūrėjas įrankiai su MSDN galimybės (designer) Visual MSDN Studio ne minimalūs af 2 express Express ne af Visual Studio taip taip af taip taip taip Standard Visual Studio taip taip taip taip taip taip Professional Visual Studio Team System taip taip taip taip taip taip 1) pakartotinis panaudojamumas 2) af apribotas funkcionalumas; 39
40 Lentelė 6. Skirtingų Visual Studio aplinkos paketų palyginimas (tęsinys) Produktas Visual Studio Express Visual Studio Standard Visual Studio Professional Visual Studio Team System 1) af apribotas funkcionalumas VS Itanium Klaidų 64 bitų Tools procesorių aptikimas palaikymas for palaikymas Office Windows Mobile Development af 1 ne ne ne ne taip taip ne ne ne taip taip ne taip taip taip taip taip taip taip 40
41 Aš pasirinkau Visual Studio 2008 Express Edition versiją, nes ją galima nemokamai atsisiųsti ir joje yra tas, ko man reikia. Pav. 2 parodyta Visual C# 2008 Express Edition vartotojo sąsaja. Pav. 2. Microsoft Visual C# 2008 Express Edition 41
42 6.2. Matematinių ir įvesties/išvesties operacijų spartos palyginimas Be teorinės analizės (pvz., kodo išmokstamumo), būtina ir praktinė analizė. Žemiau pateikta kodų, parašytų Visual Basic.NET ir C# programavimo kalbomis, greitaveikos testų aprašymai ir rezultatai. Testavimo dalys: bitų sveikų skaičių aritmetika. Naudojamas 32-jų bitų sveikas ciklo skaitliukas, 32-jų bitų sveiki operandai, keturios aritmetinės operacijos (sudėtis, atimtis, daugyba, dalyba). Ciklo dydis 1 mlrd. iteracijų. Buvo skaičiuojamas toks reiškinys (neatsižvelgiant į dalybos liekanas): / / ,999, ,999, ,999,999 / 1,000,000, bitų sveikų skaičių aritmetika. Tas pats algoritmas kaip ir pirmoje dalyje, tačiau naudojami 64-ių bitų ciklo skaitliukas ir operandai. Ciklo skaitliukas prasideda ties 10 milijardais ir baigiasi ties 11 milijardais. Tai padaryta tam, kad IDE, kurioje kuriamas kodas, nepakeistų 64-ių bitų reikšmių, mažesnių už 4 mlrd. (tiksliau už 2 32 ), į 32-ių bitų reikšmes bitų slankaus kablelio skaičių aritmetika. Algoritmas toks pat kaip 2-oje dalyje, tačiau naudojami 64-ių bitų skaičiai su slankiuoju kableliu. Savaime suprantama, dabar dalybos liekanos niekur nedingsta bitų slankaus kablelio skaičių trigonometrija, logaritmai ir kvadratinės šaknys. Naudojant 64-ių bitų skaitliuką, skaičiuojami sinusai, kosinusai, tangentai, dešimtainiai logaritmai ir kvadratinės šaknys iš iš reikšmių tarp 1 ir 10 mln. 5. Įvesties/išvesties operacijos. Į tekstinį failą rašomas 1 mln. eilučių, susidedančių iš 80 simbolių, vėliau failas nuskaitomas į operatyvią atmintį. Testavimo duomenys pateikti tiek iliustracijų, tiek lentelės (nr. 7), tiek grafikų pavidalu. Mažesnis rezultatas yra geresnis. 42
43 Testavimo stendo parametrai: mikroprocesorius Intel Pentium 4; operatyvios atminties kiekis 768 MB; kieto disko talpa 80 GB, apsukų skaičius per minutę- 7200; operacinė sistema Windows XP Professional su SP3 pataisų rikiniu. Pav. 3. C# vykdomo kodo greitaveikos testas 43
44 Pav. 4. VB.NET vykdomo kodo greitaveikos testas 44
45 Lentelė 7. VB.NET ir C# vykdomo kodo greitaveika Matematiniai skaičiavimai (s) Programavimo Suma Aritmetika (pagal tipus) Trigonometrija, I/O 1 (s) kalba (s) int long double logaritmai, šaknys VB.NET 14,109 18,984 13,249 2,953 33,811 83,106 C# 7,233 19,217 1,984 2,734 5,124 36,292 1) įvesties/išvesties operacijos, angl. - Input/Output Grafikas 1. VB.NET ir C# vykdomo kodo greitaveikos palyginimas 35 33, laikas, s 15 14,109 18,984 13,249 19, ,953 7,233 1,984 2,734 5,124 0 VB.NET C# int long double trigonom. ir kiti I/O 45
46 Grafikas 2. VB.NET ir C# vykdomo kodo greitaveikos palyginimas , laikas, s ,953 13,249 18,984 5,124 2,734 1,984 19, ,109 7,233 VB.NET C# int long double trigonom. ir kiti i/o Matome ryškų C# kalbos atotrūkį vykdant skaičiavimus su realiais (double tipo) skaičiais. Taip pat C# kodas gerokai lenkia VB.NET kodą atliekant įvesties/išvesties operacijas. 46
47 6.3. Householderio transformacija Aš atlikau papildomą testą, kurio metu lyginau C# ir VB.NET kalbų kodo greitaveiką, Programa sprendė tiesinę lygtį, panaudojant matematinį metodą, vadinamą Householderio transformacija [22-24]. Ši transformacija naudojama įvairiose matematikos ir fizikos srityse, įskaitant ir tiesinių lygčių sprendimą. Aprašysiu tik svarbiausią Householderio transformacijos dalį tridiagonalizaciją. Tridiagonali matrica atrodo taip: formules: Tridiagonalizacijos pirmame žingsnyje reikia apskaičiuoti α ir r pagal tokias ir Paėmus α ir r reikšmes, sukuriamas vectorius v:, kur v 1 = 0;, ir kiekvienam k = 3, 4... n Po to skaičiuojam: 47
48 ir Suradus P 1 ir A (1) procesas kartojamas k = 2, 3... n kartų tokiais žingsniais: ; ; ; ;. Tęsiant šių operacijų vykdymą, gaunama tridiagonali ir simetrinė matrica. Householderio transformacijos pavyzdys: duotoji matrica transformuojama į analogišką tridiagonalią matricą. Duota matrica: Pirmoji Householderio matrica: Q 1 48
49 A 1 = Q 1 AQ 1 Naudojant A 1 formuojame Q 2 = A 2 = Q 2 A 1 Q 2 = gautoji matrica yra tridiagonali simetrinė matrica, analogiška duotajai. Pereikime prie šio testo rezultatų aptarimo. Iš pateikto grafiko matyti, kad C# kalbos kodas tęsia ankstesnę tendenciją jis pirmauja. Tačiau skirtumas tarp C# ir VB.NET šį kartą nėra žymus. Pav. 5. Tiesinės lygties sprendimas VB.NET kalba 49
50 Pav. 6. Tiesinės lygties sprendimas C# kalba Grafikas 3. Vykdomo kodo greitaveikos palyginimas Householderio metodo realizacijoje Kodų greitaveika sprendžiant tiesinę lygtį laikas, ms iteracijų sk., mln VB.NET C# Rezultatai rodo pastebimą C# kalbos persvarą. Beveik visuose testuose C# kodas buvo vykdomas greičiau nei VB.NET kodas. Kai kur (operacijose su realiais skaičiais) C# pranašumas yra milžiniškas. Vienintelė išimtis operacijos su Long tipo skaičiais. Tačiau VB.NET kalbos atotrūkis yra toks mažas, kad galima sakyti, jog skirtumas yra paklaidos ribose. Galbūt tuo metu kažkoks Windows OS sisteminis procesas pareikalavo šiek tiek procesoriaus laiko, dėl to skaičiavimo laikas kiek pailgėjo. 50
JAVA pagrindai Lek. Liudas Drejeris
JAVA pagrindai Lek. Liudas Drejeris Programa (1) Programa, tai eilė instrukcijų (vadinamų programiniais sakiniais), kurie vykdomi paeiliui, kol gaunamas norimas rezultatas. Programa (2) Programa (2) /*
More informationUnit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types
Managing Data Unit 4 Managing Data Introduction Lesson 4.1 Data types We come across many types of information and data in our daily life. For example, we need to handle data such as name, address, money,
More informationEl. pašto konfigūravimas
El. pašto konfigūravimas Outlook Express (integruota Windows XP) elektroninio pašto klientas Žemiau pateikta instrukcija, kaip sukonfigūruoti savo elektroninį paštą vartotojams, turintiems elektroninio
More informationCome to the TypeScript
Come to the TypeScript we have type hinting! Sergej Kurakin Sergej Kurakin Amžius: 36 Dirbu: NFQ Technologies Pareigos: Programuotojas Programuoti pradėjau mokytis 1996 metais. Programuotoju dirbu nuo
More informationC++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita)
C++ programavimo kalba Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita) Konstruktorius Sukuriant objektą, jo duomenims paprastai turi būti priskiriamos pradinės
More informationC programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() )
C programavimo kalba 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() ) Sąlygos operatorius if - else Sąlygos operatoriai skirti perduoti programos vykdymą vienai ar kitai programos šakai. Operatorius
More informationC#: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationC programavimo kalba. 5 paskaita (Funkcijos, masyvai)
C programavimo kalba 5 paskaita (Funkcijos, masyvai) Funkcijų pavyzdys // Skaičių lyginimo programa #include void pmax(int, int); /* prototipas */ int main() {int i, j; for (i = -10; i
More informationios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV
ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV Pagrindas OS X, skirtas ARM įrenginiams Programavimo aplinka: XCode ir Objective-C Programavimo kompiuteris -
More informationKas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5]
Masyvas 2013 1 Vienmatis masyvas Veiksmai su masyvo elementais: reikšmių priskyrimas ir išvedimas, paieška, rikiavimas. Masyvų perdavimas procedūros (funkcijos) parametrais. 2 Kas yra masyvas? Masyvu vadinamas
More informationGijos. Gijų modelis Javoje. R.Vaicekauskas, OP, 2017
Gijos Gijų modelis Javoje R.Vaicekauskas, OP, 2017 1 Turinys Motyvacija Sukūrimas Valdymas Sinchronizacija Susijusios klasės 2 Motyvacija Gijos reikalingos tam, kad išreikšti lygiagretumą vieno proceso
More informationC++ programavimo kalba
C++ programavimo kalba Šablonai (10 paskaita) Kodėl šablonai (templates)? Programuojant egzistuoja situacijos, kai reikia atlikti tuos pačius veiksmus su skirtingais duomenų tipais (pvz. modulio radimas,
More information2. A GUI A. uses buttons, menus, and icons B. should be easy for a user to manipulate C. both (a) and (b) D. stands for Graphic Use Interaction
1. Which language is not a true object-oriented programming language? A. VB 6 B. VB.NET C. JAVA D. C++ 2. A GUI A. uses buttons, menus, and icons B. should be easy for a user to manipulate C. both (a)
More informationIntroduce C# as Object Oriented programming language. Explain, tokens,
Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation
More informationC#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations
, 1 C#.Net VT 2009 Course Contents C# 6 hp approx. BizTalk 1,5 hp approx. No exam, but laborations Course contents Architecture Visual Studio Syntax Classes Forms Class Libraries Inheritance Other C# essentials
More informationParengė ITMM Artūras Šakalys 1
2014.02.02 Parengė ITMM Artūras Šakalys 1 2014.02.02 Parengė ITMM Artūras Šakalys 2 Kaip suprantame masyvą? Pavyzdys: Peteliškių šeima; Gėlių laukas; 2014.02.02 Parengė ITMM Artūras Šakalys 3 Kaip suprasti
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Table of Contents VB.NET
About the Tutorial VB.Net is a simple, modern, object-oriented computer programming language developed by Microsoft to combine the power of.net Framework and the common language runtime with the productivity
More informationPHP PROGRAMOS EIGOS VYKDYMO VALDYMAS
PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS Sąlygos sakiniai PHP skriptų vykdymo eigą galite valdyti naudodami sąlygos sakinius. Sąlygos sakiniai tai loginės struktūros, kuriose saugomas kodas, įvykdomas įgyvendinus
More informationPolimorfizmas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.
Polimorfizmas Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2009-2010 m. m. pavasario semestras Dar apie paveldėjimą Java kalboje kiekvienas paveldėtos klasės objektas gali būti naudojamas ten, kur
More informationStruktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; //
C programavimo kalba 10 paskaita (Struktūros) Struktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; // Gale
More informationApletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.
Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Java grafinės bibliotekos AWT (Abstract Window Toolkit) Swing 2009.04.09 P.Kasparaitis. Objektinis
More informationC++ programavimo kalba
C++ programavimo kalba Operatorių perkrovimas (7 paskaita) Operatorių perdengimas Programavimo kalbose naudojami operatoriai pasižymi polimorfizmu (daugiavariantiškumu). Kaip pavyzdys gali būti operatorius
More information.Net Technologies. Components of.net Framework
.Net Technologies Components of.net Framework There are many articles are available in the web on this topic; I just want to add one more article over the web by explaining Components of.net Framework.
More informationAmadeus On-Line Helpdesk
Amadeus On-Line Helpdesk Vartotojo instrukcija Skirta kelionių agentūroms Turinys Įžanga... 3 Jungimasis prie Amadeus Helpdesk... 3 Patarimai ir pastabos... 7 Dokumento valdymas 2007 Apsauga Viešas Įmon
More informationIntroduction to C# Applications
1 2 3 Introduction to C# Applications OBJECTIVES To write simple C# applications To write statements that input and output data to the screen. To declare and use data of various types. To write decision-making
More informationThis tutorial has been prepared for the beginners to help them understand basics of c# Programming.
About thetutorial C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft within its.net initiative led by Anders Hejlsberg. This tutorial covers basic C# programming
More informationPaskirstytos atminties lygiagretusis programavimas Įvadas į MPI
Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI Distributed memory parallel programming Paskirstytos atminties lygiagretieji kompiuteriai Kiekvienas procesorius turi tik savo nuosavą atmintį
More informationHierarchical inheritance: Contains one base class and multiple derived classes of the same base class.
1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity
More informationInformacijos apsaugos standartai serija
Informacijos apsaugos standartai 27000 serija Pareng : Marius Celskis www.isec.lt 2007 m. balandis 12 d. ISO 27000 serija 2 iš 9 Tarptautin standartizacijos organizacija ISO informacijos apsaugos standartizavimui
More informationWWW aplikacijų saugumas 2
WWW aplikacijų saugumas 2 Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009
More informationVB.NET MOCK TEST VB.NET MOCK TEST I
http://www.tutorialspoint.com VB.NET MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to VB.Net. You can download these sample mock tests at your local
More informationBuferio perpildymo klaida Įvadas, techniniai klausimai
Buferio perpildymo klaida Įvadas, techniniai klausimai Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2009-10-16 R. Griškevičius, Saugus
More informationTrumpai-ilga istorija
Įvadas į Web Services Kas yra Web Service? Kas ką žino??? 70-ieji: Mainframe Trumpai-ilga istorija 80-ieji: Client-Server Istorijos 90-ieji: Web 2000: SOA 2010: Cloud Computing Šaltinis: Sergejus Barinovas,
More informationElektroninis.lt šakninių sertifikatų diegimas
Elektroninis.lt šakninių sertifikatų diegimas Ši instrukcija aprašo, kaip į kompiuterį įdiegti šakninius elektroninis.lt sertifikatus. Diegimo darbus galima atlikti turint kompiuterio administratoriaus
More informationNaujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams
Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams IBM Programinės įrangos diena 2009 m. spalio 21 d. Andrejus Chaliapinas, IĮ Infosana vadovas http://www.infosana.com Prezentacijos
More informationC++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017
C++\CLI Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017 Comparison of Object Models Standard C++ Object Model All objects share a rich memory model: Static, stack, and heap Rich object life-time
More informationRedis Ma as, greitas, galingas. Specialiai VilniusPHP
Redis Ma as, greitas, galingas Specialiai VilniusPHP 2013.06.06 Sergej Kurakin Na, Jūs mane jau nekarta matėte, tai nieko nesakysiu apie save. Kaip aš susipa inau! Tai buvo prieš keletą metų! Projektas
More informationC++ programavimo kalba
C++ programavimo kalba Rodyklė this, C++ string klasė (9 paskaita) Rodyklėthis Visos objekto funkcijos gali naudotis rodykle this, kuri rodo į patį objektą. Tokiu būdu kiekviena funkcija gali rasti objekto,
More informationPaveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.
Paveikslėliai Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Klasė Image Priklauso paketui java.awt Abstrakti klasė paveldėta iš Object Tai visų grafinių paveikslėlių
More informationDUOMENŲ STRUKTŪROS IR ALGORITMAI. Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo)
DUOMENŲ STRUKTŪROS IR ALGORITMAI Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo) Rūšiavimo veiksmas Kasdieniniame gyvenime mes dažnai rūšiuojame: Failus kataloguose Katalogus lokaliame diske Kasdienines
More informationVilniaus Gedimino technikos universitetas,
INFORMATIKA 11-osios Lietuvos jaunųjų mokslininkų konferencijos Mokslas Lietuvos ateitis, įvykusios Vilniuje 2008 m. balandžio 9 11 d., straipsnių rinkinys VERSLO VALDYMO SISTEMOS MICROSOFT DYNAMICS AX
More informationDarshan Institute of Engineering & Technology for Diploma Studies
Overview of Microsoft.Net Framework: The Dot Net or.net is a technology that is an outcome of Microsoft s new strategy to develop window based robust applications and rich web applications and to keep
More informationHTML dokumentai. Praktinės užduotys
HTML dokumentai Praktinės užduotys 1. DzSoft PHP Editor šablonai Pakeiskite HTML šabloną į: ... Programos
More informationTautvydas Dagys Microsoft Lietuva
Tautvydas Dagys Microsoft Lietuva Programos akademinėms institucijoms ir studentams Studentų partnerių programa Akademinės institucijoms Studentams MSDN AA Tai efektyvus būdas aprūpinti savo laboratorijas/klases
More informationKodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy
C programavimo kalba 12 paskaita (Daugiafailinės programos, laiko ir datos funkcijos) Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos
More informationPasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas
Pasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas Pasirenkamojo modulio kūrybinis darbas atliekamas keliais etapais: kūrybinio darbo temos (problemos / užduoties) pasirinkimas ir derinimas
More informationINFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO SISTEMA
ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Denas Pavlavičius Informatikos specialybės II kurso dieninio skyriaus studentas INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO
More informationInterneto technologijų taikymai
Interneto technologijų taikymai Mantas Puida (mantasp@gmail.com) VI paskaita Entity pirminis raktas Kiekviena Entity klasė privalo turėti pirminį raktą (Primary Key). Jei turima Entity objektų hierarchija,
More informationA.Kynienė. С, C++ kalbų ABC. Metodinė priemonė
A.Kynienė С, C++ kalbų ABC Metodinė priemonė Vilnius 2004 TURINYS C KALBOS PRIVALUMAI...4 PROGRAMAVIMO PROCESAS...5 OPERACIJOS...6 PAPRASTOS PROGRAMOS STRUKTŪRA...8 DUOMENŲ IR KINTAMŲJŲ TIPAI...9 SIMBOLINĖS
More informationModern Programming Tools and Techniques-III DCAP301
Modern Programming Tools and Techniques-III DCAP301 MODERN PROGRAMMING TOOLS & TECHNIQUES-III Copyright 2013, MVSSN Prasad All rights reserved Produced & Printed by EXCEL BOOKS PRIVATE LIMITED A-45, Naraina,
More informationPrinciples of Computer Architecture Processors Lecture 1
Principles of Computer Architecture Processors Lecture 1 prof.dr. Dalius Mažeika Dalius.Mazeika@vgtu.lt http://dma.vgtu.lt Room No. L424 Lectures and evaluation Scope of the course is 3 ECTS (80 hours)
More information2-3 PASKAITOS. Paprasčiausia programa:
2-3 PASKAITOS Turinys: Paprasčiausios programos pavyzdys. Darbas su programavimo terpėmis. Duomenys. Duomenų tipai ir charakteristikos. Paprasčiausia įvestis/išvestis. Paprasčiausia programa: /* Pirmoji
More informationA Comparison of Visual Basic.NET and C#
Appendix B A Comparison of Visual Basic.NET and C# A NUMBER OF LANGUAGES work with the.net Framework. Microsoft is releasing the following four languages with its Visual Studio.NET product: C#, Visual
More informationProjektas. .h failai Header failai (interface) .m failai Pačios programos failai ( .xib /.storyboard Vartotojo sąsajos failai
ios Projektas.h failai Header failai (interface).m failai Pačios programos failai (.xib /.storyboard Vartotojo sąsajos failai AppDelegate.h / AppDelegate.m aplikacijos pradiniai startavimo prpograminiai
More informationPROJEKTAS PROFESIJOS MOKYTOJŲ IR DĖSTYTOJŲ TECHNOLOGINIŲ KOMPETENCIJŲ TOBULINIMO SISTEMOS SUKŪRIMAS IR ĮDIEGIMAS (NR.: VP1-2.2-ŠMM-02-V ) 1
SISTEMOS SUKŪRIMAS IR ĮDIEGIMAS (NR.: VP1-2.2-ŠMM-02-V-02-001) 1 UGDYMO PLĖTOTĖS CENTRAS PROJEKTAS PROFESIJOS MOKYTOJŲ IR DĖSTYTOJŲ TECHNOLOGINIŲ KOMPETENCIJŲ TOBULINIMO SISTEMOS SUKŪRIMAS IR ĮDIEGIMAS
More informationMasyvai Javoje. Masyvai. Objektų talpyklos. Masyvo tipas. Deklaravimo pavyzdžiai. Deklaracija ir sukūrimas. Masyvo superklas - Object
Masyvai Javoje Masyvai. Objektų talpyklos (Arrays, collections) Dinamiškai sukuriami java objektai iš anksto apibr žtam komponenčių skaičiui saugoti. Komponent s g.b. primityvaus tipo arba nuorodos tipo
More informationFig 1.1.NET Framework Architecture Block Diagram
Overview of Microsoft.NET Framework The.NET Framework is a technology that supports building and running the next generation of applications and XML Web services. Using.Net technology it is easy to use
More informationObjektinis programavimas II (JAVA) Rimantas Vaicekauskas, 2013 m.
Objektinis programavimas II (JAVA) Rimantas Vaicekauskas, 2013 m. Objektinis programavimas JAVA Svetainė: http://mif.vu.lt/~rvck/op2/ POBP2214, Programų sistemos, 3 sem., 3 kr., 32+32 val., egzaminas Egzamino
More informationC++ programavimo kalba
C++ programavimo kalba Klasės, klasių savybės, vardų erdvės (3 paskaita) OOP Struktūrinio programavimo modelio problema: Didelės programos tampa labai sudėtingos t.y. egzistuoja tūkstančiai kintamųjų ir
More informationEksperimentiniai sprendimai
Komandos Eksperimentiniai sprendimai Prisistatymas Vilniaus Universitetas, MIF 2005 1. Bendras komandos prisistatymas Komanda Eksperimentiniai sprendimai tai Vilniaus Universiteto, Matematikos ir Informatikos
More informationDAD Lab. 1 Introduc7on to C#
DAD 2017-18 Lab. 1 Introduc7on to C# Summary 1..NET Framework Architecture 2. C# Language Syntax C# vs. Java vs C++ 3. IDE: MS Visual Studio Tools Console and WinForm Applica7ons 1..NET Framework Introduc7on
More informationObjectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments
Basics Objectives Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments 2 Class Keyword class used to define new type specify
More informationTable of Contents Preface Bare Necessities... 17
Table of Contents Preface... 13 What this book is about?... 13 Who is this book for?... 14 What to read next?... 14 Personages... 14 Style conventions... 15 More information... 15 Bare Necessities... 17
More informationKAUNO TECHNOLOGIJOS UNIVERSITETAS
KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS VALDIKLIŲ PROGRAMAVIMAS STANDARTO IEC 61131-3 KALBOMIS Referatas Atliko: Kęstutis Valinčius Kaunas 2011 Turinys 1 Įvadas... 3 2 Struktūriniai elementai...
More informationDUOMENŲ BAZIŲ VALDYMO SISTEMŲ ANALIZĖ
DUOMENŲ BAZIŲ VALDYMO SISTEMŲ ANALIZĖ Renata Baronienė, Egidijus Paliulis Šiaulių universitetas, Technologijos fakultetas Įvadas Kasmet didėja kaupiamų, saugojamų ir apdorojamų duomenų kiekiai ir apimtys.
More informationWVGA :9 None. This is the only supported resolution for Windows Phone OS 7.1.
Windows Phone Palaikomi ekranai Resolution Resolution Aspect ratio Delta from Windows Phone OS 7.1 Scaled resolution WVGA 480 800 15:9 None. This is the only supported resolution for Windows Phone OS 7.1.
More informationGetting started 7. Storing values 21. Creating variables 22 Reading input 24 Employing arrays 26 Casting data types 28 Fixing constants 30 Summary 32
Contents 1 2 3 Contents Getting started 7 Introducing C# 8 Installing Visual Studio 10 Exploring the IDE 12 Starting a Console project 14 Writing your first program 16 Following the rules 18 Summary 20
More informationC# IR JAVA PROGRAMAVIMO KALBŲ LYGINAMOJI ANALIZĖ
LIETUVOS EDUKOLOGIJOS UNIVERSITETAS GAMTOS, MATEMATIKOS IR TECHNOLOGIJŲ FAKULTETAS INFORMATIKOS KATEDRA Arvydas Putna C# IR JAVA PROGRAMAVIMO KALBŲ LYGINAMOJI ANALIZĖ Magistro baigiamasis darbas Darbo
More informationVilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas)
Vilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas) Vilnius 2010 - 2 - Turinys PROGRAMAVIMO SAMPRATA... - 4 - KINTAMIEJI
More informationProgramavimas C kalba
Programavimas C kalba Mokomoji priemonė Elektronikos specialybės studentams Vytautas Vyšniauskas 2008.01.28 09:26 Šiaulių Universitetas, 2007 Turinys Įvadas... 4 1 Simbolių kodavimas ir ASCII kodų lentelė...
More informationWeb servisai WSDL. Osvaldas Grigas
Web servisai WSDL Osvaldas Grigas Web servisų aprašymas Kiekvienas web servisas yra unikalus Jis turi adresą(arba kelis adresus), kuriuo į jį galima kreiptis. Jis supranta tik tam tikros struktūros įeinančius
More informationĮVADAS JVM Java Virtual Machine Java virtualios mašinos (JVM) JVM write once, run everywhere
ĮVADAS The Java programming language was introduced in 1995 by Sun Microsystems which has since merged into Oracle Corporation. Derived from languages such as C and C++. Pradžioje Java buvo skirta programuoti
More informationVILNIAUS PEDAGOGINIS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA EDITA MUDURYTĖ
VILNIAUS PEDAGOGINIS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA EDITA MUDURYTĖ MICROSOFT OPERACINIŲ SISTEMŲ SĄSAJŲ LYGINAMOJI ANALIZĖ Magistro baigiamasis darbas Darbo vadovai
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationPrograminio kodo saugumas
Programinio kodo saugumas Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2009-12-18 R. Griškevičius, Saugus programavimas, VGTU, 2009
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationVB.NET MOCK TEST VB.NET MOCK TEST III
http://www.tutorialspoint.com VB.NET MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to VB.Net. You can download these sample mock tests at your local
More informationLanguage Specification
# Language Specification File: C# Language Specification.doc Last saved: 5/7/2001 Version 0.28 Copyright? Microsoft Corporation 1999-2000. All Rights Reserved. Please send corrections, comments, and other
More informationPaprastų lentelių kūrimas
HTML lentelės Lentelės Informacijos pateikimas HTML-dokumentuose lentelių pagalba yra vienas iš dažniausiai naudojamų. HTML kalboje lentelės yra naudojamos ne tik tradiciškai, kaip duomenų pateikimo metodas,
More information6-7-8 PASKAITOS. Bendros žinios
6-7-8 PASKAITOS Turinys: Paveldimumas Bendros žinios. Išvestinės klasės konstruktoriai. Paveldimumas ir metodų perkrovimas. Įvadas į abstrakčias klases. Bendrasis ir dalinis paveldimumas. Daugybinis paveldimumas.
More informationIntroduction to.net, C#, and Visual Studio. Part I. Administrivia. Administrivia. Course Structure. Final Project. Part II. What is.net?
Introduction to.net, C#, and Visual Studio C# Programming Part I Administrivia January 8 Administrivia Course Structure When: Wednesdays 10 11am (and a few Mondays as needed) Where: Moore 100B This lab
More informationŽILVINAS VAIRA. Programinės įrangos kūrimo technologijos. Mokomoji priemonė
ŽILVINAS VAIRA Programinės įrangos kūrimo technologijos Mokomoji priemonė Projektas Socialinių mokslų kolegijos vykdomų studijų programų internacionalizacija kuriant atvirą aukštąją mokyklą užsienio šalių
More informationJAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS
KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS VYTENIS SODAITIS JAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS Baigiamasis magistro projektas Vadovas doc. dr. R. Butkienė
More information14. GNU operacinės sistemos komponentas Linux
14. GNU operacinės sistemos komponentas Linux 99 14. GNU operacinės sistemos komponentas Linux Čia trumpai pristatysime GNU/Linux istoriją, kodėl kai kas rašo GNU/Linux, kas yra Linux distributyas. Unix,
More informationWeb technologijos. Hostingas JavaScript PHP
jquery & PHP Web technologijos Hostingas JavaScript PHP Kelios hostingo kompanijos serveriai.lt hostex.lt hostinger.lt Nemokamas hostingas su PHP/mysql http://mindaugas.zz.mu/jm1.html Hostingo paslaugų
More informationELEKTRONINIŲ PROJEKTŲ RENGIMO IR VALDYMO SISTEMA
ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Asta Drukteinien ELEKTRONINIŲ PROJEKTŲ RENGIMO IR VALDYMO SISTEMA MAGISTRO DARBAS Darbo vadov : Doc. S. Turskien Recenzentas:
More informationStep-by step guide for MRU students to uploading Master s Thesis to elaba repository
Step-by step guide for MRU students to uploading Master s Thesis to elaba repository www.elaba.lt Log in the repository Go to www.elaba.lt Select Submit to repository Select your institutional affiliation
More informationC# Programming in the.net Framework
50150B - Version: 2.1 04 May 2018 C# Programming in the.net Framework C# Programming in the.net Framework 50150B - Version: 2.1 6 days Course Description: This six-day instructor-led course provides students
More informationT u r b o P a s k a l i s 7.0
Vilniaus universitetas Matematikos ir informatikos fakultetas Programų sistemų katedra I N F O R M A T I K A T u r b o P a s k a l i s 7.0 Doc. V. Undzėno paskaitų konspektai (skaitoma Fizikos fakulteto
More informationPHP Lietuviškai. Turinys
PHP Lietuviškai Informacija iš interneto pakampių surinko, visa savaitgalį prie Easy PDF sėdėjo ir kankinosi Justinas L. aka scooox. Taigi, kad visi girdėtų, sakau: šitas dokumentas yra surinktas iš visų
More informationMD3 Integrated Model-Driven Data Design for Objects, XML, and Relational Databases
ISSN 392-056. INFORMACIJOS MOKSLAI. 2009 50 MD3 Integrated Model-Driven Data Design for Objects, XML, and Relational Databases Darius Šilingas UAB Baltijos programinė įranga mokymų skyriaus vadovas No
More informationTHE COMPARISON OF STANDARD PASCAL AND TURBO PASCAL 7.0
INFORMATICA, 1995, Vol. 6, No.2, 233-243 THE COMPARISON OF STANDARD PASCAL AND TURBO PASCAL 7.0 Vladas TIJMASONIS Department of Computer Science, Vilnius University 2006 Vilnius, Naugarduko St. 24, Lithuania
More informationUNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net
UNIT 1 Introduction to Microsoft.NET framework and Basics of VB.Net 1 SYLLABUS 1.1 Overview of Microsoft.NET Framework 1.2 The.NET Framework components 1.3 The Common Language Runtime (CLR) Environment
More informationC # Language Specification
C # Language Specification Copyright Microsoft Corporation 1999-2001. All Rights Reserved. Please send corrections, comments, and other feedback to sharp@microsoft.com Notice 1999-2001 Microsoft Corporation.
More informationII. Programming Technologies
II. Programming Technologies II.1 The machine code program Code of algorithm steps + memory addresses: MOV AX,1234h ;0B8h 34h 12h - number (1234h) to AX register MUL WORD PTR [5678h] ;0F7h 26h 78h 56h
More informationPažintis su C++ Builder
Pažintis su C++ Builder Turinys C++ Builder aplinka... 2 Komponentai, jų savybės ir metodai, įvykiai... 2 Programos objektų savybių keitimas... 4 Vartotojo programos kūrimas, saugojimas ir vykdymas...
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 26: Component model: The.NET example Agenda for today 3 What is.net?
More informationLOGINĖS DB SCHEMOS ATSTATYMAS NAUDOJANT JDBC
LOGINĖS DB SCHEMOS ATSTATYMAS NAUDOJANT JDBC Bronius Paradauskas, Aurimas Laurikaitis, Sigitas Paulavičius, Anna Truncaitė Kauno technologijos universitetas, Informacijos sistemų katedra, Studentų g. 50,
More informationDuhok Polytechnic University Amedi Technical Institute/ IT Dept. Halkawt Rajab Hussain
Duhok Polytechnic University Amedi Technical Institute/ IT Dept. By Halkawt Rajab Hussain 2016-04-02 Overview. C# program structure. Variables and Constant. Conditional statement (if, if/else, nested if
More informationK R I S T I N A L A P I N. I dalis. Matematikos ir statistikos studijų krypčių pirmo kurso studentams
V I L N I A U S U N I V E R S I T E T AS M A T E M A T I K O S I R I N F O R M A T I K O S F A K U L T E T A S P R O G R A M Ų S I S T E M Ų K A T E D R A K R I S T I N A L A P I N Programavimas C I dalis
More information