1.2 ЕТАПИ ВИКОНАННЯ ПРОГРАМИ

Вихідна програма, підготовлена на мові С++ у вигляді текстового файла з розширенням *.срр (welcome.cpp), проходить 3 етапи обробки:

1)   препроцесорне перетворення тексту програми;

2)   компіляція;

3)   компоновка (редагування зв¢язків чи складання).

Після цих 3 етапів формується машинний код програми, що виконується.

Задачею препроцесора є перетворення (доповнення) тексту програми до початку її компіляції. Правила препроцесорної обробки визначаються програмістом за допомогою директив препроцесора. Директива починається з ”#” (¢дієс¢, ¢шарп¢). Наприклад,

1) #define - визначає правила заміни в тексті:

#define ZERO 0.0

Це означає, що кожне використання у програмі імені ZERO буде замінюватися на 0.0.

2) #include< ім¢я заголовного файла > - передбачена для залучення до тексту програми тексту файлу з каталогу “Заголовних файлів” INCLUDE, які постачаються разом зі стандартними бібліотеками. Кожна бібліотечна функція чи об¢єкт С++ має відповідний опис в одному з заголовних файлів (наприклад, iostream.h, stdio.h, conio.h, math.h). Список заголовних файлів визначається стандартом мови. Використання директиви include не під¢єднує відповідну стандартну бібліотеку, а лише дозволяє долучити до тексту програми описи із зазначеного заголовного файлу. В нашому випадку препроцесор обробляє директиву #include <iostream.h> і під’єднує до вихідного тексту програми засоби для обміну з дисплеєм. Далі файл передається на компіляцію, у ньому виявляються синтаксичні помилки, які потрібно усунути програмістові. Після безпомилкової компіляції текст програми перекладається компілятором на машинну мову, далі отримуємо об’єктний файл з розширенням *.obj. Підключення об¢єктних кодів файлів з визначеннями необхідних стандартних функцій і об¢єктів з бібліотеки відбувається на етапі компоновки, тобто після компіляції. У об¢єктному коді створюваної програми ніби замуровуються дірки за допомогою кодів стандартних функцій. Хоча в заголовних файлах містяться всі описи стандартних функцій, до коду програми залучаються лише функції й об¢єкти, які використовуються в програмі.

Після компоновки утворюється модуль програми з розширенням *.ехе.

Отже, в нашому випадку, виконавши директиви, препроцесор сформує повний текст програми, компілятор створить об’єктний файл welcome.obj, за замовчуванням обравши для нього зазначене ім’я, а компоновщик (редактор зв’язків Linker) доповить програму бібліотечними функціями, наприклад, для роботи з об’єктом cout і побудує модуль welcome.exe, запустивши, який ми одержуємо на екрані бажану фразу. Схема етапів виконання програми наведена на рис. 1.1.

1.3 ПОРЯДОК ЗАПУСКУ ПРОГРАМИ

1.         Відкрийте нове вікно редагування (File > New) і надайте йому ім’я Welcome (File > Save As);

2.         У новому вікні наберіть текст програми, що наводиться у Прикладі 1.

3.         Відкомпілюйте програму (Compile > Compile або (Alt+F9)). В разі повідомлень про помилку, перевірте текст програми і усуньте невідповідності. Щоразу, вносячи зміни у вихідний текст програми, зберігайте файл (File > Save або F2). Після чого змінену програму слід відкомпілювати;

4.         Запуск відкомпільованої програми здійснюється за командою (Run > Run або Ctrl+F9). Якщо з моменту останньої компіляції вихідний код було модифіковано, ця команда виконає послідовно компіляцію і компоновку. Результат виконання програми можна переглянути, натиснувши комбінацію клавіш Alt+F5.

 


2. Форматний ввід/вивід у мові С/С++

 

2.1 ФУНКЦІЇ ВВОДУ/ВИВОДУ МОВИ С

 

У мові С++ немає вбудованих засобів вводу/виводу – вони здійснюються за допомогою функцій, типів та об’єктів, що містяться у стандартних бібліотеках. Використовується два способи: функції, успадковані з мови С та об’єкти С++.

Основні функції вводу/виводу в стилі С, опис яких міститься у заголовному файлі <stdio.h>:

рrintf (<керуючий рядок>, <список аргументів>);

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

Специфікація перетворення має такий вигляд:

% <прапор> <розмір поля . точність> специфікація,

де прапор може набувати наступних значень:

- вирівнювання вліво числа, що виводиться (за замовчуванням виконується вирівнювання вправо);

+ виводиться знак додатного числа;

розмір поля – задає мінімальну ширину поля, тобто довжину числа. Якщо ширини поля недостатня, автоматично виконується його розширення;

точність – задає точність числа, тобто кількість цифр його дробової частини;

специфікація вказує на вигляд інформації, що виводиться. У таблиці 2.1 наведено основні формати функції друку.

Таблиця 2.1

Формат Тип інформації, що виводиться
%d десяткове ціле число
% і для виведення цілих чисел зі знаком (printf (“a=%i”, -3));
%u для виводу беззнакових цілих чисел (printf(“s=%u”, s))
%c один символ
%s рядок символів
%e число з плаваючою крапкою (експоненційний запис)
%f число з плаваючою крапкою (десятковий запис) (printf(“b=%f\n, c=%f\n, d=%f\n”, 3.55, 82.2, 0.555 ));
%u десяткове число без знака

 

Керуючий рядок може містити наступні керуючі символи:

\n – перехід на новий рядок;

\t – горизонтальна і \v – вертикальна табуляція;

\b – повернення назад на один символ;

\r – повернення на початок рядка;

\a – звуковий сигнал;

\” –лапки;

\? – знак питання;

\\ - зворотний слеш.

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

Приклад 1.

#include <stdio.h>

#define PI 3.1415926

void main()

{

int number=5, cost=11000, s=-777;

float bat=255, x=12.345;

printf ("%d студентів з¢їло %f бутербродів.\n", number, bat);

printf ("Значення числа pi рівне%f.\n", pi);

printf ("Вартість цієї машини %d%s\n", cost,"у.е");

printf ("x=%-8.4f s=%5d%8.2f ", x, s, x);

}

В результаті виконання останньої функції printf() на екрані буде виведено:

х=12.3450 s= -777 12.34

Функція scanf передбачена для форматного вводу інформації довільного вигляду. Загальний вигляд функції:

scanf (<керуючий рядок>, < список адрес>);

На відміну від функції виводу printf(), scanf() використовує у списку адреси змінних, для одержання яких перед іменем змінної ставиться символ ”&”, що позначає унарну операцію одержання адреси. Для вводу значень рядкових змінних символ ”&” не використовується. При використанні формату %s рядок вводиться до першого пропуску. Вводити дані можна як в одному рядку через пропуск, так і в різних рядках.

Дану особливість ілюструє відповідна частина програми:

int course;

float grant;

char name[20];

printf ( "Вкажіть ваш курс, стипендію, ім¢я \n");

scanf ( "%d%f", &course, &grant);

scanf ( "%s", name); /* ”&” відсутній при зазначенні масиву символів */

Для зміни кольору тексту використовують функції із файла <conio.h>: clrscr() – очищує екран; textcolor(Колір) – задає колір символів; textbackground (Колір) – встановлює колір фону. Вивід тексту на екран здійснюється за допомогою функції cprintf(), яка використовується аналогічно printf(). Зверніть увагу на те, що перехід на початок нового рядка у цій функції здійснюється за допомогою комбінації ”\n\r”.

Колір можна задати за допомогою цілої або іменованої константи, перелік яких наводиться у таблиці 2.2.


Таблиця 2.2

Колір

Константа

Значення константи

Чорний BLACK 0
Синій BLUE 1
Зелений GREEN 2
Червоний RED 4
Фіолетовий MAGENTA 5
Сірий GREY 8
Блакитний LIGHTBLUE 9
Помаранчевий LIGHTRED 12
Жовтий YELLOW 14
Білий WHITE 15

Информация о работе «Мова програмування С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 62340
Количество таблиц: 10
Количество изображений: 0

Похожие работы

Скачать
206879
0
16

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

Скачать
16544
1
0

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

Скачать
21927
1
4

... , що використовується, прагнути включати в рядок до 10 слів; • прагнути не поміщати більш одного-двох параграфів тексту на один екран. 1.4 Розробка цифрового освітнього ресурсу: «Задачник по мові програмування. Циклічні алгоритми» Назва розробки: електронний навчальний посібник з язика програмування. (Додаток 1) Тип розробки: електронний навчальний посібник. Предмет: інформатика; тема: « ...

Скачать
67862
1
1

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

0 комментариев


Наверх