През септември 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 Цикъл do…while......................................................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