Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3blok_Програмування.doc
Скачиваний:
33
Добавлен:
14.02.2016
Размер:
121.86 Кб
Скачать
  1. Основні типи даних. Модифікація основних типів. Ідентифікатори. Змінні.

Існує 5 елементарних типів даних: символ(char), ціле число (int), число з плаваючою комою(float), число з плаваючою комою подвійної точності(double) і змінна, яка не має значення(void). Всі інші типи даних у мові С створюються на основі цих елементарних типів. Розмір змінних і діапазон їх значення залежить від типа процесора і компілятора. Але у всіх випадках розмір символу рівний 1 байт. Розмір цілочислової змінної зазвичай рівний довжині машинного слова, прийнятої в конкретній ОС.

Точне представлення чисел із плаваючою комою залежить від їх конкретної реалізації. Значення змінної типу char використовується для представлення символів, передбачених в системі кодування ASCII.

Діапазон зміни змінних типу float іdoubleзалежить від способу представлення чисел з плаваючою комою.Наприклда, char 8 біт, мінімальний діапазон від -128 до 127,

unsignedchar 8 біт, мінімальний діапазон від 0 до 255

int16 або 32біт, мінімальний діапазон від -32768 до 32767

float32 біт, шість значущих цифр

double64 біт, 10 значущих цифр

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

Модифікація основних типів

Окрім типу void, основні типи даних можуть мати різні модифікації, які використовуються для більш точних настройок.

Цілочислові типи можна модифікувати з допомогою ключових слів signed, unsigned, long, short. Символьні типи можна уточнювати за допомогою: signedіunsigned. Типdoubleможна модифікувати ключовим словом long.

Застосування модифікатора signedдопускається, але являється зайвим, оскільки по замовчуванню всі цілі числа мають знак. Даний модифікатор слід використовувати для типу char в тих реалізаціях мови С, де цей тип немає знаку за замовчуванням.

Різниця між цілими числами, що мають і не мають знак, полягає в інтерпретації біта старшого розряду. Якщо в програмі визначено ціле число зі знаком, то компілятор генерує код, в якому старший біт відповідає за знак. Якщо старший біт 0, то число позитивне, якщо 1 – від`ємне.

Якщо модифікатор типу використовується окремо, то по замовчуванню пропонується, що оголошувана змінна має тип int.

Ідентифікатори

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

Довжина ідентифікатора може бути довільна. Однак не всі символи, що утворюють ідентифікатор, вважаються значущими. Якщо ідентифікатор використовується в процесі редагування зовнішніх зв’язків, то значущими вважаються перші шість його символів. Ці ідентифікатори називаються зовнішніми іменами. Коли ідентифікатор не використовується у процесі редагування зовнішніх зв’язків, то значущими вважаються 31 перший символ. Такі ідентифікатори називаються внутрішніми іменами. Символи, які набрані верхнім і нижнім регістром вважаються різними. Наприклад, count, Count іCOUNT – це різні ідентифікатори.

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

Змінні

Змінна представляє собою ім`я ячейкипам`яті, яку можна використовувати для зберігання модифікованих значень. Всі змінні повинні бути оголошені до свого використання. Оголошення: тип список_змінних; де слово тип один з допустимих типів даних, включаючи модифікатори, а список_зміннихможе складатися із одного чи декількох ідентифікаторів, розділених комою.

Як правило, змінні оголошуються в трьох місцях: в середині функції, в місці оголошення параметрів функції та за межами всіх функцій. Відповідно такі змінні називаються локальними, формальними параметрами та глобальними.

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

void f1(void)

{ int x; x=10;}

void f2(void)

{ int x; x=-911;}

Змінна х оголошена два рази. Проте змінна х з функ. f1() немає ніякого відношення до змінної х оголошеної в f2(). Кожна із цих змінних існує лише в середині блоку, де вона була оголошена.

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

intis_in(char *s, char c)

{ while(*s)if(*s==c) return 1; else s++; return 0; }

Функ. іs_in() має два параметри: sі с. Функ. повертає 1, якщо символ с являється частиною рядка s, в іншому випадку функ. повертає 0.

Тип формальних параметрів задається при їх оголошенні. Форма. Пар. Можна використовувати в довільних конструкціях і виразах.

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

2. Функції користувача

Функ.кор.- це поіменована група команд, яка оголошена у файлі заголовків(або в основній програмі) та описана у модулі( в основній програмі). До функ. Можна звертатись з будь-якого місця програми, необхідну кількість разів.

1.Оголошення функ.кор. Кожну функ.кор. перед першим викликом необхідно оголосити. Функ.кор. оголошується так:

<тип_функції>< назва_функції> (<список_формальних_параметрів>)

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

Для функ. , яка не залежить від жодних параметрів, у круглих дужках записують службове слово void. Назву функ. Надає користувач за правилом створення ідентифікаторів. У списку формальних параметрів через кому записують змінні, зазначаючи їх тип(для кожної змінної окремо!). Імена змінних можна опускати. Якщо функ. Не набуває жодних значень, то список формальних параметрів може бути відсутній(круглі дужки опускати не можна). Приклад: float S(int k, float c); - функ. S типу float, залежить від 2 змінних типів int і float.

doublel(void); - функ. l типу double не залежить від жодних параметрів.

Під час оголошення можна одразу надавати параметрам певних значень. Такі значення наз. значеннями за замовчуванням.Значення таких параметрів у програмі можна змінювати. Приклад:floatS(intk, floatc=2.5);

2.Опис функ.кор. має наступний вигляд:

<тип_функції>< назва_функції> (<список_формальних_параметрів>)

{<тіло_функ.>;

return(<назва_змінної_1>);

}

У тілі функ. записують команди, які задають дію функ.. Результат виконання повертається в основну програму за допомогою змінної_1 командою return.

Приклад:

float s(int k, float c)

{

float s=k*c;

return(s);

}

3. Виклик функ.кор. До функ.кор. звертаються з основної програми (main())або з іншої функ.. Виклик: < назва_функції> (<список_фактичних_параметрів>)

Список факт.парам. може містити сталі, змінні, посилання, вказівники, вирази. Приклад: float dob(int a, float b)

{

float d=a*b;

return(d);

}

До функ. можна звернутися dob(2,3);

4. Посилання До даних можна звертатися за допомогою імені або посилання – слугує для надання ще одного імені даному. Посилання утв. так:

<тип_даного>&<назва_посилання>=<назва_змінної>;

Наприклад, float&cina=suma;

У цьому випадку посилання на cina і suma вказують на одну і ту саму адресу в пам`яті комп’ютера.Для посилання не резервується додаткова оперативна пам`ять.

Переадресовувати посилання у програмі не можна. Посилання завжди вказує на одну і ту саму адресу в оперативній памяті.

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

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