Keywords

Huawei-მ P20 და P20 Pro წარადგინა

Huawei-მ P20 და P20 Pro წარადგინა

ჩინური მობილური ტელეფონების მწარმოებელმა Huawei-მ პარიზში, Grand Palais-ში გამართულ ღონისძიებაზე სმარტფონები P20 და P20 Pro წარადგინა. ამის შესახებ the Verge-ი წერს.  გაჯეტს გერმანული მწარმოებლის Leica-ს სამმაგი კამერა აქვს.  P20-ს და P20 Pro-ს შორის ერთ-ერთი აღსანიშნავი განსხვავება ის არის, რომ მათი ეკრანების ზომა განსხვავებულია.  P20-ს 5.8 ინჩიანი ეკრანი, ხოლო P20 Pro-ს 6.1 ინჩიანი OLED-matrix მონიტორი აქვს.  Huawei P20-ის კამერის რეზოლუცია 40 მეგაპიქსელია, თუმცა ღონისძიებაზე ძირითადი აქცენტი მაინც P20 Pro-ზე გაკეთდა, რადგან არის დეტალები, რომლითაც  P20 Pro P20-ზე რიგი ფუნქციებით უფრო გამორჩეულია.  რაც შეეხება ტელეფონების აკუმულატორებს, ის 3 400-დან 4 000 ამპერამდე მერყეობს. ეს კარგი მაჩვენებელია მაშინ
მონაცემების მიბმა LINQ to SQL-თან

მონაცემების მიბმა LINQ to SQL-თან

ცხრილებს შორის კავშირების დამყარება შესაძლებელია, აგრეთვე ფორმების ვიზუალური კონსტრუქტორების საშუალებით. ამისათვის, ვქმნით ShekvetaDataContext კლასს, მასში ვათავსებთ Personali, Shemkveti და Xelshekruleba ცხრილებს და ვქმნით მათ შორის ბმებს. ამის შემდეგ, ვირჩევთ მონაცემთა ახალ წყაროს, რისთვისაც ვასრულებთ Project მენიუს Add New Data Source ბრძანებას. გახსნილ ფანჯარაში  მოვნიშნავთ Object ელემენტს და ვაჭერთ Next კლავიშს. გახსნილ ფანჯარაში (ნახ. 18.9) ვირჩევთ Personali, ShekvetaDataContext, Shemkveti და Xelshekruleba ელემენტებს და ვაჭერთ Finish კლავიშს. ახლა ეკრანის მარცხენა ნაწილში გამოვაჩინოთ Data Sources ფანჯარა. გადავიდეთ ფორმაზე (Form1.cs [Design]), Data Sources ფანჯარაში გავხსნათ Personali სია და ავირჩიოთ Details ელემენტი როგორც ნაგულისხმევი მართვის ელემენტის ტიპი ამ ცხრილის შექმნისთვის.
რთულ ობიექტებთან მუშაობა

რთულ ობიექტებთან მუშაობა

ამ განყოფილებაში ვნახავთ თუ როგორ შეიძლება LINQ მოთხოვნის გამოყენება რთული ობიექტების მიმართ. მაგალითისთვის შევქმნათ სტუდენტის კლასი. // // პროგრამით ხდება LINQ მოთხოვნის გამოყენებით დემონსტრირება // რთული ობიექტების მიმართ class Studenti1 { public string gvari; public int asaki; public double tanxa; public int kursi; public string fakulteti; public Studenti1(string par1, int par2, double par3, int par4, string par5) { gvari = par1; asaki = par2; tanxa = par3; kursi = par4; fakulteti = par5; } } private void button1_Click(object sender, EventArgs e) { Studenti1[] obj = new Studenti1[10]; obj[0] = new Studenti1("სამხარაძე", 21, 1200.50, 4, "ინფორმატიკის"); obj[1] = new Studenti1("კაპანაძე", 20, 1250.50, 4, "ენერგეტიკის"); obj[2] = new Studenti1("კირვალიძე", 18, 1300.50,
აგრეგირების ოპერატორები 

აგრეგირების ოპერატორები 

LINQ მოთხოვნას აქვს აგრეგირების ოპერატორები, რომლებიც იძლევიან შედეგის ანალიზის საშუალებას. ხშირად გამოყენებადი ოპერატორებია: Average() – გასცემს შედეგში მოთავსებული რიცხვების საშუალო არითმეტიკულს; Count() – გასცემს მონაცემების რაოდენობას შედეგში; Max() – გასცემს შედეგში მოთავსებული მონაცემების მაქსიმალურ მნიშვნელობას;  Min() – გასცემს შედეგში მოთავსებული მონაცემების მინიმალურ მნიშვნელობას; Sum() - გასცემს შედეგში მოთავსებული რიცხვების ჯამს. ამ ოპერატორების მუშაობის დემონსტრირება ხდება მოყვანილი პროგრამით. // //          პროგრამით ხდება Average(), Count(), Max(), Min(), Sum() //          ოპერატორების მუშაობის დემონსტრირება Random Shemtxveviti_Ricxvebi = new Random(); int[] masivi = new int[12345678]; for ( int i = 0; i < masivi.Length; i++ ) masivi[i] = Shemtxveviti_Ric
მონაცემთა დიდი ზომის ნაკრებთან მუშაობა 

მონაცემთა დიდი ზომის ნაკრებთან მუშაობა 

LINQ მოთხოვნა შეგვიძლია, აგრეთვე გამოვიყენოთ დიდი ზომის რიცხვითი მასივიდან რიცხვების ამოსაჩევად. მოყვანილი პროგრამით ხდება ამის დემონსტრირება. // //          შედეგიდან 5500-ზე ნაკლები მნიშვნელობის მქონე რიცხვების ამორჩევა label1.Text = ""; Random Shemtxveviti_Ricxvebi = new Random(); int[] masivi = new int[1000000]; for ( int i = 0; i < masivi.Length; i++ ) masivi[i] = Shemtxveviti_Ricxvebi.Next(); //          LINQ მოთხოვნის ფორმირება var shedegi = from cvladi in masivi  where cvladi < 5500 select cvladi; //          შედეგების ეკრანზე გამოტანა label1.Text = "5500-ზე ნაკლები რიცხვები:\n"; foreach (var elementi in shedegi) label1.Text += elementi.ToString() + "   "; } ძირითადი პროგრამიდან ხდება RixvebisGenerireba() მეთოდის გამოძახება და მისთვის 1000000-
LINQ  მეთოდის სინტაქსი და ლამბდა გამოსახულებები  

LINQ  მეთოდის სინტაქსი და ლამბდა გამოსახულებები  

 როგორც აღვნიშნეთ, პროგრამა დაიწერა LINQ მოთხოვნის სინტაქსის გამოყენებით. ახალა იგივე პროგრამა დავწეროთ LINQ მეთოდის სინტაქსის გამოყენებით. LINQ არის განხორციელებული როგორც კოლექციების, მასივების, მოთხოვნების შედეგების და სხვა ობიექტების, რომლებიც უზრუნველყოფენ IEnumerable ინტერფეისს, გაფართოებული მეთოდების სერია. LINQ-ს გაფართოებული მეთოდები გამოჩნდება, თუ 18.1 პროგრამაში saxelebi ცვლადის შემდეგ შევიტანთ „ .“ წერტილს. გაიხსნება სია, რომელშიც გამოჩნდება LINQ-ს გაფართოებული მეთოდები: Aggregate<>, All<>, Any<>, Average<>, First<>, Last<>, Contains<>, Take<>, Where<>, Reverse<> Sum<> და ა.შ. თუ using System.Linq დირექტივას გავაკომენტარებთ, მაშინ სიაში ეს მეთოდები აღარ გამოჩნდება.   უნდა გვახსოვდეს, რომ მოთხოვნის სინტაქსი უნდ
LINQ მოთხოვნის სინტაქსი

LINQ მოთხოვნის სინტაქსი

ინტეგრირებული მოთხოვნების ენა (LINQ, Language-Integrated Query) არის C# ენის გაფართოება, რომელიც ინტეგრირებულია ამ ენაში. ის არის დიდი მოცულობის მონაცემებთან მუშაობის მოხერხებული, სწრაფი და ეფექტური მექანიზმი. LINQ გვათავისუფლებს მონაცემების გაფილტვრისა და დახარისხების რთული და გრძელი კოდების წერისაგან. ის არის მოთხოვნების ენა, რომელიც საშუალებას გვაძლევს მიღებული შედეგები ადვილად დავახარისხოთ, გავფილტროთ და შევასრულოთ გამოთვლები. LINQ საშუალებას გვაძლევს ეფექტურად ვიმუშაოთ დიდი ზომის მონაცემთა ბაზებთან და კომპლექსურ XML დოკუმენტებთან, რომლებშიც მილიონზე მეტი ჩანაწერია. LINQ ტექნოლოგია შეგვიძლია გამოვიყენოთ მონაცემთა Object, SQL და XML ტიპების მიმართ: წარმოქმნის მოთხოვნებს, რომლებიც      გამოიყენება    მასივების,       სიებისა           და        სხვა კოლექციების მიმართ. წარმო

ტიპების გარდაქმნა

Keywords
დაპროგრამების დროს, როგორც წესი, ერთი ტიპის მქონე ცვლადს შეგვიძლია მივანიჭოთ მხოლოდ ამავე ტიპის მნიშვნელობა, ე.ი. მინიჭების ოპერატორის მარცხნივ მოთავსებულ ცვლადსა და მარჯვნივ მოთავსებულ გამოსახულებას ერთნაირი ტიპები უნდა ჰქონდეს. მაგრამ, რიგ შემთხვევებში, საჭირო ხდება ერთი ტიპის ცვლადისათვის სხვა ტიპის მნიშვნელობის მინიჭება. მაგალითად, double ტიპის ცვლადს შეგვიძლია მივანიჭოთ int ტიპის ცვლადის მნიშვნელობა: int mteli; double wiladi; mteli = 25; wiladi = mteli; თუ მინიჭების ოპერატორში გამოიყენება მონაცემთა თავსებადი ტიპები, მაშინ მინიჭების ოპერატორის მარჯვნივ მოთავსებული გამოსახულების ტიპი ავტომატურად გარდაიქმნება მარცხნივ მოთავსებული ცვლადის ტიპად. აქედან გამომდინარე, ჩვენს მაგალითში mteli ცვლადის ტიპი ჯერ გარდაიქმნება double ტიპად და შემდგომ მისი მნიშვნელობა მიენიჭება wiladi ცვლადს.

ცვლადები და მათი ინიციალიზება

Keywords
ცვლადი არის მეხსიერების სახელდებული უბანი, რომელსაც მნიშვნელობა ენიჭება. ეს მნიშვნელობა შეიძლება შეიცვალოს პროგრამის მუშაობის პროცესში. ოპერატორს, რომლის საშუალებითაც ხდება ცვლადების გამოცხადება, შემდეგი სინტაქსი აქვს: ტიპი ცვლადის_სახელი; სადაც, ტიპი ცვლადის ტიპია, ცვლადის_სახელი - კი მისი სახელი. ნებისმიერი ცვლადი გამოცხადებული უნდა იყოს მის გამოყენებამდე, წინააღმდეგ შემთხვევაში ადგილი ექნება შეცდომას. ამასთან, ცვლადს უნდა მიენიჭოს მხოლოდ შესაბამისი ტიპის მნიშვნელობები. მაგალითად, bool ტიპის ცვლადს უნდა მიენიჭოს true ან false მნიშვნელობა და არა წილადი ან სხვა. ავტ: რომან სამხარაძე