CSCB110 Лабораторни занятия по програмиране
Анотация:
Основна цел на курса е да се овладеят принципите на програмирането и синтаксисът на езиците С и С++. Изясняват се основните структури за управление и принципите на модулното програмиране чрез езика С. Запознаването с условни оператори, числови сравнения и булеви операции е важна частот всеки начален курс по програмиране. Особено внимание се отделя на стратегии при обработване на входа и изхода и на справяне с грешки при вход. Следва запознаване с функции, концепция за предаване на параметри, документиране на функции, област на действие на променливите, рекурсивни функции.
Обектно-ориентираните езици за програмиране са основно средство за изграждане на големи и сложни софтуерни проекти. В това отношение езикът С++ е естествено разширение на С. Понятието за клас се въвежда чрез идеята за дефиниран от програмиста тип, капсулиращ данни и функции. Наследяването се разглежда като контролирано средство за разширяване на съществуващи класове.
Цели:
Да създаде у студентите необходимия подход при създаване на прости програмни конструкции, написани на езика C++. Запознаване с основни елементи на средата за програмиране Visual Studio 2012.
Преподавател(и):
гл. ас. Марияна Райкова д-р
гл. ас. Христина Костадинова д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
Основите на програмирането с езика С: стандартни типове данни, структури за управление, функции, масиви и структури.
Основни понятия от езика С++: класове, спецификатори за достъп, конструктори и декструктори, предефиниране на функции и операции, наследяване.
2) могат:
Да пишат прости програми на езика за програмиране С++, използвайки среда за програмиране
Предварителни изисквания:
Студентите да имат основни познания по компютърна грамотност
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
1.Запознаване със средата за програмиране. Създаване на проект за конзолно приложение. Директиви за включване на библиотеки. Програма с линейна структура. Примерни задачи: “Hello”, извеждане на символни и текстови литерали, въвеждане и извеждане на текст и числа.
2. Аритметични изрази – особености. Неявно и явно преобразуване на типове. Примерни задачи: Целочислено делене с и без запазване на дробната част на резултата, проверка за делимост на цели числа, получаване на псевдослучайни числа – цяло в зададен интервал, реално в интервал [0,1).
3.Структури за управление. Примерни задачи: обработка на въвеждани от конзолата числови редици – минимален и максимален елемент, брой, сума, произведение, средно аритметично.
4. Масиви. Примерни задачи: обработка на числови редици, предварително въведени от конзолата в едномерен масив, вариант на същата задача с конзолно меню и многократно изпълнение.
5.Указатели. Динамични масиви
6. Решаване на задачи за масиви и редове
7.Функции за работа със символни низове в С. Inline функции. Рекурсивни функции. Задачи
8.Разделно компилиране. Създаване на заглавни файлове. Поделяне на константи и променливи между модули. Задачи
9.Функции. Примерни задачи: сортиране на числов масив чрез пряка селекция. Библиотека cmath (math.h). Задачи
10. Структури. Примерни задачи: запълване на масив от дефинирана структура и сортиране на масива по различни полета.
11. Класове. Примерни задачи: клас “двумерен вектор” с операции, представени чрез функции.
12. Класове. Примерни задачи: клас “двумерен вектор” с операции, представени чрез предефинирани оператори.
13. Решаване на задачи с функции и класове
Литература по темите:
Основна
1. Шилдт Х., Практически самоучител по С, Софтпрес, 2001
2. Шилдт Х., Практически самоучител по С++, Софтпрес, 2001
3. Eckel B., Thinking in C++, 2nd edition, v.1,v2, http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
Допълнителна
1. cplusplus.com - The C++ Resources Network - http://www.cplusplus.com/
Средства за оценяване:
ПИСМЕНИ ЗАДАЧИ 40%
ПРАКТИЧЕСКА ЗАДАЧА 50%
ПОРТФОЛИО 10%