ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.09.2024

Просмотров: 40

Скачиваний: 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”;

Вона виконуватиметься зліва направо, а саме:

    1. відбудеться виведення тексту в лапках “а = “ (на екрані з'явиться а =);

    2. відбудеться виведення значення числа в змінній а (на екрані з'явиться а = 2);

    3. відбудеться переклад курсора на новий рядок і виведення тексту в лапках (на екрані з'явиться b =);

    4. відбудеться виведення значення числа в змінній b (на екрані з'явиться b = 5);

    5. відбудеться переклад курсора на новий рядок і виведення тексту в лапках (на екрані з'явиться с =);

    6. відбудеться виведення значення числа в змінній с (на екрані з'явиться с = 7);

    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”;