C# ir VB.NET palyginimas taikomųjų programų kūrimo požiūriu

Size: px
Start display at page:

Download "C# ir VB.NET palyginimas taikomųjų programų kūrimo požiūriu"

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 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 information

Unit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types

Unit 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 information

El. pašto konfigūravimas

El. 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 information

Come to the TypeScript

Come 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 information

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita)

C++ 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 information

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() )

C 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 information

C#: framework overview and in-the-small features

C#: 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 information

C programavimo kalba. 5 paskaita (Funkcijos, masyvai)

C 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 information

ios 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 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 information

Kas 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]

Kas 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 information

Gijos. Gijų modelis Javoje. R.Vaicekauskas, OP, 2017

Gijos. 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 information

C++ programavimo kalba

C++ 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 information

2. 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

2. 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 information

Introduce C# as Object Oriented programming language. Explain, tokens,

Introduce 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 information

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations

C#.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 information

Parengė ITMM Artūras Šakalys 1

Parengė 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 information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Table of Contents VB.NET

About 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 information

PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS

PHP 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 information

Polimorfizmas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Polimorfizmas. 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 information

Struktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; //

Struktū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 information

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Apletai (į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 information

C++ programavimo kalba

C++ 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 .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 information

Amadeus On-Line Helpdesk

Amadeus 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 information

Introduction to C# Applications

Introduction 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 information

This tutorial has been prepared for the beginners to help them understand basics of c# Programming.

This 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 information

Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI

Paskirstytos 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 information

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class.

Hierarchical 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 information

Informacijos apsaugos standartai serija

Informacijos 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 information

WWW aplikacijų saugumas 2

WWW 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 information

VB.NET MOCK TEST VB.NET MOCK TEST I

VB.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 information

Buferio perpildymo klaida Įvadas, techniniai klausimai

Buferio 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 information

Trumpai-ilga istorija

Trumpai-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 information

Elektroninis.lt šakninių sertifikatų diegimas

Elektroninis.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 information

Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams

Naujos 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 information

C++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017

C++\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 information

Redis Ma as, greitas, galingas. Specialiai VilniusPHP

Redis 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 information

C++ programavimo kalba

C++ 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 information

Paveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Paveikslė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 information

DUOMENŲ STRUKTŪROS IR ALGORITMAI. Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo)

DUOMENŲ 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 information

Vilniaus Gedimino technikos universitetas,

Vilniaus 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 information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan 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 information

HTML dokumentai. Praktinės užduotys

HTML dokumentai. Praktinės užduotys HTML dokumentai Praktinės užduotys 1. DzSoft PHP Editor šablonai Pakeiskite HTML šabloną į: ... Programos

More information

Tautvydas Dagys Microsoft Lietuva

Tautvydas 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 information

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy

Kodė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 information

Pasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas

Pasirenkamojo 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 information

INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO SISTEMA

INFORMACINĖ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 information

Interneto technologijų taikymai

Interneto 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 information

A.Kynienė. С, C++ kalbų ABC. Metodinė priemonė

A.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 information

Modern Programming Tools and Techniques-III DCAP301

Modern 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 information

Principles of Computer Architecture Processors Lecture 1

Principles 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 information

2-3 PASKAITOS. Paprasčiausia programa:

2-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 information

A Comparison of Visual Basic.NET and C#

A 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 information

Projektas. .h failai Header failai (interface) .m failai Pačios programos failai ( .xib /.storyboard Vartotojo sąsajos failai

Projektas. .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 information

PROJEKTAS PROFESIJOS MOKYTOJŲ IR DĖSTYTOJŲ TECHNOLOGINIŲ KOMPETENCIJŲ TOBULINIMO SISTEMOS SUKŪRIMAS IR ĮDIEGIMAS (NR.: VP1-2.2-ŠMM-02-V ) 1

PROJEKTAS 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 information

Masyvai Javoje. Masyvai. Objektų talpyklos. Masyvo tipas. Deklaravimo pavyzdžiai. Deklaracija ir sukūrimas. Masyvo superklas - Object

Masyvai 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 information

Fig 1.1.NET Framework Architecture Block Diagram

Fig 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 information

Objektinis programavimas II (JAVA) Rimantas Vaicekauskas, 2013 m.

Objektinis 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 information

C++ programavimo kalba

C++ 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 information

Eksperimentiniai sprendimai

Eksperimentiniai sprendimai Komandos Eksperimentiniai sprendimai Prisistatymas Vilniaus Universitetas, MIF 2005 1. Bendras komandos prisistatymas Komanda Eksperimentiniai sprendimai tai Vilniaus Universiteto, Matematikos ir Informatikos

More information

DAD Lab. 1 Introduc7on to C#

DAD 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 information

Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments

Objectives. 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 information

Table of Contents Preface Bare Necessities... 17

Table 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 information

KAUNO TECHNOLOGIJOS UNIVERSITETAS

KAUNO 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 information

DUOMENŲ BAZIŲ VALDYMO SISTEMŲ ANALIZĖ

DUOMENŲ 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 information

WVGA :9 None. This is the only supported resolution for Windows Phone OS 7.1.

WVGA :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 information

Getting started 7. Storing values 21. Creating variables 22 Reading input 24 Employing arrays 26 Casting data types 28 Fixing constants 30 Summary 32

Getting 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 information

C# IR JAVA PROGRAMAVIMO KALBŲ LYGINAMOJI ANALIZĖ

C# 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 information

Vilniaus 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) Vilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas) Vilnius 2010 - 2 - Turinys PROGRAMAVIMO SAMPRATA... - 4 - KINTAMIEJI

More information

Programavimas C kalba

Programavimas 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 information

Web servisai WSDL. Osvaldas Grigas

Web 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 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 information

VILNIAUS PEDAGOGINIS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA EDITA MUDURYTĖ

VILNIAUS 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 information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP 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 information

Programinio kodo saugumas

Programinio 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 information

Chapter 1 Getting Started

Chapter 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 information

VB.NET MOCK TEST VB.NET MOCK TEST III

VB.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 information

Language Specification

Language 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 information

Paprastų lentelių kūrimas

Paprastų 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 information

6-7-8 PASKAITOS. Bendros žinios

6-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 information

Introduction 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. 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ė Ž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 information

JAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS

JAVA 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 information

14. GNU operacinės sistemos komponentas Linux

14. 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 information

Web technologijos. Hostingas JavaScript PHP

Web 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 information

ELEKTRONINIŲ PROJEKTŲ RENGIMO IR VALDYMO SISTEMA

ELEKTRONINIŲ 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 information

Step-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 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 information

C# Programming in the.net Framework

C# 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 information

T u r b o P a s k a l i s 7.0

T 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 information

PHP Lietuviškai. Turinys

PHP 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 information

MD3 Integrated Model-Driven Data Design for Objects, XML, and Relational Databases

MD3 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 information

THE COMPARISON OF STANDARD PASCAL AND TURBO PASCAL 7.0

THE 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 information

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net

UNIT 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 information

C # Language Specification

C # 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 information

II. Programming Technologies

II. 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 information

Pažintis su C++ Builder

Paž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 information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted 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 information

LOGINĖS DB SCHEMOS ATSTATYMAS NAUDOJANT JDBC

LOGINĖ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 information

Duhok Polytechnic University Amedi Technical Institute/ IT Dept. Halkawt Rajab Hussain

Duhok 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 information

K R I S T I N A L A P I N. I dalis. Matematikos ir statistikos studijų krypčių pirmo kurso studentams

K 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