БУРГАСКИ  СВОБОДЕН УНИВЕРСИТЕТ
ИНСТИТУТ ПО МАТЕМАТИКА И ИНФОРМАТИКА - БАН

НИКОЛАЙ  КИРОВ
 

Сборник
от учебни материали
по
ВЪВЕДЕНИЕ В ПРОГРАМИРАНЕТО
(Принципи на програмирането със С++, част I)
 
 

Деметра, 2003

"В продължаващия дебат, дали е необходимо да се учи С
преди С++, аз съм твърдо убеден, че е по-добре
да се започне направо от С++."
Бьорн Строустроп
Рецензент: ст.н.с. д-р Юлиана Пенева

© Николай Киров Киров, автор, 2003
© Издателство "Демократични традиции - Деметра", 2003

ISBN 954-9526-15-1


Съдържание
I. Предговор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   4 
II. Лекции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 1. Увод. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 2. Основни типове данни. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 3. Низове. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 4. Обекти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 5. Условни оператори - І . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 6. Условни оператори - ІІ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 7. Функции - І. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 8. Функции - ІI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 9. Цикли. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10. Тестване и настройка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11. Класове. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12. Вектори. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5+1
5+1
11+1
20+1
23+1
30+1
37+1
43+1
49+1
57+1
69+1
73+1
85+1
III. Курсови задачи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Първа задача [Аритметика, графични класове]. . . . . . . . . . . . .
Втора задача [Условен оператор, функции]. . . . . . . . . . . . . . . .
Трета задача А [Класове]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Трета задача Б [Условен оператор, функции, цикли, вектори]
98+1
98+1
101+1
104+1
107+1
IV. Тестове. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Първи тест. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Втори тест. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Трети тест. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112+1
112+1
115+1
117+1
V. Конспект. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120+1
VI. Точкова система за оценка знанията и уменията на студентите 122+1
VII.  Литература на български език за С++, алгоритмите и програмирането . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  124+1


I. Предговор


Минете през тясната порта. Защото тесни са вратите и стръмни
пътищата, които водят към истината. А широка е вратата
и гладък пътят, който ще ви погуби.
                                            Исус Христос, "Проповед на планината"


   Езикът С++ се утвърди като широко използван език за програмиране. За това допринасят няколко фактора:
 *  С++ е обектно-ориентиран език.
 *  През 1998 г. е утвърден стандарт на езика.
 *  Разработени са бързи компилатори, които генерират ефективен код.
 *  Съществуват удобни среди за програмиране.
Затова С++ е предпочитаният език за изучаване в университетите.
    Сборникът е предназначен главно за студентите от БСУ, специалности Информатика и компютърни науки, Компютърни системи и технологии и Комуникационна техника и технологии. Разбира се, сборникът ще бъде полезен и на всички, които изучават програмиране с езика С++. Електронен вариант на сборника се намира в Интернет на адрес:
http://www.math.bas.bg/~nkirov/2003/book1.html
    Учебният материал е по курса лекции на автора Въведение в програми- рането (или Програмиране и използване на компютри). Тъй като този курс следва учебника на К. Хорстман "Принципи на програмирането със С++" [1], то в лекциите на сборника са използвани материали от този учебник. Повечето примерни програми са също от [1].  Темите на лекциите обхващат следните въпроси: увод, основни типове данни, обекти, условни оператори, функции (примерно 30 часа лекции и 30 часа лаб. упражнения), цикли, тестване и настройка, класове и вектори (още 15 часа лекции и 30 часа лаб. упражнения).
    Курсовите задачи и тестовете са необходимо допълнение към курса по програмиране. Те дават възможност на преподавателя да провежда текущ контрол и активизира студентите през семестъра.
    Следващите теми по програмиране - масиви, потоци, модули, наследяване и др. ще бъдат включени в аналогичен сборник.


II. Лекции

   Лекциите са организирани по теми. Главно място във всяка тема е отделено на примери - програми, с които се илюстрират новите идеи и понятия. Някои примери представляват единични оператори или части от програми, други - цели програми. На първия ред на всяка цяла програма е написано (като коментар) името на файла, съдържащ текста на програмата. Тези файлове могат да се вземат от Интернет: http://www.math.bas.bg/~nkirov/2003/book1_cpp.zip
След повечето текстове на програми са дадени и възможни входове и изходи - резултат от работата на програмата. Например
 

 The investment doubled after 11.5833 years.

    На много места стилът на изложението е телеграфен и не претендира за изчерпателност. Затова представеният сборник в никакъв случай не може да замени работата с отличния учебник [1].