1. Скопіюйте в свою папку програму LAB10.C з папки C Examples в папці Рабочая папка.
2. Запустіть Dev-C++ для програми LAB10.C.
Програма визначає найбільшого загального дільника для натуральних(цілих) чисел m і n з використанням наступного алгоритму:
Введення чисел m і n.
Привласнення змінної x1 значення змінної m, а змінної x2 - значення змінної n.
Якщо значення змінних x1 і x2 дорівнюють один одному, виведення значень m, n і x1, а потім вихід з програми, інакше виконання пунктів 4-5.
Якщо x1 більше x2, зменшити значення x1 на значення x2, інакше зменшити значення x2 на значення x1.
Перехід до пункту 3.
3. Знайдіть в тексті програми оператор int і отримаєте по ньому довідку. Відкрийте текстовий редактор Блокнот і скопіюйте в його вікно вміст довідки із заголовком "Ключевое слово int".
4. Знайдіть в тексті програми оператор return і отримаєте по ньому довідку. Скопіюйте у вікно текстового редактора Блокнот вміст довідки із заголовком "Ключевое слово return".
5. Знайдіть в тексті програми функцію printf()і отримаєте по ній довідку. Скопіюйте у вікно текстового редактора Блокнот вміст довідки (до пункту More About printf) з заголовком "Функция printf()".
6. Знайдіть в тексті програми функцію getchar()і отримаєте по ній довідку. Скопіюйте у вікно текстового редактора Блокнот вміст довідки (до пункту More About printf) з заголовком "Функция getchar()".
7. Запустіть програму на виконання(програма містить помилку). Знайдіть рядок з помилкою і виправіть помилку.
8. Повторно запустите програму на виконання. Введіть значення тестових значень m и n: 42 и 28. Зверніть увагу, що програма працює неправильно (найбільшим загальним дільником чисел 42 і 28 на насправді являється число 14).
9. Запустіть програму в режимі отладки. Встановіть точку переривання на десятому рядку програми - операторові:
printf("nProgram start);
10. Задайте змінні x1 и x2 як спостережувані і перевірте їх значення в точці переривання.
11. Продовжте виконання програми по кроках до оператора
printf ("nThe greatest common divisor %d and %d: %dn",m,n,x1);
12. Перевірте значення змінних в цій точці і з'ясуйте, чому значення x1 стало невірним (зверніть увагу на оператор if в рядку 12).
13. Виправіть помилку в програмі і наново запустіть програму з тими ж тестовими значеннями в режимі отладки з тієї ж точки переривання з покроковим виконанням. Переконайтеся, що програма видає правильне значення найбільшого загального дільника.
14. Заново запустіть програму на виконання з наступними двома числами для свого варіанту: 1) 121 и 44; 2) 108 и 24; 3) 144 и 56; 4) 136 и 48; 5) 192 и 36; 6) 168 и 98; 7) 176 и 66; 8) 78 и 144; 9) 374 и 68; 10) 372 и 48; 11) 98 и 42; 12) 256 и 48; 13) 714 и 98; 14) 248 и 64; 15) 372 и 84.
15. Покажіть викладачеві програму і результати її роботи і скопіюйте текст програми і результат роботи програми у вікно текстового редактора Блокнот із заголовками "Текст программы LAB10.C" і "Результат работы программы LAB10.C".
16. Напишіть програму(ім'я програми латинськими буквами) відповідно до свого варіанту, а потім виконайте її отладку і тестування (завдання значень - за допомогою операції привласнення, виведення результатів - за допомогою функції printf()):
Номер варіанту | Початкові дані | Операція | Вивід | ||
Ім’я | Тип | Значення | |||
x1 | double | 3.5 | x дорівнює цілій частині x1+x2 | x1, x2 и x | |
x2 | double | -1.8 | |||
x | double | -- | |||
x1 | double | 8.4 | x дорівнює дробовій частині x1+x2 | x1, x2 и x | |
x2 | double | -1.3 | |||
x | double | -- | |||
i | double | 8.7 | x дорівнює цілій частини i*j | i, j и x | |
j | double | -12 | |||
x | double | -- | |||
u1 | double | 13.3 | u дорівнює дробовій частині u1*u2 | u1, u2 и u | |
u2 | double | -7.8 | |||
u | double | -- | |||
a1 | double | -7.8 | a дорівнює цілій частини a1/a2 | a1, a2 и a | |
a2 | double | -4.3 | |||
a | double | -- | |||
b1 | double | 14.6 | b дорівнює дробовій частині b1/b2 | b1, b2 и b | |
b2 | double | 5.7 | |||
b | double | -- | |||
w1 | double | 118.6 | w= w1 + ціла частина w2 | w1, w2 и w | |
w2 | double | 1.52·102 | |||
w | double | -- | |||
i1 | int | z=i1/i2 (результат - дійсне число) | i1, i2 и z | ||
i2 | int | ||||
z | double | -- | |||
d1 | double | 18.3 | d дорівнює остатку от d1/d2 | d1, d2 и d | |
d2 | double | 4.8 | |||
d | double | -- | |||
y | int | y1=y++ +5 y=8 y2=++y +5 | y, y1 и y2 | ||
y1 | int | -- | |||
y2 | int | -- | |||
t | int | t1=t-- +7 t=14 t2=--t +7 | t, t1 и t2 | ||
t1 | int | -- | |||
t2 | int | -- | |||
v1 | double | 14.3 | v дорівнює значенню першої цифри після десятичної точки в v1/v2 | v1, v2, v1/v2 и v | |
v2 | double | 3.1 | |||
v | int | -- | |||
s1 | double | 144.2 | s дорівнює значенню першої цифри в цілій частині s1/s2 | s1, s2, s1/s2 и s | |
s2 | double | 7.3 | |||
s | int | -- | |||
a1 | int | Умовна операція: якщо x>0, то y=a1, інакше y=a2 | x, a1, a2 и y | ||
a2 | int | -1 | |||
x | int | -3 | |||
y | int | -- | |||
g1 | int | Умовна операція: якщо g – парне, то z=g1, інакше z=g2 | g, g1, g2 и z | ||
g2 | int | ||||
g | int | ||||
z | int | -- |
17. Покажіть викладачеві програму і результати її роботи і скопіюйте текст програми і результат роботи програми у вікно текстового редактора Блокнот з заголовками "Текст програми ім'я-програми " і "Результат роботи програми ім'я-програми "
18. Скопіюйте отриманий у вікні текстового редактора Блокнот документ на флэш-карту.