
- •Конспект лекцій
- •Вираз 1; while (вираз 2) { тіло вираз 3;
- •Специфікації при введенні і виведенні інформації.
- •Функція printf().
- •Функція виведення рядків puts().
- •Виведення символів на екран - putchar().
- •Перетворення при обчисленні виразів.
- •Арифметичні операції
- •4. Операції присвоювання.
- •5. Повітові операції
- •Функції введення інформації. Функція scanf().
- •Функція gets().
- •Функція fgets().
- •Функція getchar().
- •If (вираз) оператор
- •If (вираз) оператор 1
- •If (вираз 1)
- •Оголошення масиву
- •Покажчики і масиви.
- •Масивів.
Функція gets().
Функція gets() (get string - одержати рядок) дуже зручна для використання в інтерактивних програмах. Вона одержує рядок зі стандартного пристрою введення системи - звичайно клавіатури. Вона зчитує символи доти, поки не досягне символу переходу на інший рядок (‘\n’), дописує нульовий символ (‘\0’) і передає рядок викликаючій програмі.
Приклад:
#include <stdio.h>
int main ()
{
char name [25]; gets (name);
printf("name - %s\n", name);
return 0; }
Функція fgets().
Один з недоліків функції gets() полягає в тому, що вона не перевіряє, чи дійсно дані, що вводяться, розмістяться в зарезервованій для них області пам'яті. Зайві символи просто перекривають суміжні комірки пам'яті.
Функція fgets() виправляє це, дозволяючи указувати верхню межу кількості підлягаючих зчитуванню символів. Оскільки функція fgets() призначена для введення/виведення файлів, вона трохи менш зручна для введення з клавіатури, чим функція gets(). Від функції gets() вона відрізняється в трьох відношеннях:
- Вона приймає другий аргумент, що вказує максимальну кількість символів, що підлягають зчитуванню. Якщо цей аргумент має значення n, функція fgets() зчитує до n-1 символів або всі символи аж до символу переходу на інший рядок (у залежності від того, яка умова виконається раніш).
Якщо функція fgets() зчитує символ нового рядка, вона зберігає його в рядку, на відміну від функції gets (), що його відкидає.
Вона приймає третій аргумент, що вказує на підлягаючий зчитуванню файл. Щоб виконати зчитування з клавіатури, як аргумент необхідно використовувати stdin (скорочення від standard input - стандартне введення); цей ідентифікатор визначається у файлі stdio.h.
Функція getchar().
Функція getchar() не має аргументів, вона повертає черговий символ із вхідного потоку і передає його виконуваній програмі. Наприклад, слідуючий оператор читає черговий вхідний символ і привласнює його значення змінній
ch:
0
ch = getchar();
Оператори. Види операторів.
Оператори Сі керують процесом виконання програми. У Сі, як і в інших мовах програмування, є умовні оператори, оператори циклу, вибору, передачі керування і т.д. Нижче представлений список цих операторів:
break continue do for goto
if
null
return
switch
while
Таким чином всі оператори мови Сі можуть бути умовно розділені на наступні категорії:
- умовні оператори, до яких відносяться оператор умови if і оператор вибору switch;
оператори циклу (for, while, do while);
оператори переходу (break, continue, return, goto);
інші оператори (оператор "вираз", порожній оператор).
Всі оператори мови Сі, крім складених операторів, закінчуються крапкою з комою ";".
Оператори Сі складаються з ключових слів, виразів і інших операторів. В операторах Сі припустимі наступні ключові слова:
break default
for return
case
do
goto switch continue
else
if while
Оператор, що є компонентом іншого оператора, називається "тілом" включаючого оператора. Часто оператор - тіло є складеним оператором, що складається з одного чи більше операторів. Складений оператор обмежується фігурними дужками. Всі інші оператори Сі закінчуються крапкою з комою (;).
Будь-який з операторів Сі може бути попереду позначений міткою, що складається з імені і двокрапки. Операторні мітки позначаються тільки оператором goto.
Порядок виконання програми Сі збігається з порядком розташування операторів у тексті програми, за винятком тих випадків, коли оператор явно передає керування в іншу частину програми.
Оператор вираз.
Будь-який вираз, що закінчується крапкою з комою, є оператором.
Виконання оператора виразу полягає в обчисленні виразу. Отримане значення виразу ніяк не використовуються, тому, як правило, такі вирази викликають побічні ефекти. Необхідно зауважити, що викликати функцію, що неповертає значення можна тільки за допомогою оператора виразу.
Приклади:
++ і;
Цей оператор представляє вираз, що збільшує значення змінної і на одиницю.
А = cos (b * 5);
Цей оператор представляє вираз, що включає в себе операції присвоювання і виклику функції.
А (х, у);
Цей оператор представляє вираз, що складається з виклику функції.
Порожній оператор.
Порожній оператор складається тільки з крапки з комою. При виконанні цього оператора нічого не відбувається. Він звичайно використовується в наступних випадках:
- в операторах do, for, while, if у рядках, коли місце оператора не потрібно, але по синтаксису потрібен хоча б один оператор;
- при необхідності позначити фігурну дужку.
Синтаксис мови Сі вимагає, щоб після мітки обов'язково слідував оператор. Фігурна ж дужка оператором не є. Тому, якщо треба передати керування на фігурну дужку, необхідно використовувати порожній оператор.
Приклад:
int main ()
{
{if (...) goto a; /* перехід на дужку */
{... }
а:;}
return 0;
}
Складений оператор.
Складений оператор являє собою кілька операторів і повідомлень, укладених у фігурні дужки:
{ [повідомлення]
.
.
оператор; [оператор];
.
.
}
Наприкінці складеного оператора крапка з комою не ставиться.
Виконання складеного оператора полягає в послідовному виконанні складових його операторів.
Приклад:
int main ()
{
int q,b;
double t,d;
.
.
if(…) {
int e,g; double f,q;
.
.
}
return (0);
}
Змінні e, g, f, q будуть знищені після виконання складеного оператора. Відзначимо, що перемінна q є локальною в складеному операторі, тобто вона ніяким чином не зв'язана зі змінною q оголошеної на початку функції main з типом int. Відзначимо також, що вираз стоїть після return може бути укладений в круглі дужки, хоча наявність останніх необов'язкова.
Оператор if.
Оператор if називається оператором розгалуження, тому що він являє собою пункт, при досягненні якого програма повинна зробити вибір, по якому шляху йти далі.
Узагальнена форма оператора має вигляд: