Advertisement
Garey

C++ Tutorial: Basics

Oct 6th, 2017
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 15.34 KB | None | 0 0
  1. -----------------------------------------------
  2. -------------------Обяснение-------------------
  3. -----------------------------------------------
  4.  
  5. Така..Започваме от кодът..C++.. Има типове данни в този език.Нека ги изредим:
  6.  
  7. int - 4B - цяло число, примери: 3,4,5,6
  8. double - 8B - реален тип - Тоест числата са следните: 2.3, 4.1, 5.7
  9. float - 8B - реален тип също, но тук излизат изцяло, тоест: 2.349391934, 4.1812381 и така нататък.
  10. char - 1B - най-често масиви, символи. пример: char a = 'a';
  11. string - текст - пример: string a = "This is an example text";
  12. bool - 1B, булев тип - Има две стойности true и false. Пример: bool isTrue = true;
  13.  
  14. ВАЖНО: Всички тези имена int, double, float, char, string са запазени имена. Не могат да бъдат имена на променливи.
  15.        Също, променливите не могат да започват с цифри или символи.Могат да съдържат, но не могат да започват с тях.
  16.  
  17. Операции с тях:
  18.  
  19. Входни:
  20.  C++:
  21.    cin >> <името на променливата>;
  22.    cin.getline(<името на променливата>);
  23.    getline(cin, <името на променливата>);
  24.  
  25.  C:
  26.    scanf(<името на променливата>);
  27.    Има, но не са нужни всъщност.
  28.  
  29. Изходни:
  30.  C++:
  31.   cout << <името на променливата> или текст, или символ;
  32.  
  33.  C:
  34.    printf("Test");
  35.    Сега, това нека го обясня. Може да е сложно, но по принцип е доста полезно.Добре, ще го оставим.Той за сега не е нужен.
  36.  
  37.  
  38.  
  39. Оператори:
  40.  
  41.  << - извеждащ оператор - извежда на екрана.
  42.  >> - въвеждащ оператор - Въвежда в променливата Или нека дам примери и да обясня с думи;
  43.  cin >> a;
  44.  въвежда се стойност в променливата с име a;
  45.  
  46.  cout << а;
  47.  извежда се стойността от променливата а. Толкова.Простичко и ясно.
  48.  
  49.  endl - Задава край на реда и прехвърля на нов ред.Пример: cout << a << endl << b;
  50.  Тогава, ще изведе променливата а на единият ред, а променливата b на другият(новият ред).
  51.  
  52.  Аритметични оператори: + - / * %
  53.  1 + 1 = 2;
  54.  1 - 1 = 0;
  55.  1 / 1 = 1;
  56.  1 * 1 = 1;
  57.  1 % 1 = 0;
  58.  
  59.  Това последното изчислява остатък. 1 / 1 е равно на 1 и няма остатък. След като няма връща 0, ако има остатък връща 1.
  60.  
  61.  Логически оператори:
  62.  && - и - Пример: 1 == 1 && 2 == 2 - Превежда се така: 1 е равно на 1 И 2 е равно на 2. Използват се при проверките много.
  63.  || - или - Пример: 1 == 1 || 2 == 2 - Същият начин, но 1 е равно на 1 или 2 е равно на 2.
  64.  ! - отрицание - Пример: По-горе си зададохме променлива isTrue от тип bool.
  65.              Сега ако го напиша така: cout << isTrue << !isTrue, то на екранът ще излезе първо true, а после false.
  66.          Отрицанието на истината е лъжата. И обратно, ако задам !!isTrue, ще изведе true.Можете и 100 удивителни
  67.          да сложите тука отзаде и пак ще се смятат.
  68.  = - присвояване - Пример: Присвоявате стойност на променлива. Тоест, ако напиша така: isTrue = false; ,то тогава
  69.                променливата isTrue ще приеме стойността false.
  70.  == - равенство(равно на) - Не мисля че има смисъл да ги обяснявам тези двете. Те са ясно написани.
  71.  != - различно(не е равно на)
  72.  // - едноредов коментар - част от кода, която не се чете или показва от програмата.Пример: //this is hello world text
  73.  /* */ - Многоредов коментар - Може да се пише на няколко реда. Отварящият таг е /* , а затварящият е */. Всичко между
  74.      тях е коментар.
  75.  
  76.  
  77. Библиотеки:
  78.  
  79. Въвеждат се в програмата чрез запазена дума include.Пример: #include <[името на библиотеката]> -> #include <iostream>
  80. iostream - входно-изходна библиотека.Всички тези операции cout/cin са там.За scanf/printf е нужна stdio/stdio.h .
  81. Библиотеките са доста, могат да се търсят из интернет.Нямам намерение да ги изреждам всичките, но ето едни от редовните,
  82. които ще се използват:
  83.  
  84. #include <math.h> - математически функции, cos, sin, tg, cotg, round и други.
  85. #include <iostream> - входно-изходни операции.
  86. #include <fstream> - входно-изходни операции за файлове
  87. #include <stdio.h> - стандартна библиотека за C.
  88. #include <string> - Текстова обработка на символен низ(текст).има готини функции, които няма да се разглеждат сега, но
  89.             по-нататък, някои от които са доста полезни.
  90.  
  91. И спирам до тук.
  92.  
  93. Using namespace std:
  94.  
  95. Какво е това? Това е, как да се изразя..Нещо, което можете да си спестите, не е толкова важно, но ако не ви мързи да си
  96. пишете std::cout всеки път, то по-добре си го пишете. Тоест, това автоматично замества всички тези ..Кво ли го обяснявам.
  97. Просто го пишете.Полезно е.
  98.  
  99. Добре.След като разбрахме всичко това, нека да решиме няколко примера.А да..Библиотеки и using namespace std;
  100.  
  101. Така.Това е примерна задача и примерно оформление на код.Искам да виждам кодът и да бъде ясен.Нещо подобно:
  102. Пространства между редовете, място за коментари, които описват всеки ред какво прави(е не всеки де, този, който е нужен)
  103. Разстояние между операторите и функциите.(По-пригледно изглежда)
  104.  
  105. А ето как не трябва да изглежда една програма -> Защо?
  106.  
  107. Супер наблъскано е и трудно се разчита.Трудно се разбира кое къде започва и къде свършва. Сега ще покажа и двата примера.
  108. Вие си преценете начинът на писане на код.
  109.  
  110. Лично мое мнение е, че десният код е по-хубаво подреден.Това е важно, когато си програмист. Все пак затова пишеш кодът.
  111. Да улесниш себе си.Нека продължим с примерите.
  112.  
  113. Започваме от примерна задача:
  114.  
  115. Задача 1: Да се напише програма на C++, която извежда на екрана Hello World.
  116. Задача 2: Да се изведе на екрана всеки тип данни чрез променливи.
  117. Задача 3: Използвай всички работи от текстовият файл, които не си използвал без логически оператори.
  118.  
  119. -----------------------------------------------
  120. ---------------Код на програмата---------------
  121. -----------------------------------------------
  122.  
  123. #include <iostream>
  124. #include <string>
  125.  
  126. using namespace std;
  127.  
  128. int main() {
  129.  
  130.   // Декларираме променлива a от тип цяло число
  131.   // и задаваме стойност 1 на променливата
  132.   int a = 1;
  133.   // Декларираме променлива b от реален тип
  134.   // и задаваме стойност 2.34 на променливата
  135.   double b = 2.34;
  136.   // Декларираме променлива c от реален тип с
  137.   // повече запетаи
  138.   // и задаваме стойност 2.93493 на променливата
  139.   float c = 2.93493;
  140.   // Декларираме променлива d от символен тип
  141.   // и задаваме стойност D на променливата
  142.   char d = 'D';
  143.   // Декларираме променлива str като символен низ(текст)
  144.   // и задаваме стойност "This is sample text"
  145.   // на променливата
  146.   string str = "This is sample text";
  147.  
  148.   // Деклрарираме променлива от тип bool или булев тип
  149.   // и задаваме стойност true на променливата
  150.   bool isTrue = true;
  151.  
  152.   // Извеждаме променливите една по една на екрана
  153.   cout << "a = " << a << endl << "b = " << b;
  154.   /* Можете и всяка на отделен ред, това не е от
  155.      никакво значение.Важното е да се изведат на
  156.      екрана.А ето и пример за многоредов коментар.
  157.   */
  158.  
  159.   // Извеждаме стойността на променливата c на
  160.   // екрана
  161.   cout << "c = " << c << endl;
  162.   // Извеждаме стойността на променливата d на
  163.   // екрана
  164.   cout << "d = " << d << endl;
  165.  
  166.   // Извеждаме стойността на променливата str на
  167.   // екрана
  168.   cout << "str = " << str << endl;
  169.  
  170.   // Добре, нека започнем с въвеждането на данни
  171.   // Пишем примерен текст за потребителя, за да
  172.   // разбере за нашето намерение, че искаме той
  173.   // да въведете от клавиатурата информация
  174.  
  175.   cout << "Enter a number: ";
  176.  
  177.   // Използваме операцията cin, за да въведем
  178.   // информацията в променливата a.
  179.   cin >> a;
  180.  
  181.   // И извеждаме на екрана стойността на a;
  182.   cout << "a = " << a << endl;
  183.  
  184.   // Готино нали? Нека направим същото за
  185.   // останалите променливи
  186.   cout << "Enter a real number: ";
  187.  
  188.   // Въвеждаме информация за променливата b
  189.   cin >> b;
  190.  
  191.   // Извеждаме новата стойност на променливата b
  192.   // Същото важи и за float, не мисля да повтарям
  193.   // този ред
  194.   cout << "b = " << b << endl;
  195.  
  196.   // Информация за променливата c
  197.   cout << "Enter only one character: ";
  198.  
  199.   // Въвеждаме информация за променливата c
  200.   cin >> d;
  201.  
  202.   // Извеждаме новата стойност на c на екрана
  203.   cout << "d = " << d << endl;
  204.  
  205.   // Информация за символният низ(текстът)
  206.   cout << "Enter text: ";
  207.  
  208.   // Сега тук, има два варианта и ще ги покажа
  209.   // и двата.Единият е да се вземе само първата
  210.   // дума, защото cin не приема интервали(space)
  211.   // А другият вариант е да го вземем с интервал
  212.   // Все пак е текст нали? Много ясно, че трябва
  213.   // да има интервали.
  214.   // |----------------------------------------|
  215.   // getline(cin, <името на променливата>)
  216.   //
  217.   // Тази функция е вградена в string и взема
  218.   // целият текст, който е въведен. Ще го видим
  219.   // следмалко.
  220.   // |----------------------------------------|
  221.   // Също да спомена. getline е за string
  222.   // докато cin.getline е за char.
  223.  
  224.   cin.sync();
  225.   cin.clear();
  226.   // Нека вметна защо използвам тези две
  227.   // функции и какво правят.
  228.   // От преди имаме входни данни чрез cin
  229.   // И ние изведнъж сменяме метода на вход
  230.   // Входният поток трябва да се изчисти и
  231.   // да се върне по начална стойност, празен
  232.   // очакващ вход.
  233.   // clear - чисти потокът
  234.   // sync - синхронизира го с началната му
  235.   // стойност
  236.   // входен поток - всичко, което се въвежда от
  237.   // cin в нашият случай
  238.   // Как да разберете кога да ги използвате?
  239.   // Когато не ви даде да въвеждате.Ето пример!
  240.   getline(cin, str);
  241.  
  242.   // Извеждаме новата стойност на str на екрана
  243.   cout << "str = " << str << endl;
  244.  
  245.   // Нека минем към аритметични операции.
  246.  
  247.   //Умножение
  248.   cout << "2 * 2 = " << 2 * 2 << endl;
  249.  
  250.   // Деление
  251.   cout << "4 / 2 = " << 4 / 2 << endl;
  252.  
  253.   // Събиране
  254.   cout << "2 + 1 = " << 2 + 1 << endl;
  255.  
  256.   // Изваждане
  257.   // Може и с променливи.
  258.   // a - 1 или a - b
  259.   // Използването на променливи
  260.   // важи за всички аритметични операции
  261.   cout << "2 - 1 = " << 2 - 1 << endl;
  262.  
  263.   // Деление с остатък
  264.   cout << "7 % 2 = " << 5 % 2 << endl;
  265.  
  266.   // Нека не се занимаваме и с C в момента, защото
  267.   // информацията е предостатъчно много и е нужно
  268.   // време, за да се осмисли и усвои както трябва
  269.   // тоест да се разбере.
  270.   //
  271.   // Нека сега разгледаме променливата от булев тип
  272.   // isTrue. Нека я изведем на екрана и да видим нейната
  273.   // стойност
  274.   // При true връща единица, а при false връща 0
  275.   cout << "isTrue = " << isTrue << endl;
  276.  
  277.   // Отрицанието на isTrue е false, тоест 0
  278.   cout << "!isTrue = " << !isTrue;
  279.  
  280.   return 0;
  281. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement