Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1. Мова С.doc
Скачиваний:
5
Добавлен:
16.08.2019
Размер:
135.17 Кб
Скачать

Заголовок програми

На початку програми вказуються так звані заголовочні файли. Такі файли мають розширення .h. Це такі файли як stdio.h, conio.h, iostream.h тощо. Заголовочні файли вказуються за допомогою директив препроцесора.

Що ж таке препроцесор? Препроцесор проглядає програму до компілятора (звідси і термін «препроцесор»). У програми С/С++ можна включити різні інструкції, які регламентують роботу компілятора. Ці інструкції називаються директивами препроцесора. Використання директив препроцесора дозволяє розширити можливості програм. Всі директиви препроцесора починаються із символу #. Крім того, кожна директива повинна розміщуватися в окремому рядку програми. Препроцесор містить наступні директиви:

#define

#elif

#else

#endif

#error

#if

#ifdef

#ifndef

#include

#line

#pragma

#undef

Саме директива #include дозволяє включити в програму заголовочні файли. Коли препроцесор розпізнає директиву #include, він шукає ім’я файлу, що слідує за нею, і включає його в поточний каталог. Директива видається в двох видах:

#include<stdio.h> − ім’я файлу в кутових дужках

#include “myfiles.h” − ім’я файлу в подвійних лапках

Кутові дужки повідомляють ОС, що файл слід шукати в стандартному системному каталозі. Лапки означають, що спочатку слід шукати в робочому каталозі, а потім в «стандартних» місцях.

Декілька прикладів:

Для роботи з функціями введення-виведення обов’язково треба підключати заголовочний файл stdio.h. Для роботи з математичними функціями − файл math.h. Для звернення до функції очищення вікна користувача − файл conio.h.

Функція main ( )

Будь-яка програма обов’язково повинна містити у собі функцію main(), яка при виконанні програми викликається першою. (Не дивлячись на те, що слова main немає в переліку ключових слів мови Сі, воно є фактично зарезервованим і не може бути використаним як ідентифікатор). Зазначення типу_значення_що_повертається функцією не є обов’язковим.

Опис змінних і констант

Змінні

Змінна являє собою іменовану область (комірку) оперативної пам’яті комп’ютера, вміст якої може змінюватися протягом роботи програми.

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

До моменту використовування кожна змінна повинна бути оголошена («визначена», «декларована», «описана»).

Оголошення змінної відбувається наступним чином:

тип даних ідентифікатор

Наприклад:

Int Dobutok;

double number;

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

Int Suma, Dobutok;

double X,Y,number;

При оголошенні змінної її можна одночасно проініціалізувати1, тобто присвоїти їй початкове значення:

Int N=10;

Як правильно записати ідентифікатор змінної величини?

Взагалі, в процесі роботи програма постійно має справу не тільки із змінними величинами але і з різними іншими об’єктами. У мові С/С++ імена змінних, констант, функцій, міток та інших об’єктів, визначених користувачем, називаються ідентифікаторами. Ідентифікатори можуть складатися з одного або декількох символів. Перший символ ідентифікатора має бути буквою або символом підкреслення, а всі інші символи повинні бути буквами, цифрами або символами підкреслення. Наприклад, test_AA_1_6, high_bal. Символи, набрані у верхньому і нижньому регістрах, відрізняються. Тобто Test_AA_1_6, test_AA_1_6 і TEST_AA_1_6 − це зовсім різні ідентифікатори.

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

asm

auto

break

case

try

catch

char

class

const

void

default

delete

do

double

for

else

enum

extern

float

typedef

friend

goto

if

inline

volatile

int

long

new

operator

private

protected

public

register

return

union

short

signed

sizeof

static

while

switch

template

this

throw

struct

virtual

continue

unsigned

Як правильно записати тип даних?

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

М ножину типів, що використовує C/С++, можна розділити на прості (фундаментальні, базові) і похідні (складні, складені або структуровані).

Похідні типи формуються шляхом комбінації інших типів.

Простий тип даних визначає базові значення, в яких не можна виділити складові.

Похідний тип даних містить у собі елементи, що належать до простих типів.

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

Так, цілочисельні величини задаються типами Int і Char, дробові (дійсні) величини задаються типами Float і Double. Допускається модифікування діапазонів значень цих величин за допомогою слів long і short. Крім того, цілочисельні значення можуть бути або зі знаком, або без нього (набувати тільки невід’ємних значень). Розрізняються знакові і беззнакові типи за допомогою слів signed (знакові) і unsigned (без знакові). За замовчуванням тип Int вважається знаковим. Числові типи даних наведені у табл.1_2.

Таблиця 1_2

Назва типу

Діапазон значень

Розмір, біт

char

від -128 до 127.

8

int

від-32768 до 32767

32

signed int

від-32768 до 32767

32

unsigned int

від 0 до 65535

32

short int

від -32768 до 32767

16

unsigned short int

від 0 до 65535

16

signed short int

від -32768 до 32767

16

long int

від -2147483648 до 2147483647

32

unsigned long int

від 0 до 4294967295

32

signed long int

від -2147483648 до 2147483647

32

float

від

32

double

64

long double

від

80

Де оголошуються змінні?

Як правило, змінні оголошуються в трьох місцях:

  • всередині функцій;

  • у визначенні параметрів функції;

  • за межами всіх функцій.

Локальні змінні

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

Приклад 1_2

/*Якщо ця функція є фрагментом Сі-програми, при компіляції виникне помилка. Якщо − фрагментом програми С++, то помилки не буде*/

void f(void)

{

int i;

i=10;

int j; /* Помилку породжує цей оператор*/

j=30;

}

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

Формальні параметри

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

Приклад 1_3

/*функція повертає 1, якщо символ с є частиною рядка s; в протилежному випадку вона повертає 0 */

int is_in(char *s, char c)

{

while(*s)

if (*s==c) return 1;

else s++;

return 0;

}

Глобальні змінні

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

Приклад 1_4

#include<stdio.h>

int count; /*змінна count є глобальною */

int main(void)

{

count = 100;

func1();

return 0;

}

void func1(void)

{

int temp;

temp = count;

}

Константи

Константа − явно записане значення, яке відноситься до певного типу даних мови С++ . Іноді константи називають ще літералами. Значення константи не змінюється і не може бути змінене в ході роботи програми.

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

Символьні константи записуються в одинарних лапках. Наприклад, символи ‘a‘ ‘&‘ є константами.

Цілочисельні константи вважаються числами, які не мають дробової частини. Наприклад, числа 20 і −200 є цілочисельними константами.

Константи з плаваючою крапкою містять дробову частину, яка відділяється десятковою крапкою. Наприклад, число 12.345 є константою з плаваючою крапкою.

Існує деяка система замовчувань, за якою компілятор відносить, наприклад, число 10 до типу int, а число 104000 до типу long. А константа з плаваючою крапкою завжди за замовчуванням має тип double.

Але типи констант можна задавати і явно. Якщо після константи з плаваючою крапкою поставити суфікс F, вона матиме тип float. Якщо замість букви F поставити букву L, константа отримає тип long double. Для цілочисельних типів суфікс U означає unsigned, а суфікс L − long. У табл.1.3 наведено кілька прикладів на цю тему.

Таблиця 1_3

Тип даних

Приклади констант

int

1

123

21000

−235

long int

35000L

−35L

unsigned int

10000U

988U

float

123.23F

4.34e−3F

double

123.23

1.0

−0.9886224

long double

1001.2L

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]