Code Monkey home page Code Monkey logo

programming-basics-book-csharp-bg's Introduction

Книга "Основи на програмирането" (със C#)

Книгата "Основи на програмирането със C#" запознава читателите с писането на програмен код на начално ниво (работа с данни, проверки, цикли и методи) с езика C#.

Книга основи на програмирането със C# - корица

Изтеглете книгата

Изтеглете книгата "Основи на програмирането със C#" в PDF формат:

Варианти на книгата

Настоящата книга е достъпна в няколко варианта с различни езици за програмиране:

Информация за книгата

Кратка информация за изданието:

  • Заглавие: Основи на програмирането със C#
  • Автори: Светлин Наков и колектив
    • Основни автори: Aлександър Кръстев, Александър Лазаров, Ангел Димитриев, Васко Викторов, Венцислав Петров, Даниел Цветков, Димитър Татарски, Димо Димов, Диян Тончев, Елена Роглева, Живко Недялков, Жулиета Атанасова, Захария Пехливанова, Ивелин Кирилов, Искра Николова, Калин Примов, Кристиян Памидов, Любослав Любенов, Николай Банкин, Николай Димов, Павлин Петков, Петър Иванов, Росица Ненова, Руслан Филипов, Светлин Наков, Стефка Василева, Теодор Куртев, Тоньо Желев, Християн Христов, Христо Христов, Цветан Илиев, Юлиан Линев, Яница Вълева
    • Други участници в проекта: Марина Шидерова
  • ISBN: 978-619-00-0635-0 (9786190006350)
  • Издание: Faber Publishing, София, май 2017 г.
  • Лиценз: CC-BY-SA
  • Сорс код: https://github.com/SoftUni/Programming-Basics-Book-CSharp-BG

От къде да купя книгата на хартия?

Можете да закупите хартиено копие на книгата от СофтУни: https://softuni.bg/contacts. Свържете се по телефон или email за повече информация.

Безплатен практически курс към книгата

Приятно четене и не забравяйте да се запишете на практическия безплатен курс "Основи на програмирането" към тази книга, защото програмирането се учи с практика, писане на код и решаване на много, много задачи, а не само с четене!

programming-basics-book-csharp-bg's People

Contributors

alexanderkrustev avatar angeld55 avatar antoveravip avatar bankin avatar chrispam avatar dimo99 avatar diyantonchev avatar erogleva avatar fiher avatar gitbook-bot avatar hristochr avatar iskranikolova avatar julietaatanasova avatar kaprimov avatar lyuboslavlyubenov avatar masovski avatar nakov avatar nikol-ruseva avatar rextor92 avatar rossfilipov avatar sevan3x avatar stefkavasileva avatar tatarski avatar teodor92 avatar tonyozhelev avatar vaskoviktorov avatar vncpetrov avatar xapuu avatar yani-valeva avatar zahariyapehlivanova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

programming-basics-book-csharp-bg's Issues

Темата "Подготовка за практически изпит" няма слайдове

Записах се да пиша за "Подготовка за практически изпит", но темата няма слайдове. Прегледах една част от предните инстанции на курса и в този ден се решава някой от миналите изпити. Прегледах и упражненията от последната инстанция на курса и никъде не са давани задачи от изпитите на 20ти Ноември. Ако е ОК ще пиша за единия от тях и така ще има 2 решени изпита в книгата.

Грешка

Правоъгълник е зададен с координатите на два от своите срещуположни ъгъла (x1, y1) – (x2, y2). Да се пресметнат площта и периметъра му. Входът се чете от конзолата. Числата x1, y1, x2 и y2 са дадени по едно наред. Изходът се извежда на конзолата и трябва да съдържа два реда с по една число на всеки от тях – лицето и периметъра.

дадени по едно наред - На еднаква степен, на един ред, еднакво
дадени по едно на ред - На всеки ред по едно число.

Стратегия за бранчове и мърджове

Git Flow?

друга?

В примерите по-долу давам стандартни стратегии за разработка на софтуер със сорс контрол.

1 – No Branches
Book
└ Master
└ Source

2 – Branch for Chapter
Book
└ Master → Main integration branch
│ └ Source
└ Chapters
└ Chapter 1 → Release branch
└ Source

3 – Branch for Chapter
Book
└ Master → Main integration branch
│ └ Source
└ Chapter → Maintenance branch container
└ Chapter 1 → Maintenance branch
│ └ Source
│ └ Other Asset Folders
└ Chapter 2 → Maintenance branch
└ Source
└ Other Asset Folders

4 – Branch for Writing
Book
└ Writing → Isolated development branch container
│ └ Chapter A → Feature branch
│ │ └ Source
│ └ Chapter B → Feature branch
│ │ └ Source
│ └ Chapter C → Feature branch
│ └ Source

└ Master → Main Integration branch
└ Source

5 – Branch per Team
Book
└ Writing → Isolated development branch container
│ └ Group 1 → Team branch
│ │ └ Chapter A → Isolated branch for development
│ │ │ └ Source
│ │ └ Chapter B → Isolated branch for development
│ │ └ Source
│ │
│ └ Group 2 → Team branch
│ └ Chapter A → Isolated branch for development
│ │ └ Source
│ └ Chapter B → Isolated branch for development
│ └ Source

└ Master → Main Integration branch
└ Source

Разделяне на главите на 2 части

Всяка глава да се раздели на 2 части:

  1. Материалът от слайдовете + първата част на MS Word файла.
  2. Задачи от изпити.

Пример:
5.1 - Цикли
5.2 - изпитни задачи върху цикли

Шаблон за "Изпитни задачи: Х"

Привет,

Всички глави, покриващи изпитни задачи върху конкретна тема, би следвало да имат един и същ шаблон. Броят задачи може да се различава, но бих искал да обсъдим следните:

  • Брой задачи с подробно обяснен код?
  • Брой задачи с частичен код и подробни подсказки по стъпки? Като допълнение към горното, остатъка от кода замъглен ли ще бъде или с //TODO коментари
  • Останалите задачи - само с подсказки - стъпки, които трябва да се изпълнят, без никакъв код?

За самите задачи предлагам:

  • Да си направим собствено репозитори в гитхъб и да качим всички решения за конкретната глава
  • Да архивираме проект и да го качим в OneDrive / GoogleDrive / dropbox / etc

След което да сложим линк в края на главата - този линк ще бъде само работен и ще бъде премахнат в края на работата, но ще улесни максимално редакторите и Наков (или който създава contest @ judge)

Глава 2. Прости пресмятания с числа - изпитни задачи

Искам само да отбележа, че при Mobile/tablet таблиците се чупят. Предложението ми към автора и редактора е да се премахне последната колона "Обяснение" и да се опише, ако е нужно под таблицата. А самата таблица да държи в себе си само Вход/Изход :)

Да се направят шаблони

  1. Раздел
  2. Глава
  3. Таблица
  4. Абзац с подсилен фокус (!внимание)
  5. Страници с картинки (горе, долу, ляво, дясно)
  6. Флоу чартове и диаграми

/resources/MD-Templates

Тестове за всички задачи от всички глави в книгата

Да се качат тестовете за всички задачи в Judge системата.

Тестовете могат да се изтеглят от тук: https://github.com/Software-University/Tests?files=1

Да се адаптират тестовете, ако е необходимо.

Да се налеят тестовете в категорията на книгата: https://judge.softuni.bg/Contests/#!/List/ByCategory/96/CSharp-Book

Излишна задача в Judge contest-а за глава 4. По-сложни проверки

Здравейте,
В contests-a за четвърта глава - Complex conditions има задача. която я няма като пример в глава. Става въпрос за 5-та задача Invalid Numbers (https://judge.softuni.bg/Contests/Practice/Index/508#4):

image

Предполагам, че е авторско решение да я няма задачата, така че можете ли да я махнете от contest-a, за да не се объркват хората?

2.1 Simple Calculation Judge - подредба на задачите

Линковете от главата с 2.1 Simple Calculation се разминават от задачите в Judge, защото 13 задача е на 3-то място. Тя ли ще се премести или да поправя линковете на всички задачи?

Грешна буква

https://github.com/SoftUni/Programming-Basics-Book-CSharp-BG/blob/master/chapter-2-simple-calculations-exam-problems.md

Както и в предходните задачи, можем да разделим решението на три подзадачи:

Прочитане на входните данни.
Извършване на изчисленията.
извеждане на изход на конзолата.

Защо последното е със малка буква??

Нов Judge contest

Да се направи нов judge contest.

Ще има по един judge contest за всяка книга:

  • за C# книгата
  • за Java книгата
  • за Python книгата

Секция "Пищов"

Секция "Пищов" (CheatSheet / справочник) в края на всяка глава (преди задачите).

Глава "Хитрости и хакове"

Глава "Хитрости и хакове" ще съдържа ей-такива неща:

  • Именуване на проекти, файлове, променливи
  • Shortcuts in VS, примерно [Ctrl+F] [Ctrl+F], Comment code, ...
  • Code snippets - как да си направим Code Snippet: cri -> int i = int.Parse(Console.ReadLine());
  • Дебъгване на код - работа с [F10], [F10] и breakpoints
  • Форматиране на кода - препоръки
  • Cheat sheet: така се прави цикъл, така се прави проверка, така се форматира с 2 десетични цифри.

Граматична грешка

https://github.com/SoftUni/Programming-Basics-Book-CSharp-BG/blob/master/chapter-1-first-steps-in-programming.md

Като браузърът ни играе главната роля по обработката на зададените в програмата команди.
1 Какъв е смисъла на паразитната дума КАТО в това изречение?
2 Браузърът ни - какъв е смисъла на частицата ни в изречението?
Браузърът играе главната роля по обработката на зададените в програмата команди.

Редакция на глава

Понеже целим книгата да я уеднаквим, можем тук да си пишем някакви общи концепции, тъй като аз не видях нещо определено само за редакторите. Какво ще кажете?

Пример:

След всяка задача в края на задачата да изписваме точно този текст, защото видях, че някои са в началото

Задача: Числата от N до 1 в обратен ред

...
...
...
Тествайте вашето решение тук: https://judge.softuni.bg/Contests/Practice/Index/514#1

Задача: Числата от 1 до 2^n с for-цикъл

Секция "Работа с judge"

Да се сложи секция "Работа с judge" в края на глава "Първи стъпки в програмирането".

Magic Dates Memory Limit Issue

Здравейте,

За главата "Задачи за шампиони" съм подбрал Magic Dates задачата (https://judge.softuni.bg/Contests/Practice/Index/6#3).

Проблемът ми е, че на "най-големия" тесткейс решението ми гърми с Memory Limit. Проблемът е в смятането на "тежестта" + toString извикването за дадена дата(по мое мнение). Пробвах различни варианти (включващи само знанията, които курсистите би трябвало да имат от курса, т.е. без масиви или някакви други неща) и освен да хардкодна самата сметка (тъй като тя ще бъде еднаква всеки път) нищо друго не даде 100 точки, а на мен не ми харесва да дам такова решение и по-скоро, ако не успея да "смъкна паметта" ще сменя задачата.
Приемам предложения какво мога да подобря, за да мине задачата.

Пействам направо кода, защото не мога да кача .cs файл.
Закоментираните неща съм ги пробвал и не работя

int startYear = int.Parse(Console.ReadLine());
int endYear = int.Parse(Console.ReadLine());
int magicWeight = int.Parse(Console.ReadLine());

bool printed = false;

DateTime currentDate = new DateTime(startYear, 1, 1);

while (currentDate.Year <= endYear)
{
    int dateWeight = 0;
    //string dateString = "" +
    //    currentDate.Day +
    //    currentDate.Month + 
    //    currentDate.Year;
    string dateString = currentDate.ToString("dMyyyy");
    int dateLength = dateString.Length;
    //int dateNum = int.Parse(dateString);

    //int d1 = currentDate.Day / 10;
    //int d2 = currentDate.Day % 10;
    //int d3 = currentDate.Month / 10;
    //int d4 = currentDate.Month % 10;
    //int d5 = (currentDate.Year / 1000) % 10;
    //int d6 = (currentDate.Year / 100) % 10;
    //int d7 = (currentDate.Year / 10) % 10;
    //int d8 = (currentDate.Year / 1) % 10;
    
    // This works.
    //dateWeight = d1 * (d2 + d3 + d4 + d5 + d6 + d7 + d8) +
    //             d2 * (d3 + d4 + d5 + d6 + d7 + d8) +
    //             d3 * (d4 + d5 + d6 + d7 + d8) +
    //             d4 * (d5 + d6 + d7 + d8) +
    //             d5 * (d6 + d7 + d8) +
    //             d6 * (d7 + d8) +
    //             d7 * d8;

    for (int i = 0; i < dateLength - 1; i++)
    {
        //int multiplier = (dateNum / ((int)Math.Pow(10, dateLength - i - 1))) % 10;
        for (int j = i + 1; j < dateLength; j++)
        {
            //int digit = (dateNum / ((int)Math.Pow(10, dateLength - j - 1))) % 10;
            //dateWeight += multiplier * digit;

            dateWeight += (dateString[i] - '0') * (dateString[j] - '0');
        }
    }

    if (dateWeight == magicWeight)
    {
        Console.WriteLine(currentDate.ToString("dd-MM-yyyy"));
        printed = true;
    }

    currentDate = currentDate.AddDays(1);
}

if (!printed)
{
    Console.WriteLine("No");
}

Тестване на програмите описани в книгата

Предлагам всеки да си направи едно репозитори със решените задачи, за да не си играят редакторите да пишат кода наново, ами директно да си го тестват (добре е да поглеждат и дали съвпада с този в книгата). Аз направих такова в собствения си профил и го споделих с редактора си ( https://github.com/tonyozhelev/programming-basics-problems/tree/master ), но ако искате, може да направим някъде едно общо и всеки да слага там кодовете, които е написал.

Обновяване от gitbook към github

Има някакъв проблем при обновяването от gitbook към github. Промените не се отразяват тук. Възможно е да нещо свързано с права.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.