1.3. Приклад виконання роботи
Умова: написати програму для обчислення лінійного арифметичного вираження
.
При x = 2.45, y = – 0.423?10-2, z = 1.232?103 відповідь h = 6.9465.
Текст програми:
#include <iostream.h>
#include <math.h>
int main ()
{
double x,y,z,a,b,c,h;
cout << "Vvedite x: ";
cin >> x;
cout << "Vvedite в: ";
cin >> в;
cout << "Vvedite z: ";
cin >> z;
а = pow(x,2*y)+exp(y-1);
b = 1+x*fabs(у-tan(z));
з = 10*pow(x,1/3.) -log(z);
h = a/b+c;
cout << "Result h= " << h << endl;
return 0;
}
Для компіляції, компоновки і запуску програми на виконання використовуються наступні пункти підміню Build:
Compile (Ctrl+F7) – компіляція вибраного файлу. Результати компіляції виводяться у вікно Output.
Build (F7) – компоновка проекту. Компілюються всі файли, в яких сталися зміни з моменту останньої компоновки. Якщо компоновка прошла без помилок, то середовище програмування створить виконуваний файл з розширенням ехе, який можна буде запустити на виконання.
Rebuild All – перекомпонування проекту. Компілюються всі файли проекту незалежно від того, чи були в них проведені зміни чи ні.
Execute (Ctrl+F5) – виконання виконуваного файлу, створеного в результаті компоновки проекту. Для файлів, до яких були внесені зміни виконується перекомпилирование і перекомпонування.
Якщо в процесі компіляції були виявлені синтаксичні помилки, то виводиться відповідне повідомлення. В цьому випадку необхідно послідовно виправляти помилки і компілювати проект знову. Якщо синтаксичних помилок немає, але результат виконання програми невірний, необхідно шукати логічні помилки. Для цього слід використовувати вбудований в систему відладчик (див. лаб. роботу №2).
Після закінчення роботи проект можна закрити, вибравши File – Close Workspace, або закрити застосування MVC++.
Для відкриття збереженого раніше проекту необхідно вибрати File – Open Workspace... У діалоговому вікні, що відкрилося, вибрати теку проекту і відкрити в ній файл з розширенням dsw.
Обчислити значення вираження при заданих вихідних даних. Порівняти набутого значення з вказаним правильним результатом.
1.

При x = 14.26; в = – 1.22; z = 3.5( відповідь s = 0.749155.
2.

При x = –4.5; в = 0.75( ; z = –0.845 відповідь s = –3.23765.
3.

При x = 3.74 ; y=–0.825; z = 0.16 відповідь s = 1.05534.
4.

При x = 0.4 ; в = –0.875; z = –0.475 відповідь s = 1.98727.
5.

При x = –15.246; в = 4.642 ; z = 21 відповідь s = –182.038.
6.
![]()
При x = 16.55 ; в = –2.75; z = 0.15 відповідь s = –40.6307.
7.

При x = 0.1722; в = 6.33; z = 3.25 відповідь s = –205.306.
8.

При x = –2.235 ; в = 2.23; z = 15.221 відповідь s = 39.3741.
9.

При x = 1.825 ; в = 18.225; z = –3.298 відповідь s = 1.21308.
10.
![]()
При x = 3.981 ; в = –1.625 ; z = 0.512 відповідь s = 1.26185.
11.

При x = 6.251; в = 0.827; z = 25.001 відповідь s = 0.712122.
12.
При x = 3.251; в = 0.325; z = 0.466 відповідь s = 4.23655.
13.
.
При x = 17.421; в = 10.365 ; z = 0.828 відповідь s = 0.330564.
14.
.
При x = 12.3 ; в = 15.4; z = 0.252 відповідь s = 82.8256.
15.
.
При x = 2.444; в = 0.869 ; z = –0.13 відповідь s = –0.498707.
Операції порівняння застосовуються при роботі з двома операндами і повертають true (1), якщо результат порівняння – істина, і false (0), якщо результат порівняння – брехня. У мові Сі визначені наступні операції порівняння: < (менше), <= (менше або рівно) > (більше), >= (більше або рівно) != (не рівно), = = (рівно).
Логічні операції працюють з операндами скалярних типів і повертають результат булева типа. Існує три логічні операції:
! – заперечення, або логічне НЕ;
&& – логічне І;
|| – логічне АБО.
2.2. Пріоритет операцій в С++
|
Тип операції |
Оператори |
Зменшення пріоритету
|
|
Дозволи зоні дії |
:: |
|
|
Інші |
[ ], ( ), «.» (крапка) |
|
|
Унітарні |
&, +, – !, префікс ++ і – |
|
|
Унітарні |
*, –> |
|
|
Арифметичні |
*, /, % |
|
|
Арифметичні |
+, – |
|
|
Унітарні |
постфікс ++ і – |
|
|
Порозрядне зрушення |
<<, >> |
|
|
Порівняння |
>, <, >=, <= |
|
|
Порівняння |
==, != |
|
|
Порозрядні логічні |
& |
|
|
Порозрядні логічні |
^ |
|
|
Порозрядні логічні
|
| |
|
|
Логічні |
&& |
|
|
Логічні |
|| |
|
|
Умовна |
?: |
|
|
Привласнення |
=, *=, /=, %=, +=, –=, <<=, >>= &=, ^=, |= |
|
|
Послідовність |
«," (кома) |
2.3. Оператор умовної передачі управління if
Формат оператора вибору:
if (логічне вираження) оператор 1;
else оператор 2;
Якщо логічне вираження достеменне, то виконується оператор 1, інакше – оператор 2.
2.4. Оператор множинного вибору switch
Загальна форма оператора наступна:
switch(змінна вибору){
case const 1: оператори 1 ; break;
.
case const N: оператори N; break;
default: оператори N+1;
}
При використанні оператора switch спочатку аналізується змінна вибору і перевіряється, чи збігається її значення із значенням однієї з констант. При збігу виконуються оператори цього case. Конструкція default (може бути відсутнім) виконується, якщо результат вираження не збігся ні з однією з констант.
2.5. Приклад виконання роботи
Умова. Обчислити значення вираження
При виконанні завдання передбачити вибір вигляду функції f(x): sh(x), x2 або ex.
Текст програми:
#include <iostream.h>
#include <math.h>
int main()
{
double x,y,f,a,s;
int до;
cout << "Vvedite x "; cin >> x;
cout << "Vvedite в "; cin >> в;
cout << "Viberite f: 1 - sh(x), 2 - x^2, 3 – exp(x)"; cin >> до;
switch(k)
{
case 1: f=sinh(x); break;
case 2: f=pow(x,2); break;
case 3: f=exp(x); break;
default: cout << "Ne vuibrana funkciya "; return 1;
}
a=fabs(x*y);
if (a<5) {
cout << "Net rezultata" << endl;
return 1;
} else
if (a>10) s=fabs(f)+log(y);
else
if (a<=10 && a>5) s=exp(f+y);
else s=sin(x)+tan(y);
cout << "RESULT = " << s << endl;
return 0;
}
2.6. Індивідуальні завдання
При виконанні завдання передбачити вибір вигляду функції f(x): sh(x), x2 або ex. Передбачити виведення інформації про вибрану гілку обчислень.
|
1. |
|
2. |
|
|
3. |
|
4. |
|
|
5. |
|
6. |
|
|
7. |
|
8. |
|
|
9. |
|
10. |
|
|
11. |
|
12. |
|
|
13. |
|
14. |
|
|
15. |
|
|
|
Работа №3
Програмування циклічних алгоритмів
3.1. Оператор циклу for
Загальний вигляд оператора:
for (вираження, що ініціалізувало; умова;
инкрементирующее вираження)
{
тіло циклу
}
Вираження, що ініціалізувало, виконується лише один раз на початку виконання циклу і, як правило, ініціалізував лічильник циклу.
Умова містить операцію відношення, яка виконується на початку кожного циклу. Якщо умова дорівнює 1 (true), то цикл повторюється, інакше виконується наступний за тілом циклу оператор.
Інкрементірующєє вираження, як правило, призначене для зміни значення лічильника циклу. Модифікація лічильника відбувається після кожного виконання тіла циклу.
3.2. Оператор циклу while
Оператор циклу з передумовою. Загальний вигляд оператора:
while (умова)
{
тіло циклу
}
Організовує повторення операторів тіла циклу до тих пір, поки умова достеменна.
3.3. Оператор циклу do
Оператор циклу з умовою поста. Загальний вигляд оператора:
do {
тіло циклу
}
while (умова);
Організовує повторення операторів тіла циклу до тих пір, поки умова достеменна.
3.4. Відладка програми
Для пошуку логічних помилок використовується вбудований відладчик.
Для покрокового виконання програми необхідно натискувати клавішу F10. При кожному натисненні виконується поточний рядок. Якщо необхідно покроково перевірити текст функції, що викликається, то слід натискувати F11. Для дострокового виходу з функції натискувати Shift+F11. Якщо необхідно почати відладку з певного місця програми, то треба встановити курсор у відповідний рядок програми і натискувати Ctrl+F10.
Іншим способом відладки є установка точок переривання програми. Для цього треба помістити курсор в потрібний рядок і натискувати F9. Точка переривання позначається червоним кружком на спеціальному полі, розташованому зліва від вікна тексту програми. Для видалення точки переривання слідує в необхідному рядку повторно натискувати F9. Кількість точок переривання в програмі може бути будь-яким.
Для виконання програми до точки переривання необхідно натискувати F5. Для продовження відладки натискується клавіша F5 (для виконання програми до наступної точки переривання) або використовуються клавіші для покрокової відладки.
Жовта стрілка на полі зліва від вікна тексту програми вказує на рядок, який буде виконаний на наступному кроці відладки.
Для контролю за значеннями змінних зручно використовувати наступний спосіб: підвести покажчик миші до змінної, що цікавить, і затримати його на декілька секунд. На екрані поряд з ім'ям змінної з'явиться вікно, що містить поточне значення цієї змінної. Окрім цього, значення змінних відображуватимуться у вікнах, розташованих знизу. У лівому нижньому вікні відображуються значення останніх використаних програмою змінних. У правому нижньому вікні (Watch) можна задати імена змінних, значення яких необхідно контролювати.