ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.09.2024
Просмотров: 46
Скачиваний: 0
ЛЕКЦІЯ 6. АРИФМЕТИЧНІ ОПЕРАЦІЇ. МАТЕМАТИЧНІ ВИРАЗИ І ФУНКЦІЇ
План
1. Арифметичні операції.
2. Математичні вирази і функції.
1. Арифметичні операції
В мові С (як і в інших язиках програмування) використовуються наступні арифметичні операції: + додавання
–віднімання
* множення
/ ділення
% залишок від цілочисельного ділення.
Ці операції можна використовувати при складанні програми для обчислення суми, різниці, твори або приватного двох чисел.
Наприклад, хай задано два дійсні числа а і b. Тоді фрагмент коду
float a=6, b=2, z;
z= а + b; // Число із а додається до числа із b
// результат суми засилає в z.
z= а – b; // Із числа в а віднімається число із b
// результат віднімання засилає в z.
z= а * b; // Число із а множеться на число із b
// результат множення засилає в z.
z= а / b; // Число із а ділиться на число із b
// результат ділення засилає в z.
обчислюють відповідно суму, різницю, множення і ділення двох чисел і результат цього обчислення записується в змінну z.
Приведемо код програми, яка використовує арифметичні операції.
Задача 1. Обчислити z по формулі z=a+bc, при a=2, b = 5 і с = 7.
Перше, на що ми звернемо увагу: параметри а, b і с приймають цілі значення. Звідси слідує висновок, що і z приймає ціле значення. Для того, щоб виконати цю задачу, ми повинні спочатку в пам'ять комп'ютера ввести числа 2, 5 і 7, а потім над цими числами провести необхідні операції. Але перш ніж записати в пам'ять числа, ми повинні спочатку зарезервувати місце в пам'яті для введення цих чисел. Отже найпростіший аналіз задачі приводить до висновку, що в програмі для обчислення z треба зарезервувати чотири області пам'яті для запису і зберігання чотирьох цілих чисел. Запишемо код програми, який виконує цю частину задачі.
Слід звернути увагу на питання про структуру початкових даних, оскільки це важлива задача у всьому процесі проектування програм (книга Н. Вірта: «алгоритм + структура даних = програма»).
Програма 1. Резервує пам'ять для вирішення задачі.
void main()
{
int а, b, с, z; // Резервується пам'ять для чотирьох цілих чисел. clrscr();
// Віддаляється з екрану видачі інформація.
cout << “Ця програма виділяє пам'ять для 4 цілих чисел \n”; getch();
} // Очікується натиснення клавіші.
Тепер зашлемо конкретні числа у відведену пам'ять. Запис чисел 2, 5 і 7 в змінні а, b і с можна здійснити послідовністю наступних директив:
а = 2; b = 5; с = 7;
або директивою (задавати значення змінної можна при її оголошенні)
int а = 2, b = 5, с = 7;
Додамо перераховані директиви в код програми 1. Тоді одержимо наступну програму.
Програма 2. Засилає в пам'ять початкову інформацію.
Void main()
{ int а, b, с, z; // Резервується пам'ять для чотирьох цілих чисел.
clrscr(); // Видаляється з екрану видачі інформація.
cout << “Ця програма резервує пам'ять для чотирьох цілих чисел \n”;
cout << “і засилає в змінні а, b і с” << “ відповідно числа 2, 5, 7\n”;
а = 2; // В змінну а засилає ціле число 2.
b = 5; // В змінну b засилає ціле число 5.
с = 7; // В змінну с засилає ціле число 7.
getch(); } // Очікується натиснення клавіші.
Для того, щоб контролювати роботу програми, потрібно перевірити вміст заповнених осередків. Додаючи в програму 2 директиви виведення інформації, введені в пам'ять, одержимо наступний проміжний код програми.
Програма 3
Void main()
{ int а, b, с, z; // Резервується пам'ять для чотирьох цілих чисел.
clrscr(); // Віддаляється з екрану видачі інформація.
cout << “Ця програма резервує пам'ять для чотирьох цілих чисел\n”;
cout << “і засилає в змінні а, b і с” << “ відповідно числа 2, 5, 7\n”;
а = 2; b = 5; с = 7;
cout << “В пам'ять введена наступна інформація:\n”;
cout << “а = “ << а << “\nb = “ << b << “\nc = “ << с << “\n”;
getch(); } // Очікується натиснення клавіші.
Прокоментуємо директиву
cout << “а = “ << а << “\nb = “ << b << “\nc = “ << с << “\n”;
Вона виконуватиметься зліва направо, а саме:
-
відбудеться виведення тексту в лапках “а = “ (на екрані з'явиться а =);
-
відбудеться виведення значення числа в змінній а (на екрані з'явиться а = 2);
-
відбудеться переклад курсора на новий рядок і виведення тексту в лапках (на екрані з'явиться b =);
-
відбудеться виведення значення числа в змінній b (на екрані з'явиться b = 5);
-
відбудеться переклад курсора на новий рядок і виведення тексту в лапках (на екрані з'явиться с =);
-
відбудеться виведення значення числа в змінній с (на екрані з'явиться с = 7);
-
курсор перекладається на новий рядок.
В результаті роботи програми 3 на екрані видачі результатів знаходитиметься наступна інформація:
Ця програма резервує пам'ять для чотирьох цілих чисел і засилає в змінні а, b і с відповідно числа 2, 5, 7 В пам'ять введена наступна інформація:
а = 2
b = 5
с = 7.
Тепер для остаточного виконання задачі 1 в програму 3 після виведення початкових даних із змінних а, b і с треба додати директиви:
z = b * с; // Число з b помножується на число із с
// результат заноситься в z.
z = а + z; // Число з а підсумовується з числом з z
// результат заноситься в z.
cout << “Результат розрахунку а + b * с = “ << z << “\n”;
Написані директиви неявно указують на факт, що якщо в деяких змінних x і у знаходяться числа, то множення (складання розподіл, віднімання) цих чисел і запис результату в змінну z відбувається при виконанні директиви z = x * у. При цьому інформація в змінних x і у зберігається, а в змінній z відбувається видалення тієї інформації, яка в ній містилася до запису нового результату. Помітимо, що все сказане про операції над числами справедливе для чисел будь-якого типу.
Тепер остаточно для задачі 1 приведемо відповідний їй код програми.
Програма 4
Void main()
{ int а, b, с, z: // Резервується пам'ять для чотирьох цілих чисел.
clrscr(); // Віддаляється з екрану видачі інформація.
cout << “Ця програма обчислює значення z = а + b * с “
<< “ при а = 2, b = 5 і с = 7. \n”;
а = 2; // В змінну а засилає число 2.
b = 5; // В змінну b засилає число 5.
с = 7; // В змінну із засилає число 7.
cout << “В пам'ять введена наступна інформація: \n”;
cout << “а = “ << а << “\nb = “ << b << “\nc = “ << с << “\n”; z = b * с;
// Число з b помножується на число із с, результат заноситься в z.
z = а + z; // Число з z підсумовується з числом з а результат заноситься в z.
cout << “Результат розрахунку а + b * c= “ << z << “\n”;
getch(); } // Очікується натиснення клавіші.
Після виконання цієї програми на екрані монітора з'явиться наступний результат:
Ця програма обчислює значення z = а + bc при а = 2, b = 5 і с = 7.
В пам'ять введена наступна інформація:
а = 2
b = 5
с = 7
Результат розрахунку а + b * с = 37
Надамо інший варіант коду програми для вирішення задачі 1.
Програма 5
Void main()
{ int а = 2, b = 5, с = 7, z; // Резервується пам'ять для 4 цілих чисел.
// При визначенні змінних в пам'ять
// засилають початкові дані.
clrscr(); // Віддаляється з екрану видачі інформація.
cout << “Ця програма обчислює значення z = а + b * с “
<< “ при а = 2, b = 5 і с = 7. \n”;
cout << “В пам'ять введена наступна інформація: \n”;
cout << “a= “ << а << “\nb= “ << b << “\nc= “ << с << “\n”;
z = b * с; // Число з b помножується на число із с
// результат заноситься в z.
z = а + z; // Число з а підсумовується з числом з z
// результат заноситься в z.
cout << “z = “ << а << “+” << b << “*” << с << “= “ << z
<< “\n”;
getch(); } // Очікується натиснення клавіші.
Цей варіант програми відрізняється від попереднього директивою видачі результатів розрахунку і тим, що числа засилають в пам'ять при визначенні змінних. Корисно звернути увагу на організацію виведення результату розрахунку з використанням директиви cout. Після виконання програми на екрані з'явиться наступне:
Ця програма обчислює значення z= a+bc при а = 2, b = 5 і с = 7.
В пам'ять введена наступна інформація:
а = 2
b = 5
с = 7
z=2 + 5 * 7 = 37
Якщо величину z=a+bc треба обчислити при різних значеннях змінних, то визначати початкові значення а, b і с в коді програми незручно. незручно тому, що будь-яка зміна початкового значення або а, b або с вимагає виправлення в коді початкового тексту програми. Нижче приведений код програми обчислення z=a+bc для довільних (не тільки цілих) початкових значень чисел а, b і с.
Програма 6. Обчислює значення z=a+bc при будь-яких початкових значеннях чисел а, b, с.
Void main()
{ float а, b, с, z; // Резервується пам'ять для 4 дійсних чисел.
clrscr(); // Віддаляється з екрану видачі інформація.
cout << “Ця програма обчислює значення z = а + b с “
<< “ при будь-яких початкових значеннях а, b, с \n”;
cout << “Введи з клавіатури 4 дійсні числа а b с: \n”;