diff options
Diffstat (limited to 'week01')
| -rw-r--r-- | week01/exercise01.cpp | 86 | ||||
| -rw-r--r-- | week01/exercise02.cpp | 10 | ||||
| -rw-r--r-- | week01/exercise03.cpp | 7 |
3 files changed, 103 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; +} diff --git a/week01/exercise02.cpp b/week01/exercise02.cpp new file mode 100644 index 0000000..68bcebe --- /dev/null +++ b/week01/exercise02.cpp @@ -0,0 +1,10 @@ +#include <iostream> + +int main() { + /* Оригиналния замисъл на тази задача беше да приемате от входа знак, да го "конвертирате" към число (inputCharacter - '0') и да изкарате това. + * Само един човек го направи така, повечето просто го приеха като число и го умножиха по две. + * Считайки как съм написал условието, втория популярен вариант има много повече логика, затова за сега го правя "официалното" решение */ + int inputNumber; + std::cin >> inputNumber; + std::cout << (inputNumber * 2); +} diff --git a/week01/exercise03.cpp b/week01/exercise03.cpp new file mode 100644 index 0000000..bb08592 --- /dev/null +++ b/week01/exercise03.cpp @@ -0,0 +1,7 @@ +#include <iostream> + +int main() { + int fahrenheit; + std::cin >> fahrenheit; + std::cout << ((fahrenheit - 32) * 5 / 9); +} |
