През септември 2017 г. излезе от печат нова книга от поредицата за изучаване на съвременните методи и средства за програмиране. Представлява увод в програмирането детайлно илюстриран с примери на езика С#. Многобройните подробно обяснени учебни задачи дават възможност да се прилага методът за обучение чрез практика (learning by doing). Броят на задачите и тестовете надхвърля 450.

Учебникът е предназначен за подпомагане на обучението по програмиране във ФМИ на ПУ „П. Хилендарски“, учителските квалификации и преквалификации, математическите гимназии, техникумите със засилено изучаване на информатика, ученическите школи по компютърна информатика, а така също за подготовка на  кандидатстудентски изпити по информатика. Може да се използува и от всички, които желаят да усвоят основите на програмирането на С#. Читателите, овладели тези умения, лесно биха ги приложили и при други езици за програмиране.

Тъй като голяма част от читателите е запозната с езика С++, то в много описания на синтактични конструкции и конкретни задачи се прави сравнение с този език. Описани са възможните „подводни камъни“, на които може да се натъкне новакът в програмирането на С#, „мислещ“ на С++. Нещо повече – тук са дадени решения на задачите до 13 глава вклюително от учебника по програмиране на проф. Хр. Крушков, използващ като работен език С++. От тази гледна точка ръководството е полезно за тези, които искат бързо да „превключат“ от езика С++ на езика С#.

Средата, която е ползвана за създаване и тестване на учебните програмни текстове на С# е SharpDevelop Version: 3.2.1.6466.

В настоящото издание не се разглеждат структури, въпреки наличието им в С#. Присъствието им в езика е свързано предимно с идеята за по-удобна миграция на програми от С/С++ към С#. В следваща книга ще въведем читателите в концепциите на обектно-ориентираното програмиране. Задаите решени със структури, там ще бъдат демонстрирани с помощта на класове и обекти.

Отделно издание ще бъде посветено на задачи и тестове от кандидатстудентски изпити по информатика в Пловдивския универитет "Паисий Хилендарски". В последните години значително нарастна интересът към професионално направление 4.6 "Информатика и компютърни науки" във Факултета по математика и информатика при ПУ "Паисий Хилендарски". Предварителната подготовка за този изпит добива все по-голямо значение, защото въпреки постоянно увеличаващия се прием в направлението, много кандидати остават извън класирането. За по-добра подготовка спомагат и кандидатстудентските курсове организирани от ФМИ, които се провеждат ежегодно в периода януари-май.

Тук може да се запознаете със съдържанието на практическото ръководство по програмиране на С#.

СЪДЪРЖАНИЕ

Предговор.................................................................................... 3

1.       Основни понятия в програмирането............................. 5

1.1     Създаване на компютърна програма на езика C#................. 5

1.1.1       Среда за програмиране............................................... 5

1.1.2       Основни знакове......................................................... 6

1.1.3       Идентификатори (имена)............................................. 6

1.1.4       Ключови думи............................................................. 6

1.1.5       Величини.................................................................... 7

1.1.6       Класове и обекти........................................................ 7

1.1.7       Обща структура на програмата................................... 9

1.1.8       Изрази....................................................................... 9

1.2     Скаларни типове данни......................................................10

1.2.1       Стандартни скаларни типове данни............................11

1.2.2       Целочислени типове..................................................11

1.2.3       Приближени (реални) типове.....................................14

1.2.4       Тип с фиксирана десетична точка..............................15

1.2.5       Логически (булев) тип...............................................15

1.2.6       Знаков тип................................................................16

1.3     Съвместимост...................................................................17

1.3.1       Неявно преобразуване на типове..............................17

1.3.2       Явно преобразуване на типове.................................18

1.4     Програми за изчисляване на изрази...................................18

1.4.1       Приоритет на операциите и асоциативност................18

1.4.2       Въвеждане и извеждане на данни.............................19

1.5     Задачи и упражнения........................................................21

2.       Оператори.........................................................................24

2.1     Прости оператори.............................................................24

2.2     Структурирани оператори..................................................27

3.       Линейни алгоритми.........................................................29

4.       Разклонени алгоритми..................................................36

4.1     Логически изрази.............................................................36

4.2     Оператор if......................................................................40

4.3     Оператор за избор на варианти switch..............................47

5.       Оператор за цикъл for.................................................53

5.1     Цикли for със стъпка различна от 1................................55

5.2     Повече управляващи променливи......................................58

5.3     Вложени цикли................................................................60

6.       Цикли с условия. Итерационни алгоритми...............65

6.1     Цикли с условия..............................................................65

6.1.1       Цикъл while ............................................................65

6.1.2       Цикъл dowhile......................................................66

6.2     Оператори break и continue..............................................71

6.3     Интерполация. Рекурентни редици....................................72

6.4     Безкрайни суми...............................................................74

6.5     Задачи за самостоятелно решаване.................................75

7.       Явно изброим тип данни..............................................78

7.1     Операции на ЯИТ.............................................................79

7.2     Задачи и упражнения......................................................80

8.       Методи.............................................................................84

8.1     Структура на метод.........................................................84

8.2     Формални и фактически параметри..................................88

8.3     Област на действие на компонентите в рамките на Класа.92

9.       Рекурсия. Рекурсия и итерация..................................106

9.1     Рекурсивни методи.........................................................106

9.2     Взаимно–рекурсивни методи...........................................108

9.3     Механизъм на действие на рекурсията............................108

9.4     Примерни задачи, които се решават с рекурсия..............109

9.5     Връзка между рекурсия и итерация................................116

10.     Общи задачи и тестове..............................................120

10.1        Задачи.....................................................................120

10.2        Тестове....................................................................129

11.     Масиви..........................................................................132

11.1        Деклариране на масив...............................................132

11.2        Задачи с едномерни масиви (вектори).......................134

11.2.1          Обхождане на масив с оператор foreach.........135

11.3        Задачи с двумерни масиви (матрици).........................149

11.4        Общи задачи.............................................................160

12.     Сортировка и търсене. Комбинаторика...................166

12.1        Сортировка...............................................................166

12.1.1          Метод на простото вмъкване.............................167

12.1.2          Метод на мехурчето..........................................169

12.1.3          Сортировка чрез клатене (шейкър сортировка)..170

12.1.4          Метод на пряк избор (пряка селекция)..............171

12.1.5          Сортировка на Шел..........................................172

12.1.6          Бърза сортировка.............................................173

12.1.7          Метод на пирамидата.......................................174

12.2        Двоично търсене в подреден масив...........................176

12.3        Комбинаторика.........................................................179

12.3.1          Пермутации......................................................180

12.3.1.1        Алгоритъм за лексикографско пораждане......180

12.3.1.2        Алгоритъм с най-малък брой трансформации.182

12.3.2          Пораждане на всички подмножества.................184

12.3.3          Комбинации без повторения..............................185

13.     Знаков низ....................................................................192

13.1        Класът String...........................................................192

13.2        Операции с низове....................................................192

13.2.1          Присвояване на стойност на текст. променлива.192

13.2.2          Конкатенация (слепване)..................................192

13.2.3          Сравнение ( ==, != )......................................193

13.2.4          Въвеждане и извеждане на данни от текстов тип..193

13.2.5          Достъп до отделни компоненти (знакове) на низ...193

13.3        Методи за работа с низове...........................................194

13.3.1          Дължина (брой знакове)......................................194

13.3.2          Извличане на подниз...........................................194

13.3.3          Търсене на първи подниз.....................................194

13.3.4          Търсене на последен подниз................................194

13.3.5          Преобразуване в главни или редовни букви..........194

13.3.6          Премахване на специални знакове.......................195

13.3.7          Конкатенация......................................................195

13.3.8          Замяна на подниз................................................195

13.3.9          Вмъкване на низ..................................................195

13.3.10        Изтриване на подниз...........................................195

13.3.11        Логически методи...............................................195

13.3.12        Сравнение..........................................................196

13.3.13        Преобразуване на величина в низ.......................197

13.3.14        Преобразуване на низ във величина от друг тип..197

13.3.15        Сегментиране (разбор) на низ, чрез задаване на множеството от разделители 197

13.3.16        Установяване на принадлежност.........................198

13.4        Тестове и задачи........................................................199

14.     Общи задачи.................................................................213

14.1        Задачи за контролни работи.......................................213

14.2        Задачи за семестриални изпити..................................218

14.3        Други задачи.............................................................227

14.4        Тест..........................................................................230

СЪДЪРЖАНИЕ..........................................................................251