Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lexzii_08 / lexs_1_vstup.doc
Скачиваний:
20
Добавлен:
17.05.2015
Размер:
142.34 Кб
Скачать

Основні визначення мови Сі.

Алфавіт мови складається з латинських великих і малих букв, які мають різні коди, тому progіProgне одне й те ж, цифр і спеціальних знаків: ., ,, ‘, :.

Спеціальні символи (кожен окремо, або в комбінації з іншими) дозволяють задавати оператори і знаки операцій, серед яких найбільш часто використовують такі:

1) = оператор присвоювання. Допускається вираз а = b= с. Тут змінні а і в отримують значення змінної с.

2) +, -, *, /.

Допустимі операції

a+ =bа = а +b

a- =bа = а –b

a* =bа = а *b

a/ =bа = а /b

3) >, <, = =, > = , < =, ! = - не дорівнює, = = дорівнює

Наприклад : 3 > 2, 4! = 5, 2 < =2, 6 = = 6 – істинні

4) % - знак операції ділення по модулю;

5) // або / *, * / - використовується для коментарів ;

6) + + - знаки операції декремента – збільшення на 1;

7) - - − знаки операції інкремента – зменшення на 1;

+ + а – збільшення змінної а на 1 до використання змінної в виразах;

а + + - збільшення змінної а на 1 після використання цієї змінної в виразах;

-- а і а -- - аналогічно.

8) && - “ і ”; | |– або; ! – ні;

9) &,|,^,< <,> >, = інверсія знака порозрядних логічних операцій;

10) ? : - тернарної операції;

11) *, & - знаки адресних операцій;

12) . , - для використання в записах або структурах.

13) [ ] – для запису індексів масивів ;

14) ( ) – для функцій та встановлення черт використання операцій;

15) “ – лапки, для виведення символьної інформації на дисплей;

16) ‘ – апостроф, для визначення констант;

В подальшому будуть розглянуті всі принципи використання і будуть дані пояснення. Ідентифікатор використовують в якості назви об’єкту (функції, змінної, константи). Назва ідентифікатора повинна задовольняти такі умови:

  1. починаються з букви латинського алфавіту а....z, або з символа прідкресленим _, який отримуємо натискуючи А15.

Як вводити і виводити інформацію.

Розглянемо чотири функції: printf, scanf, putchar, i setchar . Перші дві призначаютьсядля реалізації форматного введення і виведення даних.

Функція printf формально описується таким чином:

Printf(„керуючий рядок”, аргумент1, аргумент2...)

Керуючий рядок містить об`єкти трьох типів: звичайні символи, які просто виводяться на екран дисплею (копіюються в стандартий вихідний потік); специфікація перетворення, кожна з яких викликає виведення на екран значення чергового елемента зі списку і керуючі символьні константи.

Кожна специфікація перетворення починається зі знака % і закінчується деяким символом, який задає перетворення. Між знаком % і символом перетворення може бути: знак мінус, який вказує, що перетворений параметр потрібно вирівняти вліво в своєму полі; рядок цифр, який задає мінімальний розмір поля; крапка, яка відокремлює розмір поля від рядка цифр; рядок цифр, який задає максимальне число символів, які треба ввести або кількість цифр, які потрібно вивести справа від десяткової крапки в значеннях float або double.

Далі записується один із символів перетворення :

d – значенням аргумента є дійсне ціле число;

o - значенням аргумента є 8-не ціле число;

х – значенням аргумента є 16-не число;

с – значенням аргумента є символ;

s – значенням аргумента є рядок символів (виводяться до ознаки кінця рядка);

е – значенням аргумента є дійсне десяткове число в експотенційній формі;

f – значенням аргументя є дійсне десяткове число з плаваючою крапкою;

q – використовується як %е або %f і вилучає вивід несуттєвих нулів;

р – значенням аргумента є вказівник (адреса)

Якщо після знака % записаний не символ перетворення, то він виводиться на екран.

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

При наявності помилок (наприклад в кількості аргументів або типів перетворення ) результати будуть невірними.

Серед керуючих символьних констант найбільш частіше використовуються такі:

\a – для короткочасноїподачі звукового сигналу;

\b – для переведення курсора вліво на одну позицію;

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

\r – для повернення каретки або переведення курсора в початок поточного рядку;

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

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

Наприклад в результаті запису інструкції виклику функції:

Printf( ” \t ЕОМ \n % d\n”, i);

Спочатку виконується горизонтальна табуляція (\t), тобто курсор зміститься з початку краю екрана, потім на екран виведеться на екран слово ЕОМ, після чого курсор перейде в початок нового рядка (\n), потім буде виведено ціле значення і по формату d і на закінчення курсор перейде в початок нового рядка (\n).

Приклад : на малюнку показано використання функції printf при умові, що і = 123456 (тип long ) та j = 127 ( тип int) .

Printf ( ’’ \t і = %ld ; \n j = %d \n ’’, і , j );

Рядок k і = 1 2 3 4 5 6 ;

Рядокk + 1 j = 127

Рядокk + 2

Функція scanf формально записується таким чином:

Scanf (” керуючий рядок ”, аргумент 1, аргумент 2, ....)

Аргументом Scanf повинен бути покажчик на відповідні значення (перед імнем змінної записується символ &). Призначення покажчиківрозглянемо потім.

Керуючий рядок містить специфікації перетворення і використовується для встановлення кількості і типів аргументів. В нього можуть входити : проміжки, символи табуляції і перехода на новий рядок (всі вони ігноруються); специфікації перетворення, які складаються із знака % або символа * ( заборона присвоєння ) або можливо числа, що задає максимальний розмір поля.

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

Адреса і

Пам’ять

Значення і

Scanf розташовує за адресою &і введене значення. В функції Scanf допускаються деякі символи пертворення функції printf.

Наприклад:

d - на вході очікується десяткове ціле число;

o - на вході очікується 8-ве ціле число;

x - на вході очікується 16-ве число;

u - на вході очікується поява беззнакового числа;

c - на вході очікується поява одиночного символа;

s - на вході очікується поява рядка символів;

f - на вході очікується поява дійсного числа;

p - на вході очікується поява покажчика (адреси) у вигляді 16кового числа;

Перед символами d, o , x , f може стояти буква l. В перших трьох випадках відповідні змінні повинні мати тип long, а в останньому – double. Приклад демонструє деякі можливості використання функції scanf, а також відповідність аргументів символам специфікації. Біля останнього аргумента l не записаний знак & тому, що рядок є масивом символів , оголошений як charl [20];

рядок

Дійсне число

Scanf ( ’’ % d % f % c % s ’’ , і , j , & k, l )

Дес дійс сим ряди

Дес.

символ

Число 20 в квадратних дужках після ідентифікатора l означає розмір масиву символів. В мові Сі ім’я масиву є покажчиком ( адресою першого елемента в масиві).

Оскільки це так то знак & перед ідентифікатором l не потрібен. Самий простий механізм введення – читання по одному символу з клавіатури за допомогою функції getchar. Інструкція вигляду c = getchar (); дозволяє присвоїти змінній с черговий вводимий символ . Звернення putchar (c), видає значення змінної с ( а цим значеннм є теж символ ) в стандартний вихідний потік ( на екран дисплея). Змінна с повинна мати тип int або char. Самостійно: модифікатор * і його використання з функціями printf() і scanf ()

Соседние файлы в папке lexzii_08