Добро пожаловать на курс блога «Освоение структур данных и алгоритмов». Я Нитеш Кумар Оджха, студент первого курса компьютерной инженерии. Я страстный технический энтузиаст с сильным желанием постоянно узнавать о новых технологиях и делиться этими знаниями с миром. Моя любовь ко всему, что связано с технологиями, началась в молодом возрасте и только продолжала расти по мере того, как я получаю степень в области компьютерной инженерии.
В этом курсе 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; }
Давайте разберемся с функциональностью каждой строки этой программы.
#include<iostream>
: Эта строка включает заголовочный файл iostream, который обеспечивает функции ввода и вывода в C++.using namespace std;
: Эта строка представляет собой директиву, указывающую компилятору использовать пространство имен std, которое содержит стандартные библиотечные функции и объекты C++.int main(){
: С этой строки начинается основная функция программы, которая является отправной точкой выполнения.cout<<“hello world”;
: В этой строке используетсяcout
(который является объектом класса iostream, мы будем изучать объекты и класс в разделе ООП курса) для вывода строки «hello world» на консоль. Оператор<<
используется для вставки строки в выходной поток.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 следующих элементов:
- Значения ASCII алфавитов от «A» до «Z» составляют от 65 до 90.
- Значения ASCII алфавитов от «a» до «z» составляют от 97 до 122.
- Значения ASCII от «0» до «9» составляют от 48 до 57.
- Значение ASCII нулевого символа ( ‘\0’ ) равно 0.
В заключение я рекомендую вам попробовать этот учебник самостоятельно и поэкспериментировать с кодом. Попробовав это самостоятельно, вы получите практический опыт и улучшите свои навыки. Вы также сможете проверить свое понимание понятий, описанных в этом руководстве, и определить области, в которых вам может понадобиться дополнительная помощь или разъяснения. Эксперименты с кодом также могут помочь вам открыть для себя новые и творческие способы решения проблем и развить свои навыки решения проблем.
Если вы нашли это руководство полезным, рассмотрите возможность оставить комментарий ниже, чтобы сообщить мне свои мысли. Ваши отзывы всегда ценны и могут помочь мне улучшить будущие руководства.
Кроме того, если вам понравился этот урок и он оказался полезным, рассмотрите возможность поставить ему лайк и поделиться с другими, кому он может быть полезен.
Если вы нашли сообщение полезным, рассмотрите возможность подписаться на меня здесь, на Medium, чтобы никогда не пропускать новые сообщения и обновления в блоге.
Подписывайтесь и общайтесь со мной в Linkedin и Twitter.
Спасибо за чтение!