რატომ C++?
თუ პროგრამირებასთან შეხება პირველად გაქვთ, პროგრამირების ეს ენა შესანიშნავი დასაწყისია. შეიძლება არც კი გააგრძელოთ C++ პროგრამირების სიღრმისეული შესწავლა, თუმცა ის საბაზისო ცნებები, რასაც ამ ენაში შეისწავლით, ყველა სხვა ენის ადვილად ათვისებაში დაგეხმარებათ.
მოთხოვნები:
არ დაგჭირდებათ არანაირი პროგრამის დაყენება, საკმარისია ინტერნეტთან გქონდეთ წვდომა.
უნდა გქონდეთ მოტივაცია, მოუსმინოთ ლექციებს, შეასრულოთ სავარჯიშოები და დავალებები.
რას გთავაზობთ:
კვალიფიციურ ტრენერებს, რომლებსაც აქვთ პროგრამირების სწავლების და პრაქტიკული გამოყენების მრავალწლიანი გამოცდილება.
14 საათზე მეტ ვიდეო ლექციებს, რომელთა ნახვასაც შეძლებთ ნებისმიერ დროს.
ექსკლუზიურად კურსისთვის შექმნილ მასალებს ქართულ ენაზე.
პრაქტიკულ სავარჯიშო ფაილებს, რომელზეც კურსის განმავლობაში იმუშავებთ.
დახურულ FACEBOOK ჯგუფს სადაც უშუალოდ ტრენერისგან მიიღებთ კითხვებზე პასუხებს (https://www.facebook.com/groups/cplusplusoned)
სერტიფიკატს, რომლის ასაღებადაც უნდა დაწეროთ დავალებები და ფინალური ამოცანა.
და მაინც, რატომ C++?
C++ ყველაზე პოპულარულია მოცულობითი პროგრამული ინფრასტრუქტურისა და აპლიკაციების შესაქმნელად, რომლებიც მუშაობენ შეზღუდულ რესურსებზე. იმის გამო, რომ C++-ს შეუძლია უშუალოდ მანიპულირება მოახდინოს აპარატურაზე (ან მანქანაზე), რომელზედაც ის მუშაობს, პროგრამისტებს საშუალება აქვთ, დაარეგულირონ თავიანთი კოდი ისე, რომ ეფექტურად იმუშაოს ნებისმიერ გარემოში, მაშინაც კი, როდესაც მეხსიერების მოცულობა შეზღუდულა ან/და ენერგიის წყარო არასაკმარისია აპლიკაციის მოსამარაგებლად. შესაბამისად, C++ არის თითქმის უალტერნატივო არჩევანი სწრაფი, ეფექტური და საიმედო პროგრამული უზრუნველყოფის შესაქმნელად.
C++ გამოიყენება ოპერაციულ სისტემებში, თამაშების დეველოპმენტში, მონაცემთა ბაზებში, ვებ ბრაუზერებში, მანქანურ სწავლებაში, ვირტუალური რეალობის აპლიკაციებში, სამეცნიერო საქმიანობაში, ფინანსებში, სამხედრო საქმეში, გუგლის საძიებო სისტემაში, სამედიცინო ტექნოლოგიებში, ტელეკომუნიკაციებში, კინო პროდუქციაში და სხვა .
ცხადია, C++-ის შესწავლით თქვენი საქმიანობის არეალი ძალიან ფართო იქნება, თუმცა, აქ ერთი ნიუანსია რომელიც უნდა გაითვალისწინოთ. რადგან C++-ის მთავარი მახასიათებელი რესურსების ეფექტურად გამოყენებით მიღწეული სისწრაფე და მოქნილობაა, ნებისმიერ შემთხვევაში ენა იმდენად სიღრმისეულად უნდა შეისწავლოთ, რომ თქვენი დაწერილი კოდი ამ კრიტერიუმებს აკმაყოფილებდეს. სხვა შემთხვევაში, არაეფექტურად დაწერილ C++ კოდს სხვა ენაში დაწერილი კოდი აჯობებს. ეს გაითვალისწინეთ. თუ C++ შესწავლას გადაწყვეტთ, მისი სიღმისეულად შესწავლა მოგიწევთ, რათა მისი ეფექტურად გამოყენება შეძლოთ.
შესავალი:
როგორ მუშაობს კომპიუტერი
რა არის Compiler
რა არის C++ პროგრამული ენა
C++ შესასწავლად საჭირო რესურსები
ლექცია 1: C++ -ის საფუძვლები
Hello World
კომენტარი
კოდის ლამაზად წერა
მთავარი ფუნქცია Main
სტანდარტული cout
სტანდარტული endl
შეცდომები
საათის კალკულატორი
სტანდარტული cin
მართკუთხედი ფართობი
Double
Auto
Strings
წრის ფართობი
მუდმივა Const
წინაპროცესორული განმარტებები (# define)
პროგრამის მიმდევრობის მართვა
if ფუნქცია
წრის ფართობი if ფუნქციით
არითმეტიკული ოპერატორები
ლუწი თუ კენტი
მთლიანი შიდა პროდუქტი ერთ სულზე
მონაცემთა ტიპები C++-ში
პირველადი მონაცემთ ტიპები
ლექცია 2: ლოგიკური წინადადებები
IF-ELSE წინადადება
IF წინადადება
IF-ELSE წინადადება
ELSE IF წინადადება
ჩადგმული Nested IF წინადადება
ოპერატორები
ურთიერთმიმართების ოპერატორები
ლოგიკური ოპერატორები
ოპერატორების რიგითობა
სამეულის პირობითი ოპერატორი (?)
სამი რიცხვის შედარება
სიმაღლე ფუტებსა და ინჩებში
კალკულატორი
ხმოვანი თუ თანხმოვანი
ქულის გამოთვლა
განვითარებული და განვითარებადი ქვეყნები
ლექცია 3: განმეორების დებულებები - ლუპები (Loops)
While ლუპი
Do-while ლუპი
ინკრემენტის და დეკრემენტის ოპერატორები
For ლუპი
For ლუპი ორი ან მეტი პირობით
პირველი N რიცხვის ჯამი
რიცხვების ჯამი Unsigned Long Long მონაცემთა ტიპით
ლუწი რიცხვების ჯამი
კვადრატების ჯამი
ფიბონაჩის მიმდევრობა
ლუწი ფიბონაჩი
Jump ბრძანებები
break ბრძანება
continue ბრძანება
goto ბრძანება
მარტივი რიცხვები Prime Numbers
მარტივი გამყოფები
მრავალდონიანი ლუპი
*** პირამიდა
უმცირესი რიცხვი რომელიც იყოფა 1-დან 20-მდე რიცხვებზე
პოლინდრომი
დეპოზიტი
ლექცია 4: ფუნქციები
მიმატების ფუნქცია
პროცენტული ცვლილების დათვლა
ხარისხში აყვანა
ფუნქციები ტიპის გარეშე. Void-ის გამოყენება
Default მნიშვნელობები პარამეტრებში
მარტივი რიცხვების ფუნქცია
10001-ე მარტივი რიცხვი
2 მილიონზე ნაკლები მარტივი რიცხვების ჯამი
განტოლებები და მათი ამონახსნები
კვადრატული განტოლება
ნიუტონის აპროქსიმაცია
კვადრატული ფესვის Babylonian მეთოდი
რეკურსიულობა
რეკურსიული ფიბონაჩის ფუნქცია
ფულის ღირებულება დროში
ლექცია 5: მასივები
მასივების ინიცირება და მასივებზე წვდომა
მასივების ინიცირება
მასივის მნიშვნელობებზე წვდომა
მასივები <array> ბიბლიოთეკა
მასივები, როგორც პარამეტრები
მრავალგანზომილებიანი მასივები
სიმბოლოების მიმდევრობა
საშუალო და სტანდარტული გადახრა
სტანდარტული გადახრა
ოპერაციები მატრიცებით
მატრიცის ტრანსპონირება
კვადრატული მატრიცების გამრავლება
ვექტორები
საშუალოს გამოთვლა ვექტორების გამოყენებით
მრავალგანზომილებიანი ვექტორები
მატრიცები ვექტორებით
მონაცემების სორტირება
ლექცია 6: შემთხვევითი რიცხვები და მონტეკარლოს სიმულაცია
როგორ გენერირდება ფსევდო-შემთხვევითი რიცხვები
აპლიკაციები შემთხვევითი რიცხვების გამოყენებით
თამაში რიცხვების გამოცნობაზე
კამათელი
მონტეკარლოს სიმულაცია
პი-ს აპროქსიმაცია
ფუნქციის მაქსიმალური მნიშვნელობის პოვნა
Random Walk
ლექცია 7: Pointers
მისამართი და პოინტერი
მისამართის ოპერატორის (&) და გადამისამართების ოპერატორი (*)
პოინტერის გამოცხადება
პოინტერების გამოყენება
null პოინთერები
პოინტერის პოინტერი
რეფერენს Reference ცვლადი
ფუნქციისთვის არგუმენტის გადაცემა
Pass-by-Value
Pass-by-Reference პოინტერი
Pass-by-Reference ზედმეტსახელი
Const
პოინტერი და მასივი
ფოინთერების არითმეტიკა
ოპერაციები მასივზე პოინტერებით
მასივის გადაცემა ფუნქციისთვის
დინამიკური მეხსიერება
ოპერატორები new და new []
ლექცია 8: კლასები
რა არის კლასი
კლასის წევრი ფუნქციები
კლასის ბუნებრივი წევრები
კონსტრუქტორი
კონსტრუქტორის გადატვირთვა (Overload)
დესტრუქტორი
Copy კონსტრუქტორი
Copy მიმნიჭებელი ოპერატორი =
კლასის პოინტერი
This ბრძანება
კლასის Static წევრები
კლასის Const წევრი ფუნქციები
ლექცია 9: მეგობრობა, მემკვიდრეობა და პოლიმორფიზმი
მეგობრობა
მეგობარი ფუნქციები
მეგობარი კლასები
მემკვიდრეობა (Inheritance) კლასებს შორის
მემკვიდრეობის რეჟიმები
კონსტრუქტორის გამოყენება მემკვიდრეობის დროს
მემკვიდრეობის ტიპები
Single inheritance
Multiple inheritance
Multilevel inheritance
Hierarchical inheritance
Hybrid (Virtual) inheritance
პოლიმორფიზმი
Compile time პოლიმორფიზმი
Run time პოლიმორფიზმი
ლექცია 10: მომხმერებლის მიერ განსაზღვრული მონაცემთა ტიპები
Struct მონაცემთა სტრუქტურები
მონაცემების სორტირება სტრუქტურით
გაერთიანებები Union
ანონიმური გაერთიანებები
აღრიცხვის ტიპები (enum)
ჩამოთვლილი ტიპები enum კლასით
typedef / using
ხილვადობა
Namespace
Using
STD სახელების სივრცე
კლასები და Namespace
უსახელო namespace
Storage კლასები
შაბლონები
ფუნქციის შაბლონები
კლასის შაბლონი
შაბლონის სპეციალიზაცია
Const არგუმენტის გადაცემა შაბლონისთვის
სორტირება შაბლონების გამოყენებით
ლექცია 11: მეგობრობა, მემკვიდრეობა და პოლიმორფიზმი
მათემატიკური ფუნქცია
ფუნქციის ნულების პოვნა ნიუტონის მეთოდის
ინტეგრალი შუა წერტილის მეთოდით
ინტეგრალი მონტე კარლოს მეთოდით
ფასების წინასწარმეტყველება შემთხვევით რიცხვებით
მეტაპროგრამირება
სერთიფიკატის ასაღებად
უნდა შეასრულოთ დავალებები, რომლებიც ატვირთულია მასალებში.
დავალებების შესასრულებლად დროში შეზღუდული არ ხართ.
სასერთიფიკატო გამოცდის დასაწერად აუცილებელია ყველა დავალების შესრულება. მას შემდეგ, რაც ყველა დავალებას შეასრულებთ და გამოგზავნით უნდა მოგვწეროთ მეილზე info@oned.ge რომ მზად ხართ სასერთიფიკატო გამოცდის დასაწერათ და ჩავნიშნოთ გამოცდის დრო.
-
საჭირო ლინკები
-
წიგნი ქართულ ენაზე
-
დავალებები
დავალებები ატვირთეთ მხოლოდ ერთხელ. დაწერილი პასუხიები (კოდი) ჩააკოპირეთ შესაბამის ველებში.
-
1 ლექცია: Hello World
-
2 ლექცია: IF
-
3 ლექცია: Loop
-
4 ლექცია: Functions
-
5 ლექცია: Array
-
6 ლექცია: შემთხვევითი რიცხვები
-
7 ლექცია: Pointer
-
8 ლექცია: Class
-
9 ლექცია: Inheritance and Polymorphism
-
10 ლექცია: მონაცემთა სხვა ტიპები და შაბლონები
-
11 ლექცია: პრაქტიკული მაგალითები
-
საინტერესო ვიდეო მასალა
ამ ნაწილში მოცემულია საინტერესო ლინკები რათა გაეცნოთ დამატებით, კლასგარეშე მასალებს. მაგალითად ინტერვიუს c++ ენის ავტორთან. მასალები ინგლისურ ენაზეა