Реферат: Мова програмування C++ та середовище розробки Microsoft Visual C++

Міністерствоосвіти та науки України

Чернівецькийнаціональний університет імені Юрія Федьковича

Факультеткомп¢ютерних наук

Кафедра комп¢ютерних систем і мереж

Реферат

Мовапрограмування C++ та середовище розробки Microsoft Visual C++


2007р.


АНОТАЦІЯ

 

В програмному документіописані загальні відомості про мову програмування C++ та середовище розробки Microsoft Visual C++, способи структуризації тавідладки програм, вбудовані елементи мови які використовувались в даній роботі.

Програмний документмістить 6 розділів та 13 сторінок.


ЗМІСТ

1. ЗАГАЛЬНІ ВІДОМОСТІ

2. ЕЛЕМЕНТИ МОВИ

3. СПОСОБИ СТРУКТУРИЗАЦІЇ ПРОГРАМИ

4. ЗАСОБИ ОБМІНУ ДАНИМИ

5. ВБУДОВАНІ ЕЛЕМЕНТИ

6. ЗАСОБИ ВІДЛАДКИ ПРОГРАМИ

ДЖЕРЕЛА ЛІТЕРАТУРИ


1. ЗАГАЛЬНІ ВІДОМОСТІ

 

C++був розвинутий з мови програмування C і за дуже малими виключеннями зберігає Cяк підмножину. Базова мова, C підмножина C++, спроектована так, що існує дужеблизька відповідність між його типами, операціями й операторами і комп'ютернимиоб'єктами, з якими безпосередньо приходиться мати справу: числами, символами йадресами [5, с. 48].

MicrosoftVisualC++ містить безліч інтегрованих засобів візуального програмування. Компілятор VisualC++ містить багато нових інструментальнихзасобів і поліпшених можливостей, надаєвеличезні можливості в плані оптимізації додатків, внаслідок чого можна отримати виграш як відносно розміру програми,так і відносно швидкості її виконання, незалежно від того, що являє собою вашдодаток.

СистемаMicrosoft VisualC++ дозволяє створювати як маленькі програми і утиліти дляперсонального використання, так і корпоративні системи, що працюють з базамиданих на різних платформах.

2. ЕЛЕМЕНТИ МОВИ

Таблиця 2.1 Рекомендації комітету ANSI розробникам компіляторів мови С.

Аспект

Запропоновані стандарти

Типи даних Чотири: символьний, цілочисельний, з плаваючою крапкою і перелік Коментарі / * — початок, * / — кінець; доданий — //: набір символів в рядку справа ігноруватиметься компілятором Довжина ідентифікатора 31 символ; цього достатньо для забезпечення унікальності ідентифікатора Стандартні ідентифікатори і файли Розроблений мінімальний набір ідентифікаторів і файлів заголовків, необхідних для здійснення базових операцій, наприклад введення/виведення

Аспект

Запропоновані стандарти

Директиви препроцесора Значку #, з якого починається директива препроцесора, може передувати відступ (будь-яка комбінація пропусків і символів табуляції), що допомагає відрізнити директиву від решти програмного коду; у деяких ранніх компіляторах існувала вимога поміщати директиви препроцесора тільки починаючи з першої позиції рядка Запис виразів в декілька рядків Cуміжні літерали об'єднуються; таким чином, вираз з оператором #define може бути записано в два рядки Стандартні бібліотеки У запропонованому стандарті ANSI визначено базовий набір зовнішніх і системних функцій, таких як read() і writе() Керування виведнням Узгоджено набір керуючих послідовностей, включаючи символи форматування, такі як розрив рядка, розрив сторінки і символ табуляції Ключові слова Узгоджено мінімальний набір ключових слів, необхідних для побудови працездатних виразів на мові С sizeof() Оператор sizeof () повинен повертати значення типу size_t замість системно-залежної цілочисельної змінної Прототипи функцій Компілятори мови С повинні підтримувати програми, які використовують, так і ті, що не використовують прототипи функцій

Аргументи командного

рядки

Узгоджено і затверджено єдиний синтаксис використання аргументів командного рядка

Аспект

Запропоновані стандарти

Тип даних void Ключове слово void може використовуватися у функціях, що не повертають значення; для функції, що повертає значення, результат може бути приведений до типу void: це служить вказівкою компілятору, що значення, що повертається навмисно ігнорується Використання структур Відмінено вимогу унікальності імен членів структур і об'єднань; структури можуть передаватися у вигляді аргументів функцій і повертатися функціями, а також привласнюватися іншим структурам того ж типу Оголошення функцій Оголошення функції може включати список типів аргументів, на підставі якого компілятор визначає число і тип аргументів Шістнадцяткові числа Шістнадцяткове число повинне починатися з позначення \х, за яким слідує декілька шістнадцяткових цифр (0-9, а-f, A-F); наприклад, десятковому числу 16 відповідає шістнадцяткове \х10 (допускається також запис 0x10)

 

3. СПОСОБИ СТРУКТУРИЗАЦІЇ ПРОГРАМИ

 

Мова С підтримуємодульне програмування, суть якого полягає в можливості роздільної компіляції ікомпоновки різних частин програми. Наприклад, можна виконати компіляцію тільки тієї частинипрограми, яка була змінена в ході останнього сеансу редагування. Це значно прискорює процес розробкивеликих і навіть середнього розміру проектів, особливо якщо доводитьсяпрацювати на повільних машинах. Якщо б мова С не підтримувала модульне програмування, то після внесенняневеликих змін в програмний код довелося б компілювати повністю всю програму,що могло б зайняти дуже багато часу.

Найбільш істотнавідмінність C++ від мови С полягає у використанні концепціїоб'єктно-орієнтованого програмування. Класи є фундаментальною концепцієюоб'єктно-орієнтованого програмування. Визначення класу включає оголошення всіхполів, можливо, з початковими значеннями, а також описи функцій, призначенихдля маніпулювання значеннями полів — методів. Об'єкти є змінними типу класу.Кожен об'єкт може містити власні набори закритих і відкритих даних [4].

Унікальні особливості функцій

Мова C++ дозволяє задавати імена і типи параметрів функції прямо всерединікруглих дужок, що слідують за ім’ям функції. Наприклад:

void* vfunc(void *dest, int з, unsigned count)

{...}

Транслятор мови C++ перевірить відповідність фактичних типів значень,переданих у функцію, формальним типам аргументів функції. Також буде перевіренавідповідність типу значення типу змінної, якій привласнюється це значення, щоповертається.

Перевантаження функцій

У C++ можна використовувати однакові імена для декількох функцій.Звичайно різні функції мають різні імена, але іноді вимагається, щоб одна і таж функція виконувала схожі дії над об'єктами різних типів. В цьому випадку є зміствизначити декілька функцій з однаковим ім'ям, але різним тілом. Такі функціїповинні мати відмінні набори аргументів, щоб компілятор міг розрізняти їх. Недивлячись на те, що різні функції мають одне ім'я, по типу аргументівкомпілятор легко зможе визначити, яку версію функції слід викликати у кожномуконкретному випадку [4, c.244].

Стандартні значення параметрів функцій

У C++ можна задавати параметрам функцій значення за замовчуванням. Утакому випадку при виклику функції можуть бути вказані значення тільки деякихпараметрів, тоді як іншим вони будуть призначені автоматично.

Списки аргументів змінного розміру

У C++ за допомогою трьокрапки (...) можуть бути описані функції зневизначеним набором параметрів. Контроль за типами параметрів таких функцій неведеться, що підвищує гнучкість їх використовування.

Використання посилань на аргументи функцій

За допомогою оператора & можна задати передачу аргументів функції попосиланню, а не по значенню. Наприклад:

void increment(int &variable_reference)

{ variable_reference++; }

Оскільки параметр variable_reference визначений як посилання, його адреса привласнюєтьсяадресі змінної i при виклику функції increment (). Остання виконує прирістзначення параметра.

Покажчики типу void

У C++ тип void використовується для позначення того, що функція неповертає ніяких значень. Покажчик, що має тип void, може бути привласненийбудь-якому іншому покажчику базового типу.

 

4. ЗАСОБИ ОБМІНУ ДАНИМИ

 

C++ має в своємурозпорядженні свій власний файл заголовків IOSTREAM.H, що містить набір засобіввведення-виведення, специфічних для цієї мови. Потокове введення-виведення вC++ організовується за допомогою комплекту стандартних класів, що підключаютьсяза допомогою файлу IOSTREAM.H. Ці класи містять перевантажені операторивведення >> і виведення <<, які підтримують роботу з даними різнихтипів. Щоб краще зрозуміти, чому легше працювати з потоками в C++, давайтепригадаємо, як взагалі в мові С реалізується введення і виведення даних. Першза все мова С не має вбудованих засобів введення-виведення. Всі функції, такіяк printf() або scanf(), надаються через зовнішні бібліотеки, хоча і вважаютьсястандартними, але не є частиною самої мови. У принципі, це дозволяє гнучковирішувати проблеми, що виникають в різних додатках. Труднощі з'являються узв'язку з тим, що подібного роду функцій дуже багато, вони по-різномуповертають значення і приймають різні аргументи. Програмісти покладаютьсяголовним чином на функції введення-виведення формату printf(), scanf() і їмподібні, особливо якщо доводиться працювати з числами, а не з текстом. Ціфункції достатньо універсальні, але часто, через велику кількість різнихспецифікаторів форматування, стають надто громіздкими і важко читаними. МоваC++ так само не має в своєму розпорядженні вбудованих засобіввведення-виведення, але пропонує модульний підхід до рішення даної проблеми,групуючи можливості введення-виведення в двох основних потокових класах:istream — містить засоби введення, ostream — містить засоби виведення. У всіхцих класах реалізовані оператори << і >>, оптимізовані для роботи зконкретними даними. Бібліотека IOSTREAM.H містить також класи, за допомогоюяких можна керувати введенням-виведенням даних з файлів: ifstream — породженийвід istream і підключає до програми файл, призначений для введення даних, аofstream — породжений від ostream і підключає до програми файл, призначений длявиведення даних.

 

5. ВБУДОВАНІ ЕЛЕМЕНТИ

 

Компілятор VisualC++ містить багато нових інструментальних засобів і поліпшених можливостей для створення Windows-додатків[1].

ДодаткиWindows прості у використанні, але створювати їх досить складно. Програмістамдоводиться вивчати сотні різних API-функцій. Щоб полегшити їх роботу, фахівці Microsoft розробили бібліотекуMicrosoftFoundationClasses— MFC. Використовуючи готові класи C++, можнанабагато швидше і простіше вирішувати багато задач. Бібліотека MFC істотнополегшує програмування в середовищі Windows. Ті, хто володіє достатнім досвідомпрограмування на C++, можуть допрацьовувати класи або створювати нові, похіднівід існуючих. Класи бібліотеки MFC використовуються як для керування об'єктами Windows, так і длярішення певних загальносистемних задач. Наприклад, в бібліотеці є класи для керування файлами, рядками, часом, обробкоювиключень і інші. По суті, в MFC представлені практично всі функції WindowsAPI.У бібліотеці є засобу обробки повідомлень, діагностики помилок і інші засоби,звичні для додатків Windows. MFC володіє наступними перевагами:

·         Представлений набір функцій і класів відрізняється логічністю і повнотою. Бібліотека MFC відкриває доступдо всіх часто використовуваних функцій WindowsAPI, включаючи функціїуправління вікнамидодатків, повідомленнями, елементами управління, меню, діалоговими вікнами, об'єктами GDI (GraphicsDeviceInterface— інтерфейс графічних пристроїв), такими як шрифти, кисті, пір'я і растрові зображення, функції роботи з документами тощо.

·          Функції MFC легко вивчати. Фахівці Microsoft доклали всі зусилля для того, щоб імена функційMFC і пов'язаних з ними параметрів були максимально близькі до їх еквівалентів з WindowsAPI. Завдякицьому програмісти легко зможуть розібратися в їх призначенні.

·         Програмний кодбібліотеки достатньо ефективний. Швидкість виконання додатків, заснованих наMFC, буде приблизно такою ж, як і швидкість виконання додатків, написаних звикористанням стандартних функцій WindowsAPI, а додаткові витрати оперативноїпам'яті будуть досить незначними.

·         MFC міститьзасоби автоматичного керуванняповідомленнями. Бібліотека MFC усуває необхідність в організації циклу обробкиповідомлень — поширеного джерела помилок в Windows-додатках. У MFC передбаченийавтоматичний контроль за появою кожного повідомлення. Замість використовуваннястандартного блоку switch/case всі повідомлення Windows зв'язуються зфункціями-членами, що виконують відповідну обробку.

·         MFC дозволяєорганізувати автоматичний контроль за виконанням функцій. Ця можливістьреалізується за рахунок того, що можназаписувати в окремий файл інформацію про різні об'єкти і контролювати значеннязмінних-членів об'єкту в зручному для розуміння форматі.

·         MFC має чіткиймеханізм обробки виняткових ситуацій. Бібліотека MFC була розроблена так, щобтримати під контролем появу таких ситуацій. Це дозволяє об'єктам МFC відновлюватироботу після появи помилок типу «outofmemory» (брак пам'яті),неправильного вибору команд меню або проблем із завантаженням файлів аборесурсів.

·         MFC забезпечуєдинамічне визначення типів об'єктів. Це надзвичайно могутній програмний засіб,що дозволяє відкласти перевірку типу динамічно створеного об'єкту до моментувиконання програми. Завдяки цьому можна вільно маніпулювати об'єктами, не піклуючись про попередній опис типуданих. Оскільки інформація про тип об'єкту повертається під час виконання програми,програміст звільняється від цілого етапу роботи, пов'язаного з типізацієюоб'єктів.

·         MFC можевикористовуватися спільно з підпрограмами, написаними на мові С. Важлтвоюособливістю бібліотеки MFC є те, що вона може «співіснувати» здодатками, заснованими на WindowsAPI. У одній і тій же програмі програміст можевикористовувати класи MFC і викликати функції WindowsAPI. Така прозорістьсередовища досягається за рахунок узгодженості програмних позначень в двох архітектурах. Іншими словами, файли заголовків, типи і глобальніконстанти MFC не конфліктують з іменами з WindowsAPI. Ще одним ключовиммоментом, що забезпечує таку взаємодію, є узгодженість механізмів управлінняпам'яттю.

·         MFC може бутивикористана для створення програм, що працюють в середовищі MS-DOS. БібліотекаMFC була створена спеціально для розробки додатків в середовищі Windows. В тойже час багато класів надають об'єкти, часто використовувані длявведення/виведення файлів і маніпулювання рядковими даними. Такі класизагального призначення можуть застосовуватися в додатках як Windows, так іMS-DOS [3].

 

6. ЗАСОБИВІДЛАДКИ ПРОГРАМИ

 

Команди відладки викликаються з меню Debug. Вбудований відладчик дозволяє покроково виконувати програму, переглядати і змінювати значення змінних та багато іншого.

Точки зупинки застосовуються в програмі при необхідності перервати їївиконання в певних місцях. Значення використовування точок зупики полягає утому, що відладчик не витрачає часу на покрокове виконання програми аж довказаної точки, після досягнення якої переходить в покроковий режим. Точки зупики найпростіше розставлятиза допомогою кнопки Breakpointпанелі інструментів Build. Дляцього достатньо встановити курсор на потрібному рядку програми і натиснутикнопкою миші на вказаній кнопці. Якщо ж виділений рядок вже містить точкузупики, то вона буде видалена. При виборі команди Goпрограмавиконуватиметься від поточного місцезнаходження курсора до найближчої точкизупики.

Коли розпочинається процес відладки, з'являється панель інструментів Debug.З безлічі представлених на ній кнопок найчастіше задіюються StepIntoіStepOver. У обох випадках програма буде запущена на виконання в покроковомурежимі, а в тексті програми виділяється той рядок, який зараз буде виконаний.Відмінності між командами StepInto і StepOver виявляються тільки тоді, коли впрограмі зустрічається виклик функції. Якщо вибрати команду StepInto, товідладчик увійде до функції і почне виконувати крок за кроком всі її оператори.При виборі команди StepOver відладчик виконає функцію як єдине ціле і перейдедо рядка, наступного за викликом функції. Цю команду зручно застосовувати в тихвипадках, коли в програмі робиться звернення до стандартної функції абоствореної вами підпрограми, яка вже була протестована [2, c.328].


ДЖЕРЕЛА ЛІТЕРАТУРИ

 

1.        Хортон А., Visual C++ 2005: базовый курс.–С.Пб.: Диалектика, 2007. -1152 ст.

2.        Грегори К., Использование Visual C++ 6.Специальное издание. –М.: Вильямс, 2000. -864ст.

3.        Сергеев А.П., Терен А.Н., Программирование в MicrosoftVisual C++ 2005. Самоучитель. –С.Пб.: Диалектика, 2006. -352 ст.

4.        Солтер Н., Клепер Дж., C++ для профессионалов. –С.Пб.: Диалектика, 2006.-912 ст.

5.        Шилдт Г., C++: базовый курс, 3-е издание. –М.: Вильямс,2005. -624 ст.

6.        Шилдт Г., Справочник программиста по C/C++, 3-е издание. –М.: Вильямс, 2003. -432 ст.

еще рефераты
Еще работы по информатике, программированию