aboutsummaryrefslogtreecommitdiff
path: root/week01/exercise01.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'week01/exercise01.cpp')
-rw-r--r--week01/exercise01.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/week01/exercise01.cpp b/week01/exercise01.cpp
new file mode 100644
index 0000000..f83dce4
--- /dev/null
+++ b/week01/exercise01.cpp
@@ -0,0 +1,86 @@
+/* Кодът е просто текст, и то не текст като на Word, където може да имаш размер на шрифта, цветове, ...
+ * Това е най-стария стандарт за текст: само запазва конкртние букви и нищо повече, всичко останало идва от програмата с която гледате кода.
+ *
+ * Компютрите не могат да работят с произволен "литературен" текст, твърде е сложно, затова пишем текст в строго определен формат, който е лесен за компютъра.
+ * Синтаксис е начина, тоест специфичкните правила, по които пишем код.
+ */
+
+// Коментар е, както името подсказва, част от кода в която се пише произволен текст с цел да помогне по някакъв начин на човека, който чете кода.
+// В C++ имаме два начина да пишем коментари:
+// или с //, като коменара започва след наклонените черти и продължава до края на реда
+// или с /* текст */, като нашия коментар се намира по средата между тях (тоест, на мястото на "текст")
+// /* може да започне навсякъде и */ може да завърши навсякъде, включително по средата на код, примерно:
+// int a = 2 /* this is a comment */ + 5 /* this is a comment */
+
+// В първа задача се нуждаем от начин да изкараме текст на конзолата.
+// Точните механизми и начини, по които това се случва са твърде сложни и дълги, затова ще използваме библиотека:
+// библиотека е някаква съвкупност от код, която ние просто използваме за дадена
+// Тоест, вместо ръчно да имплементираме стотиците или хилядите редове код, нужни за вход и изход от конзолата, използваме библиотека, която предоставя
+// някакъв удобен начин да извършим това.
+//
+// Как вкарваме библиотеки?
+// Използваме синтаксиса "#include <ИМЕ>", защо точно така трябва да го пишем ще разберете в бъдеще, за сега единственото важно е, че така се прави, като
+// ИМЕ замествате с името на съответната библиотека.
+// Също един важен детайл, поне за сега, винаги пишете това нещо в началото на файла, тоест винаги вкарвайте библиотеки най-отгоре на файла.
+//
+// Библиотеката, която ще използваме за вход и изход в този курс се казва "iostream".
+// Нека да я вкараме:
+#include <iostream>
+
+// Супер, обаче все още трябва да напишем кода за изкарване на текст.
+// За разлика от други езици, в C++ трябва да предоставим начало на програмата, тоест когато пуснем компилираната програма, изпълнението на кода ще започне
+// от това начало.
+// Винаги началото е една функция наречена "main".
+
+// Твърде общо казано, функциите предоставят начин да групираме код под някакво име.
+// Може да си го представите като някаква кутия, в която има код, и винаги може да кажете "изпълни кода в тази кутия".
+// В бъдеще ще си говорим за функции както трябва, затова за момента само това е нужно.
+
+// Тази начална функция се пише така:
+int main()
+// Важно е да спомена, че в C++ "празните" знаци са от без значение, тоест спокойно може да я напишем като
+// int main ()
+// или пък
+// int
+// main
+// ()
+// имайки предвид, че зачитаме за празни знаци спейсове, нови редове и табове
+// Това обаче не е съвсем изпълнено за "#include <ИМЕ>"
+
+// След това имаме { }, отново не зачитаме празните знаци.
+// С къдрави скоби обозначаваме "code block", тоест някакво парче код.
+// Винаги (абе не е баш винаги, ама за момента да приемем това) в тях пишем нашия код.
+// Тоест, всичко до момента е "общ" синтаксис, с който подготвяме всичко нужно да пишем код.
+
+// Винаги след дефиницията на функция, "int main()", трябва директно да следва един блок.
+// С "int main()" дефинираме "името" на функцията, а с блокът дефинираме кодът в тази функция.
+{
+ // Най-често със всеки блок идентираме кода навътре, тоест в началото на всеки ред слагаме малко празно място.
+ // И без това програмата ще се компилира, но е общоприета конвенция сред програмистите.
+
+ // Всеки (пак, не е баш всеки, но ще видите по-подробно в бъдеще) ред код се завършва с ;
+
+ // Ок, супер, тук трябва да изкараме нашето съобщение на конзолата.
+ // За момента просто приете синтаксиса така както е, в бъдеще ще се изяснят някои подробности и ще разберете от къде идват тези имена и синтаксиси.
+ // За изкарване използваме синтаксиса "std::cout << НЕЩО", като std::cout директно идва от нашата библиотека iostream, а пък << е специален оператор, който
+ // в сутацията (на практика! отново, това е по-абстрактно и интуитивно обяснение, което малко пренебрегва реалността) казва "вкарай това от дясно в това от ляво".
+ // Един вид, вкарай НЕЩО в "std::cout", като std::cout e чудесията която се оправя с изкарването на текст в конзолата.
+
+ // Друго важно свойство е, че може да има няколко "<< НЕЩО" едно след друго, тоест "std::cout << НЕЩО1 << НЕЩО2 << НЕЩО3"
+ // Разбира се, това е еквивалентно на: "std::cout << НЕЩО1", "std::cout << НЕЩО2", "std::cout << НЕЩО3", тоест можем да ги напишем поотделно
+
+ // Ок, знаем че трябва да напишем "std::cout << НЕЩО", обаче как да вкараме нашето съобщение, а именно Hello World!, в код?
+ // В C++ синтаксиса за текст (с повече от една буква) е: "текст"
+ // Обаче на това му казваме низ (string на анлийски), главно защото низ може да бъде всяко съчетание от букви, докато текст е по-литературен термин.
+ // Готово, кодът който трябва да напишем е
+ // std::cout << "Hello, World!";
+
+ // единствената подробност е, че ние искаме това да бъде само на един ред, тоест не искаме да има нещо до него.
+ // Най-лесния начин да направим това е да вкараме специален знак (специална "буква"), която определя нов ред.
+ // Тоест, изписваме Hello, World! и отиваме на нов ред, така всичко следващо, което изпишем на екрана, ще е на нов ред.
+ // По принцип, най-често се използват буквите "\n" в низове, за да покажем нов ред, обаче това не е съвсем универсално (поне как точно работи)
+ // затова iostream ни предоставя нов обект (ново нещо), който предоставя правилния знак за нов ред, независимо от ОС.
+ // Той се казва "std::endl" и просто го "вкарваме" в std::cout както всяко друго нещо
+
+ std::cout << "Hello, World!" << std::endl;
+}