C++

ლოგო

C++ (áƒ©áƒ•áƒ”áƒŁáƒšáƒ”áƒ‘áƒ áƒ˜áƒ• áƒ„áƒáƒ áƒ—áƒŁáƒšáƒáƒ“ áƒ’áƒáƒ›áƒáƒ˜áƒ—áƒ„áƒ›áƒ˜áƒĄ „სი-პლუს-პლუსი“) — საერთო დანიჹნულების პროგრამირების ენა. მისი განვითარება დაიწყო ბიარნ სჱრუსჱრუპმა 1979 წელს ბელ-ლაბჹი C პროგრამული ენის áƒ’áƒáƒĄáƒáƒ«áƒšáƒ˜áƒ”áƒ áƒ”áƒ‘áƒšáƒáƒ“. თავდაპირველად მას C with Classes ერჄვა, ჼოლო 1983 წელს C++ ეწოდა[1]. 1990-იანი წლებიდან C++ გაჼდა ერთ-ერთი ყველაზე პოპულარული კომერáƒȘიული პროგრამირების ენებიდან. C++ პროგრამული ენის სჱანდარჱის áƒ áƒáƒąáƒ˜áƒ€áƒ˜áƒ™áƒáƒȘია მოჼდა 1998 წელს, როგორáƒȘ ISO/IEC 14882:1998; მისი თანამედროვე ვერსიაა 2003 წლის, ISO/IEC 14882:2003. ამჟამად დამუჹავების პროáƒȘესჹია სჱანდარჱის აჼალი ვერსია (áƒáƒ áƒáƒ€áƒáƒ áƒ›áƒáƒšáƒŁáƒ áƒáƒ“ áƒȘნობილი როგორáƒȘ C++0x).

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

პროგრამა ჹედგება ორი მთავარი ნაწილისგან: მონაáƒȘემებისა და áƒ˜áƒœáƒĄáƒąáƒ áƒŁáƒ„áƒȘიებისგან. უმáƒȘირესი მონაáƒȘემი, რომლის ა჊ჄმაáƒȘ áƒšáƒ”áƒŁáƒ«áƒšáƒ˜áƒ კომპიუჱერს, არიქ 0 ან 1, ან áƒŁáƒ€áƒ áƒ ზუსჱად „-“ ან „+“, რიქი áƒ©áƒáƒŹáƒ”áƒ áƒ და წაკითჼვაáƒȘ მას áƒšáƒ”áƒŁáƒ«áƒšáƒ˜áƒ áƒ€áƒ˜áƒ–áƒ˜áƒ™áƒŁáƒ áƒ˜ მეჼსიერების უმáƒȘირეს ერთეულჹი. ეს იმის გამო, რომ ჯერჯერობით áƒ”áƒšáƒ”áƒ„áƒąáƒ áƒáƒœáƒŁáƒš áƒĄáƒ„áƒ”áƒ›áƒ”áƒ‘áƒĄ მჼოლოდ ორ მდგრად მდგომარეობაჹი áƒšáƒ”áƒŁáƒ«áƒšáƒ˜áƒáƒ— ყოჀნა. მონაáƒȘემთა ამ უმáƒȘირეს ერთეულს ეწოდება ბიჱი (ინგლისური ჱერმინი bit წარმოადგენს „binary digit-ის“ ანუ ორობითი áƒȘიჀრიქ ჹემოკლებას). ნებისმიერი მონაáƒȘემი, რომელიáƒȘ მუჹავდება კომპიუჱერის მიერ, წარმოიდგინება ნულებისა და ერთების კომბინაáƒȘიით და მის დასამაჼსოვრებლად საჭიროა ბიჱების გარკვეული რაოდენობა. ჹემდეგ, ჹედარებით მარჱივი ჱიპის მონაáƒȘემებისგან áƒšáƒ”áƒĄáƒáƒ«áƒšáƒ”áƒ‘áƒ”áƒšáƒ˜áƒ áƒŁáƒ€áƒ áƒ რთული áƒ™áƒáƒœáƒĄáƒąáƒ áƒŁáƒ„áƒȘიების ლეჄმნა, მათგან კიდევ áƒŁáƒ€áƒ áƒ რთულის და დაჼვეწილის და ა.ლ. C++-ლი áƒ©áƒáƒšáƒ”áƒœáƒ”áƒ‘áƒŁáƒšáƒ˜áƒ რამდენიმე მარჱივი საბაზო ჱიპი მონაáƒȘემებისთვის. თითოეული ჱიპისთვის გამოყოჀილია ბიჱების მკაáƒȘრად დადგენილი რაოდენობა. ამათგან აიგება ყველა დანარჩენი. ზოგადად, მონაáƒȘემები და áƒ˜áƒœáƒĄáƒąáƒ áƒŁáƒ„áƒȘიები ანალოგიურია მათემაჱიკის სიმრავლეებისა და áƒ€áƒŁáƒœáƒ„áƒȘიებისა. ამიჱომ, ვიდრე C++ -იქ მონაáƒȘემთა ჱიპებსა და áƒ€áƒŁáƒœáƒ„áƒȘიებზე ვისაუბრებთ, ჯერ უნდა გავარკვიოთ რა áƒȘოდნა ლეგვიძლია გამოვიყენოთ მათემაჱიკიდან. მანამდე მოკლედ ჹევეჼოთ კომპიუჱერჹი რიáƒȘჼვების წარმოდგენის საკითჼს.

ძველი და აჼალი ვარიანჱი

ათობით წლების მანძილზე იჼვეწებოდა ენის áƒĄáƒ˜áƒœáƒąáƒáƒ„áƒĄáƒ˜. საყურადჩებოა საჼელსივრáƒȘეების და სათაურების გამოყენების წესი. Ⴤვემოთ მოყვანილია ორი ერთნაირი პროგრამის მაგალითი სჼვადასჼვა სჱილით, პროგრამა არავითარ áƒ€áƒŁáƒœáƒ„áƒȘიაქ არ ასრულებს, გაჹვებისთანავე იჼურება.

ძველი სჱილი - პრეპროáƒȘესორით (#define) ჹემოჱანილია სათაურის Ⴠაილები, რომლებიáƒȘ .h-ით მთავრდება:

  #include <iostream.h>
  int main()
  {
    printf("Hello World\n");
    return 0;
  }

აჼალი სჱილი - საჭირო ა჊არაა, ყველა ჹემოჱანილი Ⴠაილი ერთიანდება ერთ std საჼელსივრáƒȘეჹი:

  #include <iostream>
  using namespace std;  
  int main()
  {
    cout<<"Hello World"<<endl;
    return 0;
  }

იდეალური პროგრამა

არსებობს კრიჱერიუმები, რომლებსაáƒȘ უნდა áƒáƒ™áƒ›áƒáƒ§áƒáƒ€áƒ˜áƒšáƒ”áƒ‘áƒ“áƒ”áƒĄ იდეალური პროგრამა. ზოგჯერ მათი ერდროულად ჹესრულება áƒšáƒ”áƒŁáƒ«áƒšáƒ”áƒ‘áƒ”áƒšáƒ˜áƒ, ზოგჯერ განზრაჼ ჼდება საჭირო რომელიმე მათგანის დარჩვევა, მაგრამ ზოგადად ითვლება, რომ იდეალური პროგრამა უნდა იყოს:

  • მრავალჯერადი, გამოყენების თვალსაზრისით;
  • ადვილად გაუმჯობესებადი გადაკეთების თვალსაზრისით და მარჱივი áƒ”áƒ„áƒĄáƒžáƒšáƒáƒáƒąáƒáƒȘიალი;
  • საიმედოდ დაწერილი (მაგალითად, ნაკლებად დამოკიდებული კონკრეჱულ სისჱემაზე);
  • ადვილად áƒ’áƒáƒĄáƒáƒ áƒ©áƒ”áƒ•áƒ˜;
  • კარგად დოკუმენჱირებული (ანუ აჼლდეს ყველა საჭირო კომენჱარი და აჼსნა-განმარჱება).

იდეალური პროგრამების áƒšáƒ”áƒĄáƒáƒ„áƒ›áƒœáƒ”áƒšáƒáƒ“ აუáƒȘილებელია იმ გამოáƒȘდილების გამოყენება, რაáƒȘ დაგროვდა საუკეთესო პროგრამისჱების მიერ და რაáƒȘ კონდენსირებულია სჱილების და პარადიგმების საჼით. áƒ©áƒ•áƒ”áƒœáƒĄ კურსჹი ყურადჩებას გავამაჼვილებთ რამდენიმე მომენჱზე, რაქაáƒȘ პროგრამირების კარგი სჱილი áƒ’áƒ•áƒ˜áƒ áƒ©áƒ”áƒ•áƒĄ: კომენჱარების გამოყენებაზე და პროგრამის áƒ€áƒ áƒáƒ’áƒ›áƒ”áƒœáƒąáƒ”áƒ‘áƒ˜áƒĄ ჹეწევაზე. C++ –ჹი კოდის მრავალჯერადი განმეორების იდეა áƒ”áƒ€áƒŁáƒ«áƒœáƒ”áƒ‘áƒ áƒ€áƒŁáƒœáƒ„áƒȘიების და კლასების გამოყენებას. სჱანდარჱული ბიბლიოთეკის საჼით ენა სთავაზობს პროგრამისჱებს უამრავ áƒ€áƒŁáƒœáƒ„áƒȘიაქ და კლასს. კერძოდ, C++ –ის ყველა პროგრამა იყენებს სჱანდარჱულ ჹეჱანა–გამოჱანის კლასებს. უმარჱივესი C++ –პროგრამის ქჹრუჄჹურა ჹემდეგია:

#include <iostream>   // მიმართვა ჹეჱანა–გამოჱანის 
using namespace std;  // სჱანდარჱულ კლასებზე
// პროგრამის მთავარი áƒ€áƒŁáƒœáƒ„áƒȘია
int main()
{ 
	// მონაáƒȘემებზე განაáƒȘჼადი 
	// და ჹესრულებადი áƒ˜áƒœáƒĄáƒąáƒ áƒŁáƒ„áƒȘიები
}

მაგალითად, Ⴤვემოთ მოყვანილი პროგრამა იპოვის და დაბეჭდავს ორი მთელი რიáƒȘჼვის ჯამს:

#include <iostream>   
using namespace std;  

int main()
{
   int number1(9), number2(-4), sum;
   sum = number1 + number2;
   cout<<"Sum = "<<sum<<endl;
   return 0;
}

ჹემოკლებული ოპერაჱორები

C++–ჹი არიქ არაერთი ოპერაჱორი, რომლის ჹესრულება ნიჹნავს ორი სჼვა ოპერაჱორის ან áƒ˜áƒœáƒĄáƒąáƒ áƒŁáƒ„áƒȘიიქ ჹესრულებას. როგორáƒȘ წესი, ამ ოპერაჱორების უმრავლესობა აგრეთვე გადაჱვირთულია სჼვადასჼვა საბაზო ჱიპზე. áƒŁáƒ€áƒ áƒ მეჱიáƒȘ, მომჼმარებლის მიერ განსაზჩვრულ სჼვადასჼვა ჱიპისთვის (კლასისთვის) ჼჹირად ძალიან მოსაჼერჼებელია ჹემოკლებული და სჼვა ოპერაჱორების (ნაწილის მაინáƒȘ) გადაჱვირთვა. მაგალითად, ძალიან ჼჹირად არიქ საჭირო რომელიმე áƒȘვლადის, მთელის ან ნამდვილის, (ვთჄვათ, counter) მნიჹვნელობის ერთით გაზრდა. თუ ამას მინიჭების ჹეჱყობინებით გავაკეთებთ, გვეჄნება:

   counter = counter +1;

იგივე ჹედეგს მოგვáƒȘემს ++ (მომაჱების ოპერაჱორი ანუ ინკრიმენჱი) ოპერაჱორის გამოყენება:

   ++counter;

ანალოგიური áƒ›áƒáƒ„áƒ›áƒ”áƒ“áƒ”áƒ‘áƒ˜áƒĄáƒáƒ -- (მოკლების ოპერაჱორი ანუ დენკრიმენჱი) ოპერაჱორი, რომელიáƒȘ ერთით ამáƒȘირებს áƒȘვლადის მნიჹვნელობას. თუ გვინდა არა ერთით, არამედ 3–ით გავზარდოთ áƒȘვლადის მნიჹვნელობა, უნდა გამოვიყენოთ += ოპერაჱორი, ანუ ჹემდეგი ორი ჹეჱყობინება აკეთებს ერთი და იგივე რამეს:

   counter = counter + 3;
   counter += 3;

áƒȘჼრილჹი მოყვანილია რამდენიმე მაგალითი:

ოპერაჱარებიჹეჱყობინებაეკვივალენჱური ჹეჱყობინება
+=x += 2;x = x + 2;
-=x -= 2;x = x - 2;
*=x *= 2;x = x * 2;
/=x /= 2;x = x / 2;
%=x %= 2;x = x % 2;

რესურსები ინჱერნეჱჹი

áƒĄáƒ„áƒáƒšáƒ˜áƒ

  1. ↑ When was C++ invented? áƒ“áƒáƒáƒ áƒ„áƒ˜áƒ•áƒ”áƒ‘áƒŁáƒšáƒ˜ 2011-09-26 საიჱზე Wayback Machine. . ბიარნ სჱრუსჱრუპი, 7 მარჱი, 2010. ATT.com.
კაჱეგორია:პროგრამირების ენები
კაჱეგორია:Pages using deprecated source tags კაჱეგორია:პროგრამირების ენები