Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конс_лек_2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
971.38 Кб
Скачать

Конспект лекцій

"Програмування мовою Сі"

Константи. Типи констант, правила опису.

Константа- це число, символ чи рядок символів. Константи використовуються в програмі як незмінні величини. У мові Сі розрізняють чотири типи констант: цілі константи, константи дійсного типу, константи-символи і рядкові літерали.

Цілі константи.

Ціла константа - це десяткове, восьмеричне чи шістнаддятиричне число, що представляє цілу величину. Десяткова константа має наступний формат представлення:

<digits>,

де < digits> - це одна чи більше десяткових цифр від 0 до 9.

Восьмерична константа має наступний формат представлення:

0<odigits>,

де <odigits> - це одна чи більше восьмеричних цифр від 0 до 7. Запис ведучого нуля необхідна.

Шістнадцятирична константа має один з наступних форматів представлення:

Ox<hdigits>

OX<hdigits>,

де <hdigits> одна чи більше шістнадцятиричних цифр. Шістнадцятирична цифра може бути цифрою від 0 до 9 чи літерою (великою чи малою) від А до F. У представленні константи допускається «суміш» великих і малих букв. Запис ведучого нуля і наступного за ним символу х чи X необхідна.

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

132; 32179 - десяткові константи;

0204; 076663 - восьмеричні константи;

0x84; 0x7d3 - шістнадцятиричні константи.

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

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

Восьмеричні і шістнадцятиричні константи в залежності від розміру можуть бути типу int, unsigned int, long чи unsigned long. Восьмеричні і шістнадцатиричні константи не містять «знакових» розширень, коли вони перетворюються до більш довгих типів.

Дійсні константи.

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

[<digits>] [. <digits>l [-] <digits>],

де <digits> - одна чи більш десяткових цифр (від 0 до 9), а Е чи е - символ експоненти. Ціла чи дробова частини константи можуть бути опущені, але не обидві відразу. Десяткова крапка може бути опущена тільки тоді, коли задана експонента.

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

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

Приклади констант дійсного типу і константних виразів: 15.75 1.575Е1 1575е-2

Ціла частина дійсної константи може бути опущена, наприклад:

.75

.0075е2

Усі константи дійсного типу мають тип double чи float.

Константа-символ.

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

Приклади:

' '-пробіл,

‘Q' - буква Q,

‘\п' - символ нового рядка,

‘\\’ - зворотна дробова риса,

‘\v’ - вертикальна табуляція.

Символьні константи мають тип int і при перетворенні типів доповнюються знаком.

Константа-символ має наступну форму представлення:

hаr>',

де <char> може бути будь-як символом з безлічі представимьіх символів, включаючи будь-який ESC - символ, крім одиночних лапок ('), похилу рису вліво (\) і символ нового рядка.

Строкові літерали.

Строковий літерал- це послідовність літер, цифр і символів, укладена в подвійних лапках. Строковий літерал розглядається як масив символів, кожен елемент якого представляє окремий символ. Строковий літерал має наступну форму представлення:

"<characters>",

де <characters> - це нуль чи більше символів з безлічі представимьіх символів, крім подвійних лапок ("), похилу рису вліво (\) і символ нового рядка. Щоб використовувати символ нового рядка в строковому літералі, необхідно надрукувати похилу рису вліво, а потім символ нового рядка.

Символи строкового літерала зберігаються в області оперативної пам'яті. У кінець кожного строкового літерала компілятором додається нульовий символ, що представляється керуючою послідовністю \0.

Строковий літерал має тип char[]. Це означає, що рядок розглядається як масив символів, а число елементів масиву дорівнює числу символів у рядку плюс 1, тому що нульовий символ (символ кінця рядка) також є елементом масиву. Усі строкові літерали розглядаються компілятором як різні об'єкти. Строкові літерали можуть розташовуватися на декількох рядках. Такі літерали формуються на основі використання зворотної дробової риси і клавіші введення. Зворотна риса із символом нового рядка ігнорується компілятором, що приводить до того, що наступна рядок є продовженням попереднього. Наприклад:

"рядок невизначеної \n довжини" цілком ідентична литералу

"рядок невизначеної довжини".

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

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

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

/* <characters> */

де <characters> - може бути будь-якою комбінацією символів з безлічі представимих символів, включаючи символи нового рядка.

На цей набір символів, однак, накладаються наступні обмеження. Усередині набору символів, що представляє коментар не може бути спеціальних символів визначаючих початок і кінець коментарів, відповідно (/* і */). Коментарі можуть замінити як один рядок, так і декілька.

Наприклад:

/* коментарі до програми */ чи

/* коментарі можна записати в наступному виді, однак треба бути обережним, щоб усередині послідовності, що ігнорується компілятором, не потрапилися оператори програми, що також будуть ігноруватися */

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

Неправильне визначення коментарів:

/* коментарі до алгоритму/* рішення крайової задачі */*/

чи

/* коментарі до алгоритму рішення*/ крайової задачі*/

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

Оператор while.

Оператор циклу while називається циклом із передумовою і має наступний формат:

while (вираз) тіло;

де виразом може бути будь-яким умовним виразом мови Сі;

тіло - будь-який оператор, у тому числі порожній чи складовий.

Якщо вираз істинний, то оператор (тіло) виконується тільки раз, а потім вираз перевіряється знову. Ця послідовність дій повторюється до тих пір, поки вираз не стане помилковим. Кожна така послідовність зветься ітерацією. Розглянемо схему виконання оператора більш докладно:

1. Обчислюється вираз.

2. Якщо вираз помилковий, то виконання оператора while закінчується і виконується наступний оператор. Якщо вираз істинний, то виконується тіло оператора while.

3. Процес повторюється з пункту 1. Приклад:

int n = 5;

while (n < 7)

{

printf("n = %d\n", n); n + +;

printf("Tenepь n = %d\n'\ n);

}

Оператор циклу виду

for (вираз 1; вираз 2; вираз 3) тіло; може бути замінений оператором while у такий спосіб: