Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ISВN 966-0000-00-0 4 страница




Варто знати! Стандарт мови С було оновлено у 1999 р., а версія мови програмування С отримала назву С99. Новий стандарт містив низку нових засобів, при чому деякі з них були взяті з мови програмування C++, проте вони повністю сумісні з оригінальним стандартом С89. Відомо, що на даний момент жоден з широко доступних компіляторів не підтримує версію С99, а, як і раніше, версія С89 визначає те, що звичайно маємо на увазі під мовою С. Понад це, саме стандарт С89 послугував основою для розроблення мови C++. Цілком можливо, що майбутній стандарт мови програмування C++ міститиме засоби, додані версією С99, але поки що вони не є частиною мови C++.

Мову програмування С часто називають комп'ютерною мовою середнього рівня. Однак це визначення не має негативного відтінку, оскільки воно зовсім не означає, що мова С є менш могутньою і розвиненою (порівняно з мовами "високого рівня") або її складно використовувати (подібно до мови Асемблер[2]). Мова С належить до середнього рівня тільки тому, що вона поєднує елементи мов високого рівня (наприклад Pascal, Modula-2 або Visual Basic) з функціональністю Асемблера.

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

Будучи мовою середнього рівня, мова С дає змогу маніпулювати бітами, байтами і адресами, тобто базовими елементами, з якими працює комп'ютер. Таким чином, у мові С не передбачено спроби відокремити апаратні засоби комп'ютера від програмних. Наприклад, розмір цілочисельного значення у мові С безпосередньо пов'язаний з розміром слова центрального процесора (ЦП). У більшості мов високого рівня існують вбудовані настанови, призначені для зчитування і запису дискових файлів. У мові С всі ці процедури виконуються за допомогою виклику бібліотечних функцій, а не за допомогою ключових слів, визначених в самій мові. Такий підхід підвищує гнучкість мови програмування С.

Мова С дає змогу програмісту (правильніше сказати, стимулює його) визначати підпрограми для виконання операцій високого рівня. Ці підпрограми називаються функціями,які мають дуже велике значення для мови С. Образно їх можна назвати будівельними блоками мови С. Програміст може без особливих зусиль створити бібліотеку функцій, призначену для виконання різних задач, які використовує його програма. У цьому сенсі програміст може персоналізувати мову С відповідно до своїх потреб.

Необхідно згадати ще про один аспект мови С, дуже важливий і для мови програмування C++: С – структурована мова. Найхарактернішою особливістю структурованої мови є використання блоків. Блок – ценабір настанов, які логічно пов'язані між собою. Наприклад, уявіть собі настанову if, яка, при успішній перевірці свого виразу, повинна виконати п'ять окремих настанов. А якщо ці настанови (спеціальним чином) згрупувати і звертатися до них як до єдиного цілого, то така група утворює блок.

Структурована мова підтримує концепцію функцій і локальних змінних. Локальна змінна – це звичайна змінна, яка відома тільки функції, у якій вона визначена. Структурована мова також підтримує ряд таких циклічних конструкцій, як while, do-while і for. Проте використання настанови goto або забороняється, або не рекомендується, а також не несе того смислового навантаження для передачі керування, яке властиве їй у таких мовах програмування, як BASIC або FORTRAN. Структурована мова дає змогу структурувати текст програми, тобто робити відступи під час написання настанов, і не вимагає строгої прив'язки до полів, як це реалізовано в ранніх версіях мови FORTRAN.

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

1.1.2. Передумови виникнення мови програмування C++

Наведена вище характеристика мови С може викликати справедливий подив: навіщо ж тоді, мовляв, було винайдено мова C++? Якщо мова програмування С – така хороша і корисна, то чому виникла необхідність в чомусь ще? Виявляється, вся справа в складності написання кодів програм. Впродовж всієї історії програмування ускладнення кодів програм спонукало програмістів шукати шляхи, які б дали змогу справитися зі труднощами, що виникали. Закладені можливості у мову програмування C++ можна вважати одним із способів їх подолання. Спробуємо краще розкрити цей взаємозв'язок.

Ставлення до програмування різко змінилося з моменту винаходу персонального комп'ютера. Основна причина – прагнення "приборкати" все зростаючу складність написання кодів програм. Наприклад, програмування для перших обчислювальних машин полягало в перемиканні тумблерів на їх передній панелі так, щоб їх положення відповідало двійковим кодам машинних команд. Поки довжини програм не перевищували декількох сотень команд, такий метод ще мав право на існування. Але у міру їх подальшого зростання було винайдено мову Асемблер, щоб програмісти могли використовувати символічне представлення машинних команд. Оскільки розміри програм продовжували зростати, бажання справитися з вищим рівнем складності викликало появу мов програмування високого рівня, розроблення яких дало програмістам значно більше інструментів –нових і різних.

Першою широко поширеною мовою програмування була, звичайно ж, мова FORTRAN. Незважаючи на те, що це був дуже значний крок на шляху прогресу у області програмування, FORTRAN все ж таки важко назвати мовою, яка сприяла написанню яскравих і простих для розуміння програм. Шістдесяті роки ХХ ст. вважаються періодом появи структурного програмування. Саме такий метод програмування і було реалізовано у мові С. За допомогою структурованих мов програмування можна було писати програми середньої складності, до того ж без особливих зусиль з боку програміста. Але, якщо програмний проект досягав певного розміру, то навіть з використанням згаданих структурних методів його складність різко зростала і виявлялася непосильною для можливостей програміста. Коли (до кінця 70-х) до "критичної" крапки підійшло достатньо багато проектів, стали народжуватися нові технології програмування. Одна з них отримала назву об'єктно-орієнтованого програмування (ООП|). Опанувавши методи ООП, програміст міг справлятися з програмами набагато більшого розміру, ніж раніше. Але мова С не підтримувала методів ООП. Прагнення отримати об'єктно-орієнтовану версію мови врешті-решт і привело до розроблення мови програмування C++.

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

1.1.3. Поява мови програмування C++

Отже, мова програмування C++ з'явилася як відповідь на необхідність подолати всезростаючу складність написання кодів програм. Вона була створена Б'єрном Страуструпом (Bjarne Stroustrup) в 1979 р. в компанії Bell Laboratories (м. Муррей-Хилл, шт. Нью-Джерси). Спочатку нова мова отримала ім'я "С з класами" (C with Classes), але в 1983 р. вона стала називатися C++.

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

Більшість нововведень, якими Страуструп збагатив мову С, було призначено для підтримки об'єктно-орієнтованого програмування. По суті мова C++ стала об'єктно-орієнтованою версією мови С. Взявши мову С за основу, Б'єрн Страуструп підготував плавний перехід до ООП. Тепер, замість того, щоб вивчати абсолютно нову мову, С-програмісту достатньо було засвоїти тільки ряд нових засобів, і він міг пожинати плоди використання об'єктно-орієнтованої технології програмування.

Проте в основу мови програмування C++ лягла не тільки мова С. Б'єрн Страуструп стверджує, що деякі об'єктно-орієнтовані засоби були інспіровані іншою об'єктно-орієнтованою мовою, а саме Simula67. Таким чином, мова C++ є симбіозом двох могутніх методологій програмування.

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

Хоча мова програмування C++ спочатку була спрямована на підтримку дуже великих програм, цим, звичайно ж, її використання не обмежувалося. І справді, об'єктно-орієнтовані засобу мови програмування C++ можна ефективно застосовувати практично до будь-якого завдання програмування. Не дивно, що мова програмування C++ використовують для створення компіляторів, редакторів, комп'ютерних ігор і програм мережевого обслуговування. Оскільки мова C++ володіє ефективністю мови С, то програмне забезпечення багатьох високоефективних систем побудоване з використанням мови C++. Окрім того, мова програмування С++ – це мова, яка найчастіше вибирається для Windows-програмування.

Варто знати! Оскільки мова C++ є надбудовою мови С, то, навчившись програмувати мовою C++, студент зможе також програмувати і мовою С. Таким чином, доклавши деякі зусилля до вивчення тільки однієї мови програмування, студент насправді вивчить відразу дві мови.

1.1.4. Етапи вдосконалення мови програмування C++

З моменту винаходу мова програмування C++ зазнала три значні вдосконалення, щоразу мова як доповнювалася новими засобами, так і в чомусь змінювалася. Першій ревізії вона була піддана в 1985 р., а другої – в 1990 р. Третя ревізія відбулася в процесі стандартизації, яка активізувалася на початку 1990-х. Спеціально для цього був сформований об'єднаний ANSI/ISO-комітет, який 25 січня 1994 р. прийняв перший проект запропонованого на розгляд стандарту. У цей проект були включені всі засоби, вперше визначені Страуструпом, і додані нові. Але в цілому він відображав стан мови програмування C++ на той момент часу.

Незабаром, після завершення роботи над першим проектом стандарту мови програмування C++, відбулася подія, яка примусила значно розширити наявний стандарт. Йдеться про створення Олександром Степановим стандартної бібліотеки шаблонів (Standard Template Library – бібліотека STL). Як буде сказано пізніше, бібліотека STL – це набір узагальнених функцій, які можна використовувати для оброблення даних. Вона достатньо велика за розміром. Комітет ANSI/ISO проголосував за внесення бібліотеки STL у специфікацію мови програмування C++. Додавання бібліотеки STL розширило сферу розгляду засобів мови C++ далеко за межі початкового її визначення.

Проте внесення бібліотеки STL, окрім іншого, уповільнило процес стандартизації мови програмування C++, причому достатньо істотно. Окрім бібліотеки STL, в саму мову програмування було додано декілька нових засобів і внесено багато дрібних змін. Тому версія мови C++ після розгляду комітетом із стандартизації стала набагато більша і складніша порівняно з початковим варіантом Страуструпа. Кінцевий результат роботи комітету датується 14 листопада 1997 р., а реально ANSI/ISO-стандарт мови C++ побачив світло в 1998 р. Саме ця специфікація мови програмування C++ зазвичай називається Standard C++. І саме вона описана у цьому навчальному посібнику. Ця версія мови програмування C++ підтримується всіма основними С++-компіляторами, в т.ч. Visual C++ (Microsoft) і C++ Builder (Borland). Тому коди програм, наведені у цьому навчальному посібнику, повністю придатні для застосування в усіх сучасних С++-середовищах.

1.2. Основні ознаки об'єктно-орієнтованого програмування

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

Всі мови ООП характеризуються трьома основними ознаками: інкапсуляцією, поліморфізмом і успадкуванням. Розглянемо стисло кожний з них (детально вони будуть описані нижче у цьому навчальному посібнику).

1.2.1. Поняття про інкапсуляцію

Як відомо, усі програми, як правило, складаються з двох основних елементів: настанов (коду програми) і даних. Код – це частина програми, яка виконує дії, а дані є інформацією, на яку спрямовані ці дії. Інкапсуляція – це такий механізм програмування, який пов'язує воєдино програмні коди і дані, які вони обробляють, щоб забезпечити їх як від зовнішнього втручання, так і від неправильного використання.

У об'єктно-орієнтованій мові програмування коди і дані можуть бути пов'язані способом, при якому створюється самостійний чорний ящик. У цьому "ящику" містяться всі необхідні (для забезпечення самостійності) дані та коди. При такому взаємозв'язку коду програми і даних створюється об'єкт, тобто об'єкт – це конструкція, яка підтримує інкапсуляцію.

Усередині об'єкта програмні коди, дані або обидві ці складові можуть бути закритими у межах" цього об'єкта або відкритими. Закритий програмний код (або дані) відомий і доступний тільки іншим частинам того ж об'єкта. Іншими словами, до закритого коду програми або даних не може отримати доступ та частина програми, яка існує поза цим об'єктом. Відкритий програмний код (або дані) доступний будь-яким іншим частинам програми, навіть якщо вони визначені в інших об'єктах. Звичайно відкриті частини об'єкта використовують для надання керованого інтерфейсу із закритими елементами об'єкта.

1.2.2. Поняття про поліморфізм

Поліморфізм (від грецького слова polymorphism, що означає "багато форм") – це властивість, що дає змогу використовувати один інтерфейс для цілого класу дій. Конкретна дія визначається характерними ознаками ситуації. Як простий приклад поліморфізму можна навести кермо автомобіля. Для керма (тобто інтерфейсу) байдуже, який тип рульового механізму використовується в автомобілі. Іншими словами, кермо працює однаково, незалежно від того, чи оснащений автомобіль рульовим керуванням прямої дії (без підсилювача), рульовим керуванням з підсилювачем або механізмом рейкової передачі. Якщо Ви знаєте, як поводитися з кермом, то Ви зможете вести автомобіль будь-якого типу. Цей же принцип можна застосувати до програмування. Розглянемо, наприклад, стек, або список, додавання елементів до якого чи видалення з нього здійснюється за принципом "останній прибув – перший обслужений". У Вас може бути програма, у якій використовуються три різних типи стека. Один стек призначений для цілочисельних значень, другий – для значень з плинною крапкою і третій – для символів. Алгоритм реалізації всіх стеків – один і той самий, хоча у них зберігаються дані різних типів. У необ'єктно-орієнтованій мові програмісту довелося б створити три різні набори підпрограм обслуговування стека, причому підпрограми мали б мати різні імена, а кожен набір – власний інтерфейс. Але завдяки поліморфізму у мові C++ можна створити один загальний набір підпрограм (один інтерфейс), який підходить для всіх трьох конкретних ситуацій. Таким чином, знаючи, як використовувати один стек, програміст може використовувати всі інші.

У більш загальному вигляді концепція поліморфізму виражається фразою "один інтерфейс – багато методів". Це означає, що для групи взаємопов'язаних дій можна використовувати один узагальнений інтерфейс. Поліморфізм дає змогу знизити рівень складності за рахунок можливості застосування одного і того ж інтерфейсу для задавання цілого класу дій. Вибір же конкретної дії (тобто функції) стосовно тієї або іншої ситуації лягає "на плечі" компілятора. Вам, як програмісту, не потрібно робити цей вибір вручну. Ваше завдання – використовувати загальний інтерфейс.

Перші мови об'єктно-орієнтованого програмування були реалізовані у вигляді інтерпретаторів, тому поліморфізм підтримувався у процесі виконання програм. Проте мова програмування С++ – це трансльована мова (на відміну від того, що інтерпретується). Отже, у мові C++ поліморфізм підтримується на рівні як компілювання програми, так і її виконання.

1.2.3. Поняття про успадкування

Успадкування – це процес, завдяки якому один об'єкт може набувати властивості іншого. Завдяки успадкуванню підтримується концепція ієрархічної класифікації. У вигляді керованої ієрархічної (низхідної) класифікації організовуються більшість областей знань. Наприклад, яблука Джонатан (йони)є частиною класифікації яблука, яка сама є частиною класу фрукти, а той – частиною ще більшого класу їжа. Таким чином, клас їжа володіє певними якостями (їстивність, поживність і ін.), які застосовуються і до підкласу фрукти. Окрім цих якостей, клас фрукти має специфічні характеристики (соковитість, солодкість і ін.), які відрізняють їх від інших харчових продуктів. У класі яблука визначаються якості, специфічні для них (ростуть на деревах, не тропічні і ін.). Клас Джонатан успадковує якості всіх попередніх класів і при цьому визначає якості, які є унікальними для цього сорту яблук.

Якщо не використовувати ієрархічне представлення ознак, для кожного об'єкта довелося б в явній формі визначити всі властиві йому характеристики. Але завдяки успадкуванню об'єкту потрібно додатково визначити тільки ті якості, які роблять його унікальним усередині його класу, оскільки він (об'єкт) успадковує загальні атрибути свого батька. Отже, саме механізм успадкування дає змогу одному об'єкту представляти конкретний примірник більш загального класу.

1.2.4. Мова програмування C++ і реалізація об'єктно-орієнтованого програмування

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

1.2.5. Зв'язок мови програмування C++ з мовами Java і С#

Ймовірно, багато студентів знають про існування таких мов програмування, як Java і С#. Мову Java розроблено в компанії Sun Microsystems, а C# – у компанії Microsoft. Оскільки іноді виникає плутанина відносно того, яке відношення ці дві мови мають до мови програмування C++, спробуємо внести ясність в це запитання.

Мова програмування C++ є батьківською мовою для Java і С#. І хоча розробники Java і С# додали до першоджерела, видалили з нього або модифікували різні засоби, в цілому синтаксис цих трьох мов практично однаковий. Більше того, об'єктна модель, яку використано у мові C++, подібна до об'єктних моделей мов Java і С#. Нарешті, дуже схоже загальне враження і відчуття від використання всіх цих мов. Це означає, що, знаючи мову C++, Ви можете легко вивчити мову Java або С#. Схожість синтаксисів і об'єктних моделей – одна з причин швидкого засвоєння (і схвалення) цих двох мов багатьма досвідченими С++-програмістами. Зворотна ситуація також можлива: якщо Ви знаєте мову Java або С#, то вивчення мови програмування C++ не завдасть Вам труднощів.

Основна відмінність між мовами C++, Java і С# полягає в типі обчислювального середовища, для якого розроблялася кожна з цих мов. Мова програмування C++ створювалася з метою написання високоефективних програм, призначених для виконання під управлянням певної операційної системи і з розрахунку на ЦП конкретного типу. Наприклад, якщо виникає бажання написати високоефективну програму для виконання на процесорі Intel Pentium під управлянням операційної системи Windows, краще за все використовувати для цього мову C++.

Мови Java і С# розроблені у відповідь на унікальні потреби сильно розподіленого мережевого середовища, яке може слугувати типовим прикладом сучасних обчислювальних середовищ. Мова Java дає змогу створювати міжплатформений (сумісний з декількома операційними середовищами) переносний програмний код для Internet. Використовуючи Java, можна написати програму, яка виконуватиметься в різних обчислювальних середовищах, тобто в широкому діапазоні операційних систем і типів ЦП. Таким чином, Java-програма може вільно почуватися у мережі Internet. Мова C# розроблена для середовища.NET Framework (Microsoft), яка підтримує багатомовне програмування (mixed-language programming) і компонентно-орієнто­ва­ний код, що виконується в мережевому середовищі.

Хоча мови Java і С# дають змогу створювати переносний програмний код, який працює в сильно розподіленому середовищі, ціна цієї переносності – ефективність. Java-програми виконуються повільніше, ніж С++-програми. Те саме стосується і мови С#. Тому, якщо виникає бажання створювати високоефективні програмні продукти, використовують мову програмування C++. Якщо ж потрібні переносні програми, використовують мову Java або С#.

Варто знати! Мови програмування C++, Java і С# призначені для вирішення різноманітних питань та розв'язання різних класів задач. Тому запитання "Яка мова є кращою?" поставлене некоректно. Доречніше було б сформулювати запитання дещо по-іншому: "Яка мова найбільш підходить для розв'язання конкретної задачі?".

 


Розділ 2. Основні елементи мови програмування С++

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

Оскільки вивчати мову програмування краще за все шляхом безпосереднього програмування, то рекомендуємо читачу власноручно виконувати наведені у посібнику приклади на своєму комп'ютері, аналізувати їх, вносити можливі корективи.

2.1. Розроблення найпростішої С++-програми

Перш ніж заглибитись детально в теорію програмування, розглянемо спочатку найпростішу С++-програму. Почнемо з введення коду програми, а потім перейдемо до її компілювання та виконання.

Код програми 2.1. Демонстрація розроблення першої С++-програми

// Програма №1 – Перша С++-програма.

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

 

int main ()// Початок виконання програми.

{

cout << "Це моя перша С++-програма.";

 

getch (); return 0;

} // Завершення роботи програми.

Отже, програміст повинен виконати такі дії:

● ввести текст програми;

● скомпілювати її;

● запустити на виконання.

Початковий код – це текстова форма представлення програми. Об'єктний код – це форма представлення програми, яку може виконати комп'ютер.

Перш ніж приступати до виконання цих дій, необхідно визначити два терміни: початковий код і об'єктний код. Початковий код – це версія програми, яку може читати людина. Наведений вище код програми – це приклад початкового коду програми. Виконувана версія програми називається об'єктним, або виконуваним кодом.

2.1.1. Введення коду програми

Тексти програм, які представлено у цьому посібнику, у разі потреби необхідно ввести вручну. У цьому випадку бажано використовувати будь-який текстовий редактор (наприклад, WordPad), а не текстовий процесор (Word processor). Йдеться про те, що під час введення коду програми мають бути створені виключно текстові файли, а не файли, у яких разом з текстом зберігається інформація про його форматування. Необхідно також пам'ятати, що інформація про форматування тексту дещо перешкоджає роботі С++-компілятора.

Ім'я файлу, який міститиме початковий код програми, формально може бути будь-яким. Але С++-програми зазвичай зберігаються у файлах з розширенням *.срр. Тому називайте свої С++-програми будь-якими іменами, але як розширення використовуйте *.срр. Наприклад, назвіть свою першу програму Grycyuk_Prog.срр (це ім'я вживатиметься в подальших настановах), а для інших програм (якщо не буде спеціальних вказівок) вибирайте імена на свій розсуд.

2.1.2. Компілювання програми

Спосіб компілювання програми Grycyuk_Prog.срр залежить від використовуваного компілятора і вибраних опцій. Більше того, багато компіляторів, наприклад Visual C++ (Microsoft) і C++ Builder (Borland), надають два різні способи компілювання програм: за допомогою компілятора командного рядка та інтегрованого середовища розробки (Integrated Development Environment – IDE). Тому для компілювання С++-програм неможливо дати універсальні настанови, які підійдуть для всіх компіляторів. Це означає, що програміст повинен дотримуватися настанов, наведених у супровідній документації, що додається до Вашого компілятора.

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

Щоб скомпілювати програму Grycyuk_Prog.срр, використовуючи Visual C++, введіть такий командний рядок:

С:\...>cl -GX Grycyuk_Prog.срр

Опція -GX призначена для підвищення якості компілювання. Щоб використовувати компілятор командного рядка Visual C++, необхідно виконати пакетний файл VCVARS32.bat, який входить до складу Visual C++.

Щоб скомпілювати програму Grycyuk_Prog.срр, використовуючи C++ Builder, введіть такий командний рядок:

C:\...>bcc32 Grycyuk_Prog.срр

В результаті роботи С++-компілятора утворюється об'єктний код, який може виконати комп'ютер після завершення роботи компілятора. Для Windows-середовища виконуваний файл матиме те саме ім'я, що і початковий, але з іншим розширенням, а саме розширенням *.ехе. Отже, виконувана версія програми Grycyuk_Prog.срр зберігатиметься в окремому файлі під назвою Grycyuk_Prog.ехе.

Варто знати! Якщо під час спроби компілювання першої програми було отримано повідомлення про помилку, але Ви упевнені у тому, що ввели її текст коректно, то, можливо, Ви використовуєте стару версію С++-компілятора, який був створений до ухвалення С++-стандарту ANSI/ISO. У цьому випадку зверніться до дод. Г за настановами з використання старих компіляторів.

2.1.3. Виконання програми

Скомпільована програма готова до виконання. Оскільки результатом роботи С++-ком­пі­ля­тора є виконуваний об'єктний код, то для запуску програми як команду достатньо ввести її ім'я. Наприклад, щоб виконати програму Grycyuk_Prog.ехе, потрібно ввести такий запис у командному рядку:

С:\...>Grycyuk_Prog.срр

Результатом виконання цієї програми є такий:

Це моя перш С++-програма.

Якщо Ви використовуєте інтегроване середовище розробки, то виконати програму можна шляхом вибору з меню команди Run (Виконати). Безумовно, точніші настанови наведено в супровідній документації, що додається до Вашого компілятора (див. дод. А і Б). Але, як згадувалося вище, найпростіше компілювати і виконувати наведені у цьому навчальному посібнику програми за допомогою командного рядка.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 572; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.068 сек.