Бібліографічний список

Лабораторна робота № 1

ВИВЧЕННЯ СЕРЕДОВИЩА VISUAL STUDIO 2010. 

НАСТРОЮВАННЯ КОМПІЛЯТОРА МОВИ С.

СТАНДАРТНий ввід-ВИВІД

Розглядається інструментальне середовище розробки додатків Microsoft Visual Studio 2010 у режимі компілятора мови С. Приводиться найпростіша програма мовою С, що ілюструє використання засобів елементарного текстового виводу на консоль.

 

ТЕОРЕТИЧНА ЧАСТИНА

Мова С у основі своій була створена в 1972 р. як мова для операційної системи UNIX [1]. Її автором вважається Деніс М. Рітчи (Dennis M. Ritchie).

Якийсь час була відсутня єдина політика по стандартизації мови С. На початку 1980-х рр. в Американському національному інституті стандартів (ANSI) був сформований комітет зі стандартизації мови С. В 1989 р. робота комітету з мови С була ратифікована, і в 1990 р. вийшов у світло перший офіційний документ по стандарті мови С. З'явився стандарт 1989, т. е. С89 [2]. До розробки стандарту по мові С була також притягнута Міжнародна організація по стандартизації (ISO). З'явився стандарт ISO/IEC 9899:1990. [2]. 

Для написання програм буде використовуватися стандарт мови С89 і компілятор мови С++, а програмування вестися в середовищі Microsoft Visual Studio 2010. Передбачається, що на комп'ютері встановлене це інтегроване середовище.

Microsoft Visual Studio 2010 доступна в наступних варіантах:

o express – безкоштовне середовище розробки, що включає тільки базовий набір можливостей і бібліотек;

o professional – поставка, орієнтована на професійне створення програмного забезпечення й командну розробку, при якій створенням програми одночасно займаються кілька людей;

o premium – видання, що включає додаткові інструменти для роботи з вихідним кодом програм і створення баз даних;

o ultimate – найбільш повне видання Visual Studio, що містить всі доступні інструменти для написання, тестування, налагодження й аналізу програм, а також додаткові інструменти для роботи з базами даних і проектування архітектури ПЗ.

Відмінною рисою середовища Microsoft Visual Studio 2010 є те, що воно підтримує роботу з декількома мовами програмування й програмних платформ. Тому перед тим як писати програму мовою С, необхідно виконати кілька підготовчих кроків по створенню проекту і вибору та настроювання компілятора мови С для трансляції вихідного коду. Після запуску Microsoft Visual Studio 2010 з'являється стартова сторінка (рис. 1.1).

 

Рис. 1.1. Стартова сторінка Visual Studio 2010

 

Наступним кроком є створення нового проекту. Для цього в меню File необхідновибрати New ® Project (або нажати комбінацію клавіш Ctrl + Shift + N). Результат вибору пунктів меню для створення нового проекту показаний на рис. 1.2.

Рис. 1.2. Вікно з вибором нового проекту

 

Середовище Visual Studio відобразить вікно New Project ( Створити проект ), у якому необхідно вибрати тип створюваного проекту. Проект (project) використовується в Visual Studioдля логічного угруповання декількох файлів, що містять вихідний код, на одній з підтримуваних мов програмування, а також будь-яких допоміжних файлів. Звичайно після збірки проекту (яка включає компіляцію всіх файлів, що сходять у проект, вихідного коду) створюється один модуль, що виконується.

У вікні New Project варто розгорнути вузол Visual С++, потім звернутися до пункту Win32 і на центральній панелі вибрати Win32 Console Application (рис. 1.3).


Рис. 1.3. Вибір типу проекту

 

Після вибору типу проекту в поле редактора Name (де за замовчуванням є <Enter_name>) необхідно ввести його ім'я, наприклад hello. У поле Location можна вказати шлях розміщення проекту або вибрати його (шлях) за допомогою клавіші (кнопки) Browse. За замовчуванням проект зберігається в спеціальній папці Projects. Вибір імені проекту може бути досить довільним: припустимо використовувати числове значення, задавати ім'я через букви кирилічного алфавіту. Надалі будемо давати проекту ім'я, набране за допомогою букв латинського алфавіту і, може бути, з додаванням цифр.

Приклад вибору імені проекту показаний на рис. 1.4.

 


Рис. 1.4. Приклад завдання ім'я проекту

 

Одночасно із проектом Visual Studio створює рішення. Рішення (solution) – це спосіб об'єднання декількох проектів для організації більше зручної роботи з ними.

Після натискання кнопки OK відкриється вікно Win32 Application Wizard (майстер створення додатків для операційних систем Windows) (рис. 1.5).

 


Рис.(1.5. Майстер створення додатка

 

На першій сторінці майстра представлена інформація про створюваний проект, на другій можна зробити його первинні настроювання. Після звертання до сторінки Application Settings  або натискання кнопки Next одержимо вікно, представлене на рис. 1.6.

 


Рис. 1.6. Сторінка майстра настроювання проекту за замовчуванням

 

У додаткових опціях (Additional options) варто поставити галочку в поле Empty project (порожній проект) і зняти (забрати) її в поле Precompiled header (рис. 1.7).


Рис. 1.7. Виконане настроювання майстра додатків

 

Тут і далі будемо створювати проекти за наведеною схемою, тобто проекти в консольному додатку, які виконуються цілком програмістом (за рахунок вибору Empty project). Після натискання кнопки Finish одержимо екранну форму (як на рис. 1.8), де наведена послідовність дій додавання файлу для створення вихідного коду до проекту. Стандартний шлях для цього: підвести курсор миші до папки Source Files ( файли вихідного коду ) з вузла hello у лівій частині відкритого проекту додатка, клацнути правою кнопкою миші і вибрати Add, потім New Item (створити новий елемент).

 

 


Рис. 1.8. Меню додавання нового елемента до проекту

 

У результаті одержимо вікно (рис. 1.9), де через пункт меню Code вузла Visual C++ виконане звертання до центральної частини панелі, у якій здійснюється вибір типу файлів. У цьому випадку потрібно звернутися до закладки C++ File (.cpp).

 

 


Рис. 1.9. Вікно вибору типу файлу для підключення до проекту

 

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


Рис. 1.10. Завдання ім'я файлу, що підключається до проекту

 

Потім варто нажати кнопку Add. Вид середовища Visual Studio після додавання першого файлу до проекту показаний на рис. 1.11. Доданий файл відображається в дереві Solution Explorer (оглядач рішень) під вузлом Source Files (файли з вихідним кодом), і для нього автоматично відкривається редактор.


Рис. 1.11. Підключення файлу проекту

 

На рис. 1.11 у лівій панелі в папці Solution Explorer відображаються файли, включені в проект у папках. Приведемо їхній опис.

Папка Source Files призначена для файлів з вихідним кодом. У ній відображаються файли з розширенням .

Папка Header Files (заголовочні файли) містить заголовні файли з розширенням .h.

У папці Resource Files (файли ресурсів) представлені файли ресурсів, наприклад зображення і т.ін.

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

Наступний крок складається в настроюванні проекту. Для цього в меню Project  головного менювартовибрати hello Properties (або одночасно нажати клавіші Alt + F7). Приклад звертання показаний на рис.1.12.

 


Рис 1.12. Звертання до сторінки властивостей проекту

 

Після того як відкриється вікно властивостей проекту, варто звернутися (з лівої сторони) до Configuration Properties (Властивості конфігурації); з'явиться спадаючий список (рис. 1.13). Далі потрібно звернутися до вузла Projects Defaults (значення за замовчуванням для проекту) і через нього в лівій панелі вибрати Character Set (набір символів), де встановити властивість Use Multi-Byte Character Set. Настроювання Character Set (набір символів) дозволяють визначитися, яке кодування символів – ANSI або UNICODE – буде використане при компіляції програми. Для сумісності зі стандартом C89 ми вибираємо Use Multi-Byte Character Set. Це дозволяє застосовувати багато звичних функцій, наприклад по виводу інформації на консоль.


Рис. 1.13. Меню списку властивостей проекту

 

Після здійснення вибору (див. рис. 1.13) варто нажати кнопку Застосувати (Применить). Потім необхідно вибрати вузол С/С++ і в спадаючому меню вибрати пункт Code Generation (створення коду), через який у правій частині панелі звернутися до закладки Enable C++ Exceptions (включити С++ виключення), установивши для неї No  (заборона виключень С++). Результат установки обраної властивості представлений на рис. 1.14. Потім потрібно нажати кнопку Застосувати.

 


Рис. 1.14. Сторінка властивостей для заборони виключень С++

 

Далі в спадаючому меню вузла С/С++ необхідно вибрати пункт Language і через нього звернутися в праву частину панелі, де встановити наступні значення: для властивості Disable Language Extensions (відключити розширення мови) – Yes (/Za), для Treat Wchar_t As Built in Type (уважати тип wchar_t як убудований тип) – No (/Zc:wchar_t–), для Force Conformance in For Loop Scope (відповідність стандарту визначення локальних змінних в операторі циклу for) – Yes(Zc:forScope), для Enable Run-Time Type Information (дозволити інформацію про типи під час виконання) – No (/GR–), для властивості Open MP Support (дозволити розширення Open MP; використовується при написанні програм для багатопроцесорних систем) – No(/openmp–). Результат виконання цих дій показаний на рис.1.15.


Рис. 1.15. Сторінка властивостей закладки Language 

 

Після виконання зазначених дій варто нажати клавішу Застосувати. Далі в спадаючому списку вузла С/С++ варто вибрати пункт Advanced (додатково)і в правій панелі змінити властивість Compile As (компілювати як) у властивість компіляції мови С, тобто Compile as C Code (/TC). Результат установки компілятора мови С представлений на рис. 1.16.


Рис. 1.16. Результат вибору режиму компіляції мови С

Після натискання клавіш Застосувати та ОК відкриється підготовлений проект із порожнім полем редактора коду, у якому можна почати писати програми. У цьому редакторі наберемо програму, що виводить традиційне вітання «Hello, World». Для компіляції створеної програми можна звернутися в меню Build або, наприклад, нажати клавіші Ctrl + F7. У випадку успішної компіляції одержимо екранну форму, показану на рис. 1.17.


 Рис. 1.17. Успішно скомпільована перша програма мовою С

 


Для наведеного коду програми запуск на її виконання з вікна редактора в Visual Studio 2010 виконується натисканням клавіші F5 (рис. 1.18).

Рис. 1.18. Консольний вивід першої програми мовою С

Зробимо розбір першої програми. По-перше, відзначимо, що в мові С немає стандартних інструкцій (операторів) для виводу повідомлень на консоль (вікно користувача), а передбачені спеціальні бібліотечні файли, у яких є функції для цих цілей. У наведеній програмі використовується заголовний файл з іменем stdio.h (стандартний ввід-вивід), що повинен бути включений у початок програми. Для виводу повідомлення на консоль використовується функція printf(). Для роботи з консоллю в програму включений також заголовний файл conio.h, що підтримує функцію _getch(). Рядок програми

 



Int main (void)

повідомляє системі, що ім'ям програми є main() – головна функція і що вона повертає ціле число, про що вказує абревіатура int. Ім'я main() – це спеціальне ім'я, що вказує, де програма повинна почати виконання [3]. Наявність круглих дужок після слова main свідчить про те, що це ім'я функції. Якщо вміст цих дужок відсутній або в них представлене службове слово void, то це означає, що у функцію main() не передається ніяких аргументів. Тіло функції main() обмежено парою фігурних дужок. Всі твердження програми, укладені в них, будуть відноситись до цієї функції. 

У тілі функції main() є ще три інструкції. Виклик функції printf(), щоперебуває в бібліотеці компілятора мови С и друкує або відображає ті аргументи, які були підставлені замість параметрів. Символ \n означає єдиний символ newline (новий рядок), тобто з його допомогою виконується переклад на новий рядок. Символ \t здійснює табуляцію, тобто початок виводу результатів програми з відступом вправо.

Функція без параметрів _getch() витягає символ з потоку уведення, отже вона призначена для прийому повідомлення про натискання якої-небудь (не функціональної) клавіші на клавіатурі. З іншими компіляторами, може знадобитися getch() без префіксного нижнього підкреслення.

Останнє твердження в першій програмі

return 0;

указує на те, що виконання функції main() закінчене і що в систему повертається значення 0 (ціле число). Нуль використовується відповідно до угоди про індикацію успішного завершення програми [2].

Всі дії в програмі завершуються символом крапка з комою.

Всі файли проекту зберігаються в тій папці, що сформувалася після вказівки в полі Location ім'я проекту (hello). На рис. 1.19 показані папки й файли проекту Visual Studio 2010.

 


Рис. 1.19. Файли й папки створеного проекту

 

Кожний файл має деяке значення:

· hello.sln – файл рішення для створеної програми. Він містить інформацію про те, які проекти входять у дане рішення. Звичайно ці проекти розташовані в окремих підкаталогах. Наприклад, наш проект перебуває в підкаталозі hello;

· hello.suo – файл настроювань середовища Visual Studio при роботі з рішенням включає інформацію про відкриті вікна, їхнє розташування та інші користувальницькі параметри.

· hello.sdf – файл, що містить допоміжну інформацію про проект, що використовується інструментами аналізу коду Visual Studio, такими як IntelliSense для відображення підказок про імена і т.д.

Файли папки Debug представлені на рис. 1.20.


Рис. 1.20. Файли папки Debug

 

Розглянемо файли папки Debug:

· hello.exe – файл проекту, що виконується;

· hello.ilk – файл «incremental linker», використовуваний компоновщиком для прискорення процесу компонування;

· hello.pdb – отладочна інформація (інформація про імена у виконуваних файлах, що використовується отладчиком).

Файли папки hello показані на рис. 1.21.


Рис. 1.21. Уміст папки hello

 

Характеристика вмісту папки hello:

· main.c – файл вихідного програмного коду;

· hello.vcxproj – файл проекту;

· hello.vcxproj.user – файл користувальницьких настроювань, пов'язаних із проектом;

· hello.vcxproj.filters – файл із описом фільтрів, використовуваних Visual Studio Solution Explorer для організації та відображення файлів з вихідним кодом.

 

ПРАКТИЧНА ЧАСТИНА

Виконайте завдання на основі розглянутої програми hello.

1. Напишіть програму, що виводила б на консоль назву факультету, де Ви вчитеся, номер групи, Ваші прізвище, ім'я та по батькові в різних рядках дисплея (консолі) за допомогою однієї функції printf().

2. Вивід виконайте за допомогою декількох функцій printf() (кількість функцій повинна відповідати кожній порції інформації).

3. Для завдання 2 вивід інформації виконайте підряд, тобто без міжстрочного пропуску. Роздільником між частинами повинен бути відповідний розділовий знак, після якого повинен бути пробіл.

4. Перевірте програму без ключового слова void у списку параметрів для функції main().

5. Запустіть програму, указавши замість ключового слова int - типу значення функції, щоповертається, main() ключовеслово void.

Примітка. Вивід необхідної інформації здійснюється за допомогою букв латинського алфавіту. Коментарі в програмі можуть бути зроблені після символів // або усередині комбінації символів /* */.

Контрольні питання

1. Які компілятори мови С Вам відомі?

2. Яке ім'я має створений проект?

3. Яке ім'я має файл створеного проекту, що виконується?

4. Де зберігається проект?

5. Де зберігається вихідний файл створеного проекту?

6. Яке призначення заголовних файлів stdio.h, conio.h?

7. Як буде працювати програма без заголовного файлу conio.h?

8. У якому місці програми перебуває точка її входу?

9. Як здійснюється табуляція рядка на консолі і на скільки позицій виконується відступ від лівого краю?

10. Яке значення має головна функція проекту main() у програмах мовою С?

 

БІБЛІОГРАФІЧНИЙ СПИСОК

1. Керниган Б. У. Язык программирования С: пер. с англ. / Б. У. Керниган, Д. М. Ритчи. – 2-е изд. – М.: Вильямс, 2007. – 304 с.

2. Кочан С. Программирование на языке С: пер. с англ. / С. Кочан. –

3-е изд. – М.: Вильямс, 2007. – 496 с.

3. Дейтл Х. М. Как программировать на С: пер. с англ. / Х. М. Дейтл, П. Дж. Дейтл. – 4-е изд. – М.: Бином-Пресс, 2006. – 912 с.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: