Програмиране на C++
Алгоритми - видове, свойства и средства за описание. Основни принципи и методология за създаване на потребителско приложение в алгоритмичния език C/C++. Описание на работната среда.
1. Алгоритъм - определение и свойства:
а) определение:
Алгоритъм е последователността от стъпки за решаване на определена задача.
Блок-схема - универсален език за описание на алгоритмите. Използват се блокови диаграми.
Пример 1: Да се състави алгоритъм и блок-схема за решаване на задачата за пресичане на улицата от пешеходец.
б) свойства на алгоритъма:
- определеност;
- формалност;
- крайност;
- резултатност;
- масовост.
Пример 2: Да се определи по-голямото от двете числа a и b.
в) видове алгоритми:
- линейни;
- разклонени;
- циклични;
г) езици за програмиране:
Определение:
Алгоритмичен език - съвкупност от команди и правила за използването им при реализиране на алгоритъм за изпълнение на дадена задача от изчислителна машина (компютър).
Класификация на езиците за програмиране:
според начина на изпълнение на програмата:
- интерпретатори;
- компилатори;
според предназначението им:
- универсални;
- специализирани;
според изразните средства:
- алгоритмични;
- логически;
според зависимостта от операционната система и микропроцесора:
- машинно зависими;
- машинно независими;
2. Основни принципи и методология за създаване на потребителско приложение в алгоритмичния език C/C++. Описание на работната среда.
а) история на създаването на езика С
през 1970 г. Томпсън създава езика "В" като част от UNIX. През 1972 г. Денис Ричи създава езика "С" като развитие на "В" за PDP-11. Първоначално се е използвал като системен интерпретатор в UNIX. В средата на 80-години се създава C++, който представлява надмножество на С - с реализация на класове.
Вид на езика: машинно ориентиран, с елементи на високо ниво
С++ - обектно ориентиран (много високо ниво)
Цели при създаването на езика С :
1. П р е н о с и м о с т на програмите - независимост от архитектурата и нейната промяна
2. Ефективно компилиране (близост до машинните кодове)
3. Краткост при записване текста на програмата
Ориентация на езика: първоначално свързан с операционната система UNIX, използва се основно за разработване на операционни системи, като по-късно са добавени са други възможности (добавят се и сега) за разширяване на неговото приложение
Обща структура на езика
- набор от изразни средства
- библиотеки от функции за решаване на конкретни задачи (включително и входно изходните операции)
Visual C++ е част от средата за програмиране Visual Studio на Microsoft - създадена през 1998 г. и обновявана непрекъснато.
Версия 6.0 включва:
- Microsoft Visual C++ - среда за програмиране;
- Microsoft Visual Basic - среда за програмиране;
- Microsoft Visual J++ - среда за програмиране с използване на Java;
- Microsoft Visual InterDev - за програмиране в интернет среда;
- Microsoft Visual SourceSafe - система за контрол на изходния код. Използва се от работни групи при разработване и тестване на приложения;
- Microsoft Visual FoxPro - система за управление на база данни;
- Microsoft Developer Network (MSDN) - библиотека с помощна информация за програмисти.
б) общ вид на визуална среда за програмиране - Microsoft Visual C++ 6.0

Проект - колекция от взаимосвързани файлове, съдържащи изходен код (source code), които се компилират и свързват, за да се създаде една изпълнима програма (или DLL - динамична библиотека) за Windows. Файловете на всеки проект се съхраняват в отделна директория. В състава на проекта могат да се включват и други файлове - например h-файлове (съдържащи готови декларации на данни и функции).
Интегрираната среда Visual C++ включва:
- редактор на код и ресурси;
- компилатор на код и ресурси;
- линкер;
- дебъгер;
- система за помощна информация.
Редакторът на код от своя страна се състои от:
- ClassView - редактор, който показва структурата на програмата - функции, класове, променливи;
- FileView - редактор, който показва структурата на проекта - съвкупността от файлове, които са формират проекта;
- ResourceView - редактор на ресурси: менюта, бутони, икони, диалози и други, които се използват в проекта.
Компилатор - 32 битов, поддържа C и C++, създава приложения под Windows-95/98/NT. До създаването на изпълним файл всеки проект преминава през три фази:
- синтактитеска проверка на кода на програмата;
- фаза на компилиране (при нея се създава обектен код, при който все още няма връзка между имената на променливите и функциите с техните действителни адреси);
- фаза на свързване (при нея всички данни и функции приемат действителни адреси и се получава изпълнимия EXE файл за непосредствено стартиране).
Линкер - обработва обектния код, чете допълнителна информация от библиотечните файлове и създава приложението за конкретната операционна система.
Дебъгер - трасираща програма. Изпълнява кода стъпка по стъпка, показва временните стойности на всички променливи. Използва се за лесно откриване и отстраняване на логически грешки.
Процес на изграждане на едно приложение на Visual C++
Начини за създаване на приложения:
- Win32 Console Application - конзолно приложение (работи без събития, резултатите се извеждат в текстов прозорец);
- Win32 Application - приложение работещо със събития;
- MFC AppWizard (exe) - приложение, използващо обектни структури на Microsoft (Microsoft Foundation Classes);
Метод за създаване на конзолно приложение (вариант първи):
От менюто File се избира New. Избира се групата "Projects", след което Win32 Console Application. В полето "Project name:" се въвежда името на проекта (в случая името на изпълнимия файл). В полето "Location:" се въвежда (или избира с бутона "...") директорията, в която да се създаде проекта. Накрая се потвърждава с бутона "OK".
На появилия се диалог (Step 1 of 1) се избира вида на проекта:
- An empty project (празен проект);
- A simple application (прост проект);
- A "Hello, World" application (проект, който извежда съобщението "Здравей, свят");
- An application that supports MFC - проект, който използва механизма на MFC.
Пример за "празен проект" от тип Win32 Console Application:

За всеки проект визуалната среда създава следните файлове със следните разширения:

*.cpp - файл с текста на програмата;
*.dsp - описание на проекта (кои файлове са в състава на проекта и други);
*.dsw - описание на работната среда;
*.ncb - двоичен файл с данни за проекта;
*.opt - двоичен файл с данни за проекта;
*.plg - резултат от компилирането на проекта (в HTML формат);
*.h - файл с дефиниции на C, допълнително включен в проекта;
ReadMe.txt - автоматично генерирана помощна информация за проекта;
При стартиране на проекта с Ctrl+F5 в папка Debug се създава изпълнимия файл, който може да се разпространява напълно самостоятелно и отделно от текста на проекта:

Бързи клавиши:
Ctrl+F5 - Стартиране на проекта
F11 - Трасиране (изпълнение стъпка по стъпка)
F5 - Продължение на проекта до следващата точка на прекъсване
F9 - задаване точка на прекъсване
Ctrl+F10 - изпълнение до реда, на който се намира курсора
Ctrl+F7 - компилиране на проекта (използва се за проверка синтаксиса на програмата)
F7 - компилиране и свързване на проекта (създава се изпълним файл)
Пример за стартиране на празен проект с Ctrl+F5:

Пример за стартиране на проект от типа "Hello, World" с Ctrl+F5:

Общ вид на проекта "Hello, World":

Метод за създаване на конзолно приложение (вариант втори):
От менюто File се избира New. Избира се групата "Files", след което Text File. В полето "File name:" се въвежда името на проекта с разширение cpp (например New.cpp). Накрая се потвърждава с бутона "OK".
За самостоятелна работа:
Да се припомнят двоична, десетична и шестнадесетична бройна система - право и обратно преобразуване от една в друга.
Например:
1) да се преобразува числото 123 (10) в двоична и шестнадесетична бройна система
2) да се преобразува числото 10011011 (2) в десетична и шестнадесетична бройна система
3) да се преобразува числото 1FA9 (16) в десетична и двоична бройна система