Добро пожаловать на курс блога «Освоение структур данных и алгоритмов». Я Нитеш Кумар Оджха, студент первого курса компьютерной инженерии. Я страстный технический энтузиаст с сильным желанием постоянно узнавать о новых технологиях и делиться этими знаниями с миром. Моя любовь ко всему, что связано с технологиями, началась в молодом возрасте и только продолжала расти по мере того, как я получаю степень в области компьютерной инженерии.

В этом курсе DSA я объясню каждую концепцию структуры данных и алгоритма очень просто и понятно. Мы начнем прямо с самых основ, которые являются введением в язык программирования, который мы будем использовать для написания кодов DSA. Этот курс будет основан на C ++, но «Освоение структур данных и алгоритмов» не зависит от выбранного вами языка программирования. Вы можете выбрать любой язык по вашему выбору. Если вы стоите перед дилеммой и не можете решить, я бы посоветовал вам выбрать C++ или Java. Я также буду предоставлять коды на Java, как только закончатся основные темы C++.

Самый важный навык для освоения DSA

Наиболее важным навыком, который вам необходим для освоения DSA, является умение решать проблемы. На протяжении всего этого курса моя главная цель — помочь вам развить мышление, направленное на решение проблем, и подход к решению любой проблемы DSA.

В этом руководстве мы изучим базовый синтаксис программы C++, управляющие последовательности, типы данных, операторы, иерархию операторов и значения ASCII.

Мы также решим несколько простых программ и спрогнозируем выходной вопрос, чтобы закрепить концепции, которые мы изучим в этой Части 1 курса блога Mastering Data Structures and Algorithms.

1. Программа «Привет, мир»

#include<iostream>
using namespace std;
int main(){
  cout<<“hello world”;
  return 0;
}

Давайте разберемся с функциональностью каждой строки этой программы.

  1. #include<iostream>: Эта строка включает заголовочный файл iostream, который обеспечивает функции ввода и вывода в C++.
  2. using namespace std;: Эта строка представляет собой директиву, указывающую компилятору использовать пространство имен std, которое содержит стандартные библиотечные функции и объекты C++.
  3. int main(){: С этой строки начинается основная функция программы, которая является отправной точкой выполнения.
  4. cout<<“hello world”;: В этой строке используется cout (который является объектом класса iostream, мы будем изучать объекты и класс в разделе ООП курса) для вывода строки «hello world» на консоль. Оператор << используется для вставки строки в выходной поток.
  5. return 0;: Эта строка завершает основную функцию и возвращает операционной системе 0, указывая на успешное выполнение программы.

2. Escape-последовательности и endl

Escape-последовательности в C++ — это специальные символы, которые начинаются с обратной косой черты (\) и используются для представления определенных символов, которые трудно или невозможно ввести напрямую. Например, наиболее распространенной и широко используемой управляющей последовательностью является \n, которая представляет собой символ новой строки, который заставляет курсор перемещаться в начало следующей строки после печати строки. Без escape-последовательности строка будет напечатана в той же строке, что и любой последующий вывод.

cout<<"Hello World";
cout<<"This is my first C++ program.";
/* Output -
Hello WorldThis is my first C++ program.
*/


//To print the second line in a new line we have to use \n or endl
cout<<"Hello World";
cout<<"\n"<<"This is my first C++ program.";
/* Output - 
Hello World
This is my first C++ program.
*/

3. Типы данных

Тип данных в основном определяет тип данных, которые может хранить переменная. Переменная — это именованная ячейка памяти, в которой хранится значение определенного типа данных. Значение, сохраненное в переменной, может быть изменено во время выполнения программы, что обеспечивает динамическое поведение и гибкость.

Некоторые распространенные типы данных в C++:

  • int: представляет целочисленные значения, такие как 1, 2, 15, -4 и 0.
  • float: представляет значения с плавающей запятой, такие как 1,5, -2,75 и 5,0.
  • double: представляет значения с плавающей запятой двойной точности, которые похожи на числа с плавающей запятой, но с большей точностью и диапазоном.
  • char: представляет отдельные символы, такие как «a», «N», «1» или «$».
  • bool: представляет логические значения, которые либо истинны, либо ложны.

4. Операторы

Операторы — это символы, которые выполняют различные операции с одним или несколькими операндами (переменными, значениями или выражениями). C++ поддерживает широкий спектр операторов, включая арифметические операторы, операторы сравнения, логические операторы, побитовые операторы и многие другие.

Некоторые распространенные типы операторов в C++:

  • Арифметические операторы: выполняют основные арифметические операции, такие как сложение (+), вычитание (-), умножение (*), деление (/) и модуль (%).

5 / 2будет давать частное как результат, равный 2, а 5 % 2будет давать остаток как результат, равный 1.

  • Операторы сравнения: сравнивают два значения и возвращают логическое значение (true или false), например, равно (==), не равно (!=), меньше (<), меньше или равно (<=), больше ( >) и больше или равно (>=).
  • Логические операторы: выполнение логических операций над логическими значениями, таких как логическое И (&&), логическое ИЛИ (||) и логическое НЕ (!).
  • Побитовые операторы: выполняют операции над отдельными битами значений, такие как побитовое И (&), побитовое ИЛИ (|), побитовое исключающее ИЛИ (^), побитовое дополнение (~) и побитовый сдвиг влево (<<) и сдвиг вправо (>>). ).
  • Операторы присваивания: присваивание значения переменной или выражению, например, простое присваивание (=), присваивание сложения (+=) (x +=2 подразумевает, что значение текущего значения x + 2 присваивается x), присваивание вычитания ( -=), присваивание умножения (*=) и так далее.

Программа 1: Площадь круга

#include <iostream>
using namespace std;
int main()
{
    float rad = 10;
    float area = 3.14 * rad * rad;
    cout<<area;
}

Программа 2: Простые проценты

#include <iostream>
using namespace std;
int main() {
    float principle, rate, time, interest;

    //Note : This is a single line comment. 

    /* This is a multi-line comment.
       Comments are not executed by the compiler.
       Comments are ignored by the compiler and 
       are meant to be read by humans to understand the code. */

    // Input principle, rate, and time
    cout << "Enter principle amount: ";
    cin >> principle; 
    //cin is an object which is used to take input from the user
    cout << "Enter rate of interest: ";
    cin >> rate;
    cout << "Enter time in years: ";
    cin >> time;

    // Calculate interest
    interest = (principle * rate * time) / 100;

    // Output interest
    cout << "Simple Interest = " << interest << endl;

    return 0;
}

5. Иерархия операторов

Предсказать результат 1

int main()
{
  int num1;
  int p = 5, q = 10;
  p += q -= p;
  cout<<p<<" "<<q<<endl;
  return 0;
}

Вывод: 10 5

Объяснение. Операторы присваивания имеют ассоциативность справа налево (см. таблицу иерархии операторов). Итак, сначала будет выполнено q -= p. q -= p подразумевает q = q — p. Таким образом, q = 10–5 = 5, следовательно, новое значение q = 5. Затем будет выполнено p+= q. Текущее значение q = 5 и p = 10. Следовательно, p = p + q = 5 + 5 = 10.

6. Значения ASCII

Значения ASCII (американский стандартный код для обмена информацией) относятся к числовым кодам, которые представляют символы в наборе символов ASCII. ASCII — это стандартная кодировка символов, которая присваивает уникальное числовое значение каждому символу английского алфавита, а также различным другим символам, а также числам от 0 до 9.

В C++ вы можете найти значение ASCII символа, используя тип данных int, который вернет соответствующий код ASCII.

#include <iostream>
using namespace std;

int main() {
   char ch = 'A';
   int asciiValue = ch;
   cout << "The ASCII value of " << ch << " is " << asciiValue << endl;
   return 0;
}

ПРИМЕЧАНИЕ. Сейчас вам нужно запомнить значения ASCII следующих элементов:

  1. Значения ASCII алфавитов от «A» до «Z» составляют от 65 до 90.
  2. Значения ASCII алфавитов от «a» до «z» составляют от 97 до 122.
  3. Значения ASCII от «0» до «9» составляют от 48 до 57.
  4. Значение ASCII нулевого символа ( ‘\0’ ) равно 0.

В заключение я рекомендую вам попробовать этот учебник самостоятельно и поэкспериментировать с кодом. Попробовав это самостоятельно, вы получите практический опыт и улучшите свои навыки. Вы также сможете проверить свое понимание понятий, описанных в этом руководстве, и определить области, в которых вам может понадобиться дополнительная помощь или разъяснения. Эксперименты с кодом также могут помочь вам открыть для себя новые и творческие способы решения проблем и развить свои навыки решения проблем.

Если вы нашли это руководство полезным, рассмотрите возможность оставить комментарий ниже, чтобы сообщить мне свои мысли. Ваши отзывы всегда ценны и могут помочь мне улучшить будущие руководства.

Кроме того, если вам понравился этот урок и он оказался полезным, рассмотрите возможность поставить ему лайк и поделиться с другими, кому он может быть полезен.

Если вы нашли сообщение полезным, рассмотрите возможность подписаться на меня здесь, на Medium, чтобы никогда не пропускать новые сообщения и обновления в блоге.

Подписывайтесь и общайтесь со мной в Linkedin и Twitter.

Спасибо за чтение!