Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лаб_Гриф.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
2.81 Mб
Скачать

3.4 Питання для контролю і самостійної роботи

  1. Які перемінні відносяться до скалярних, арифметичних, складених, символьних ?

  2. Що означають символи: ’\r’, ’\f ’, ’\b’, ’\а, ’\n’, ’\\’, ’\’’ ’, ’\’ ’, ’\000’, ’\0x00’, ’\0x0а’, ’\0x5с’ ?

  3. Чому в рядку ’’c:\\bc\\test\\f.с'’ знак \ повторюється два рази ?

  4. Що означає ключове слово signed ?

  5. Що означає ключове слово #define, для чого воно використовується ?

  6. Як застосувати #define для створення макровизначення з параметрами ?

  7. Що означає ключове слово const, для чого воно використовується ?

  8. Що означає ключове слово typedef, для чого воно використовується?

  9. Що означає ключове слово #include, для чого воно використовується ?

  10. Чи є правильним вирази #include ’’c:\bc\test\my.h’’ ?

  11. Що означають записи: 1254L, 34l, 0xf9ac, 0875, 76678UL ?

  12. Які скалярні типи даних С Ви знаєте, чим вони відрізняються ?

  13. Який розмір у байтах мають базові типи С ?

  14. Який діапазон значень перемінних різних типів ?

  15. Де можна оголосити перемінну? Який тип має перемінна за умовчанням ?

  16. Які класи пам'яті використовуються при оголошенні перемінних ?

  17. Назвіть клас пам'яті перемінної за умовчанням. Чи залежить він від місця оголошення ?

  18. Як виконується множинне оголошення перемінних ?

  19. Як визначити розмір типу в байтах ?

  20. Чи відбувається ініціалізація перемінної за умовчанням ? У яких випадках ?

  21. Чи відбувається ініціалізація перемінної при оголошенні ? У яких випадках ?

  22. Для чого використовуються функції: getchar( ), getche( ), putchar( ) ?

  23. Що означає ключове слово enum, для чого використовують перемінні цього типу ?

  24. Приведіть синтаксис оголошення перемінних типу enum.

  25. Як виконується ініціалізація перемінних типу enum ?

  26. Для чого використовуються і який формат оголошення мають функції: printf( ), scanf( ) ?

  27. Роз‘ясніть приклади, наведені у теоретичній частині.

4 Заняття № 4 Розробка програм з циклічними обчислювальними процесами

(2 години)

Ціль роботи: вивчити написання програм мовою С, використовуючи ітераційні (циклічні) методи освоїти основні оператори, що підтримують роботу з циклами (for, while, do...while); навчитися писати програми, використовуючи приведені оператори.

4.1 Теоретичні відомості

Кожен оператор С закінчується оператором (;), що є порожнім оператором. Організація циклічних (ітераційних) процедур за допомогою операторів for, while, do...while дозволяє виконувати окремі оператори чи блоки операторів (складені оператори { … }). Число повторів визначається <Виразом> у дужках, яке використовується разом з названими операторами і значення якого порівнюється з ( - означає припинення циклу). Цикли бувають з перевіркою значення <Виразу> перед початком виконання тіла циклу (з передумовою), а також після закінчення виконання тіла (з постумовою) чи усередині тіла циклу. У С визначено три види операторів циклу: оператор циклу із передумовою - while, оператор циклу з постумовою do... while і оператор циклу for. Розглянемо ці оператори детально.

Цикл while має наступний формат:

while (<Вираз>) <Оператор>

Умова виконання ітерації в циклі while попередньо перевіряється, й у випадку істинності <Виразу> (не дорівнює ) виконуються ті оператори, що описані в тілі циклу. У противному випадку цикл закінчується і програма продовжує своє виконання з того місця, де закінчилося тіло циклу. Якщо тіло циклу містить декілька операторів, воно обмежується операторними дужками "{ }" і називається складеним оператором.

Припинити виконання циклу можна, використовуючи оператори: break, goto, return. Нижче продемонстровано два приклади роботи з циклом while у вигляді фрагментів програм (таблиця 4.1).

Таблиця 4.1- Приклади застосування оператора while

Приклад 1

Приклад 2

int i=10, k, s =;

printf ("Ввести крок збільшення\

до: ");

scanf("%i", &k );

...

char ch =’a’;

while (ch!=’у' && ch != 'n')

{ // Почати цикл while

Продовження таблиці 4.1

Приклад 1

Приклад 2

while (i) { //Виконувати цикл,

//поки i не дорівнює s+=k; //Збільшити s на k

i- - ; //Зменшити i на 1

if (i == k) break; //Вийти, якщо

}... // виконається умова: i=k

рrintf("\n Відповідайте yes чи no\

(y/n):");

scanf("%c", &ch );

} //Виконувати цикл доти, поки

//не буде натиснута буква у' чи n

Перший приклад демонструє застосування операторів while і break, що припиняє цикл, якщо виконається умова i = k. Другий приклад показує використання циклу while для перевірки відповіді (буква у' чи n’ ), що вводиться з клавіатури.

Оператор циклу do…while є циклом з постумовою. У цьому випадку тіло циклу завжди виконується хоча б один раз, а перевірка логіки припинення проводиться після закінчення виконання тіла циклу.

Формат оператора циклу з постумовою do…while наступний:

do <Оператор> while(<Вираз>)

Тілом циклу, як і у наступному випадку, може бути один чи декілька операторів (складений оператор). Нижче (таблиця 4.2) приведені приклади реалізації циклу з постумовою.

Таблиця 4.2- Приклади застосування оператора dowhile

Приклад 1

Приклад 2

int i=10, k, s=;

printf ("Увести крок збільшення \

до: ");

scanf("%i", &k);

do { //Почати цикл do while

s += k; //Збільшити s на k

i - - ; //Зменшити i на 1

if (i = = k) break; //Вийти, якщо

// виконується умова: i = = k

} while (i); //Виконувати цикл,

//поки i не дорівнює

...

char ch = ’a’;

do { // Почати цикл do while

printf("\n Відповідайте yes чи no\

(y/n):");

scanf("%c", &ch );

} while (ch != ’у' && ch != 'n');

//Виконувати цикл доти, поки не

//буде натиснута буква ‘у' чи ‘n

Оператор циклу for є найбільш зручним і гнучким засобом організації циклічних обчислень у С.

Формат оператора циклу for

for( [<Вираз_1>]; [<Вираз_2>]; [<Вираз_3>]) <Оператор>

Елементи цього виразу мають наступне призначення :

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

<Вираз_2> - визначає умову виходу з циклу. При рівності його значення цикл припиняється;

<Вираз_3> - задає зміну на кожному кроці перемінних, які проініціалізовані у <Виразі_1>. Можна задавати також зміну інших перемінних, не зв'язаних з <Виразом_1>.

Кожний з описаних виразів може бути відсутнім. Оператор циклу for, заданий як for( ; ; ) { <Тіло_циклу> }, є нескінченним циклом.