Алгоритми - видове, свойства и средства за описание. Създаване на програми на C/C++

Програмиране на 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) в десетична и двоична бройна система