Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР1 Програмування.doc
Скачиваний:
46
Добавлен:
05.03.2016
Размер:
10.1 Mб
Скачать

Лабораторна робота №1 Виконання програми простої структури. Обчислення виразів із використанням стандартних функцій

1. Ціль завдання:

  1. Виконання простої програми в системі програмування VC++.

  2. Надбання навичок у записі виразів мовою C++ і використання стандартних функцій.

2. Теоретичні відомості

2.1.Структура програми на C++

Програма мовою Сі має наступну структуру:

#директиви препроцесора

. . . . . . . . .

#директиви препроцесора

функція а( )

оператори

функція b( )

оператори

void main( ) //функція, з якої починається виконання програми

оператори

описи

присвоювання

функція

порожній оператор

складений

вибору

циклів

переходу

Директиви препроцесора управляють перетворенням тексту програми до її компіляції. Вихідна програма, підготовлена на С++ у вигляді текстового файлу, проходить 3 етапи обробки:

  1. препроцесорне перетворення тексту;

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

  3. компонування (редагування зв’язків або зборка).

Рис. 2. Обробка С++ програми

Після цих трьох етапів формується код програми, що виконується. Задача препроцесора – перетворення тексту програми до її компіляції. Правила препроцесорної обробки визначає програміст за допомогою директив препроцесора. Директива починається з #.

#define -вказує правила заміни в тексті.

#include<ім’я заголовного файлу> – директива призначена для включення до тексту програми тексту з каталогу заголовних файлів, що поставляються разом зі стандартними бібліотеками. Кожна бібліотечна функція C має відповідний опис в одному із заголовних файлів. Список заголовних файлів визначений стандартом мови. Вживання директиви include не підключає відповідну стандартну бібліотеку, а тільки дозволяють вставити в текст програми описи із зазначеного заголовного файлу. Якщо використовується заголовний файл зі стандартної бібліотеки, то його ім’я беруть у кутові дужки. Якщо використовується заголовний файл, який знаходиться в поточному каталозі проекту (він може бути створений розробником програми), то його ім’я беруть у лапки. Підключення кодів бібліотеки здійснюється на етапі компонування, тобто після компіляції. Хоча в заголовних файлах містяться всі описи стандартних функцій, у код програми включаються тільки ті функції, які використовуються в програмі.

Після виконання препроцесорної обробки в тексті програми не залишається ні однієї препроцесорної директиви.

Програма являє собою набір описів і визначень, і складається з набору функцій. Серед цих функцій завжди повинна бути функція з іменем main. Без неї програма не може бути виконана. Перед іменем функції містяться відомості про тип значення, що вертається функцією (тип результату). Якщо функція нічого не повертає, то вказується тип void: void main(). Кожна функція, у тому числі й main, повинна мати список параметрів. Список може бути порожнім, тоді він вказується як(void) (слово void може бути опущене: ()).

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

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

const int y = 10 ;//іменована константа

float x ;//змінна

Описи повідомляють компілятору про властивості й імена об’єктів і функцій, описаних в інших частинах програми.

Оператори визначають дії програми на кожному кроці її виконання.

2.2. Елементи мови C/C++

  1. Алфавіт мовиякий включає

  • прописні й рядкові латинські букви й знак підкреслення;

  • арабські цифри від 0 до 9;

  • спеціальні знаки “{},| []()+-/%*.\’:;&?<>=!#

  • пробільні символи (пробіл, символ табуляції, символи переходу на новий рядок).

  1. Із символів формуються лексеми мови:

  • Ідентифікатори – імена об’єктів C/C++-програм. В ідентифікаторі можуть бути використані латинські букви, цифри й знак підкреслення. Прописні й малі літери різняться, наприклад, PROG1, prog1 і Prog1 – три різні ідентифікатори. Першим символом повинна бути буква або знак підкреслення (але не цифра). Пробіли в ідентифікаторах не допускаються.

  • Ключові (зарезервовані) слова– це слова, які мають спеціальне значення для компілятора. Їх не можна використовувати в якості ідентифікаторів.

  • Знаки операцій– це один або кілька символів, що визначають дію над операндами. Операції діляться на унарні, бінарні й тернарні за кількістю операндів, що беруть участь у цій операції.

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

  • Роздільники– дужки, крапка, кома, пробільні символи.

2.3. Константи в C/C++

Константа– це лексема, що представляє зображення фіксованого числового, строкового або символьного значення. Константи діляться на 5 груп:

  • цілі;

  • речовинні (із плаваючою крапкою);

  • перелічувальні;

  • символьні;

  • строкові.

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

Цілі константиможуть бути десятковими, вісімковими й шістнадцятковими.

Назва

Визначення

Приклади

Десяткова константа

Послідовність десяткових цифр, що починається не з 0, якщо це число не 0

8, 0, 192345

Вісімкова константа

Послідовність вісімкових цифр, яким передує 0.

026, 034, 017

Шістнадцяткова константа

Послідовність шістнадцяткових цифр, яким передує символ 0х або 0Х

0хА, 0Х00F, 0х123

Речовинні константиможуть мати дві форми представлення: з фіксованою крапкою та з плаваючою крапкою.

Назва

Вид

Приклади

Константи з фіксованою крапкою

[цифри].[цифри]

5.7, .0001, 41.

Константа із плаваючою крапкою

[цифри][.][цифри]E|e[+|-] [цифри]

0.5е5, .11е-5, 5Е3

Перелічувальні константи вводяться за допомогою ключового слова enum. Це звичайні цілі константи, яким приписані унікальні й зручні для використання позначення.

enum {one=1, two=2, three=3, four=4};

enum {zero,one,two,three};

enum {ten=10, three=3, four, five, six};

enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

Символьні константи – це один або два символи, поміщені в апострофи. Символьні константи, що складаються із одного символу, мають тип char і займають у пам’яті один байт, символьні константи, що складаються із двох символів, мають тип int і займають два байти. Послідовності, що починаються зі знака \, називаються керуючими, вони використовуються:

  • для представлення символів, що не мають графічного відображення, наприклад:

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

\b– повернення на один крок,

\n– переведення рядка,

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

  • для представлення символів: \, ‘, ? , ” ( \\, \’,\? ,\” );

  • для представлення символів за допомогою шістнадцятеричних або восьмеричних кодів (\073, \0хF5);

Строкова константа– це послідовність символів, взята в лапки. Всередині рядків також можуть використовуватися керуючі символи. Наприклад:

”\nНовий рядок”,

”\n\” Алгоритмічні мови програмування\””.

2.3. Типи даних в C++

Типи C++ можна розділити на прості й складові. До простих типів відносять типи, які характеризуються одним значенням. У мові C++ визначено 6 простих типів даних:

int (цілий)

c

цілочисельні

har (символьний)

wchar_t (розширений символьний) (C++)

bool(логічний) (C++)

f

з плаваючоюкрапкою

loat (дійсний)

double (дійсний з подвійною точністю)

Існує 4 специфікатора типу, що уточнюють внутрішнє представлення й діапазон стандартних типів

short(короткий)

long(довгий)

signed(знаковий)

unsigned(беззнаковий)

Тип даних

Визначення

Розмір

Діапазон

(signed) char

Значеннями є елементи кінцевого впорядкованої множини символів. Кожному символу ставиться у відповідність число, яке називається кодом символу.

1 байт

-128..127

unsigned char

0..255

wchar_t

Значеннями є елементи кінцевого впорядкованої множини символів у кодуванні Unicode

2 байта

0..65535

(signed) int

Значеннями є цілі числа.

4 байта ( для 32-розрядного МП)

-2147483648 … +2147483647.

(signed) long (int)

unsigned int

0…+4294967 295.

unsigned long (int)

(signed) short int

2 байта (для 32-розрядного МП)

–32768 … +32767

unsigned short int

0 … 65536;

bool

Дані цього типу можуть приймати значення true і false.

1 байт

false, true

float

Значеннями є дійсні числа

4 байта

3.4Е-38..3.4Е+38

double

8 байт

1.7Е-308 ..1.7Е+308

long double

10 байт

3.4Е-4932..1Е+4932

2.4. Змінні

Змінна в C++ – іменована область пам’яті, у якій зберігаються дані певного типу. У змінної є ім’я й значення. Ім’я служить для звертання до області пам’яті, у якій зберігається значення. Перед використанням будь-яка змінна повинна бути описана.

int a; float x;