/* Кодът е просто текст, и то не текст като на Word, където може да имаш размер на шрифта, цветове, ... * Това е най-стария стандарт за текст: само запазва конкртние букви и нищо повече, всичко останало идва от програмата с която гледате кода. * * Компютрите не могат да работят с произволен "литературен" текст, твърде е сложно, затова пишем текст в строго определен формат, който е лесен за компютъра. * Синтаксис е начина, тоест специфичкните правила, по които пишем код. */ // Коментар е, както името подсказва, част от кода в която се пише произволен текст с цел да помогне по някакъв начин на човека, който чете кода. // В C++ имаме два начина да пишем коментари: // или с //, като коменара започва след наклонените черти и продължава до края на реда // или с /* текст */, като нашия коментар се намира по средата между тях (тоест, на мястото на "текст") // /* може да започне навсякъде и */ може да завърши навсякъде, включително по средата на код, примерно: // int a = 2 /* this is a comment */ + 5 /* this is a comment */ // В първа задача се нуждаем от начин да изкараме текст на конзолата. // Точните механизми и начини, по които това се случва са твърде сложни и дълги, затова ще използваме библиотека: // библиотека е някаква съвкупност от код, която ние просто използваме за дадена // Тоест, вместо ръчно да имплементираме стотиците или хилядите редове код, нужни за вход и изход от конзолата, използваме библиотека, която предоставя // някакъв удобен начин да извършим това. // // Как вкарваме библиотеки? // Използваме синтаксиса "#include <ИМЕ>", защо точно така трябва да го пишем ще разберете в бъдеще, за сега единственото важно е, че така се прави, като // ИМЕ замествате с името на съответната библиотека. // Също един важен детайл, поне за сега, винаги пишете това нещо в началото на файла, тоест винаги вкарвайте библиотеки най-отгоре на файла. // // Библиотеката, която ще използваме за вход и изход в този курс се казва "iostream". // Нека да я вкараме: #include // Супер, обаче все още трябва да напишем кода за изкарване на текст. // За разлика от други езици, в 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; }