Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_OTAM_sem1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
948.74 Кб
Скачать

Умовний оператор if-else

Цей оператор використовується для вибору серед двох альтернативних способів виконання обчислень. Умовний оператор, або іншими словами, оператор розгалуження,може записуватись в скороченій і повній формах, яким відповідають схеми:

if (умова) оператори

if (умова) оператори-1 else оператори-2

У скороченому умовному операторі if обчислюється умова і, якщо її значення відмінно від нуля, виконується наступні за умовою оператори. У протилежному випадку не виконується ніяких дій. На відміну від скороченого оператора, у повному умовному операторі за словом else передбачені оператори, які виконуються, якщо значення умови дорівнює нулю. Оператори після умови або слова else записуються у фігурних дужках {}, якщо це не простий оператор.

У наступному прикладі на екран буде виведене те або інше повідомлення залежно від значення змінної temp, яка характеризує температуру:

if (temp <0)

cout << "Frost";

else cout <<"Thaw";

Замість оператора if-else можна застосовувати умовну операцію ?:, що у розглянутому прикладі має вигляд:

cout << (temp <0 ? "Frost":"Thaw");

Оператор вибору switch

Якщо необхідно реалізувати одну з декількох можливих гілок обчислень чи напрямків дій, застосовується оператор вибору switch (перемикач), що записується за наступною схемою:

switch (управляючий вираз){

case константа-1: оператори; break;

case константа-2: оператори; break;

............................

default : оператори

}

Виконання оператора починається з обчислення управляючого виразу (він повинен бути цілочисельним), після чого здійснюється перехід до групи операторів, позначених case-мітками. Зі списку вибирається case-мітка, у якій константа дорівнює управляючому виразу, і виконується оператор, що йде за міткою. Потім виконується вихід з switch завдяки наявності оператора break.

Всі константи в списку case-міток повинні бути різними, але бути того ж самого інтегрального типу. Якщо збігу з константами не відбулося, виконуються оператори, розташовані за міткою default (а при відсутності default управління передається наступному за switch операторові).

Приклад використання перемикача switch у програмі калькулятора:

#include <iostream.h>

void main(){

float x,y,res;

char op;

cout<<"Input x,y: "; cin >> x >> y;

cout<<"Input operation (+, -, *, /): "; cin >> op;

switch (op){

case '+': res=x+y; break;

case '-': res=x-y; break;

case '*': res=x*y; break;

case '/': res=x/y; break;

default: cout<<"Unknown operation";}

cout<<"Result:"<<res;

}

У даній програмі передбачено виведення на екран повідомлення «Unknown operation», якщо користувач увів неправильний символ операції.

Оператори циклу

У С/С++ є три варіанти оператора циклу: цикл із передумовою, цикл із постумовою і цикл із параметром.

Цикл із передумовою, записується за схемою:

while (умова) оператори

При кожному повторенні циклу обчислюється умова і якщо ії значення не дорівнює нулю, виконуються оператори – тіло циклу. Як приклад, розглянемо підрахунок суми елементів деякого масиву a[n] з n елементів (нумерація елементів масиву починається з 0):

int s=0, i=0;

while (i<n) {s+=a[i]; i++;}

Цикл із постумовою записується за схемою:

do оператори while (умова)

Умова обчислюється й перевіряється після кожного повторення операторів – тіла циклу. Цикл повторюється, поки умова виконується. Обчислення суми елементів масивуa[n]:

int s=0, i=0;

do {s+=a[i]; i++;} while (i<n);

Цикл із параметром записується за схемою:

for (E1; E2; E3) оператори

Спочатку обчислюється вираз E1, що виконує підготовку до початку циклу. Потім обчислюється вираз E2 і, якщо він дорівнює нулю, виконується перехід до наступного оператора програми (вихід із циклу). Якщо E2 не дорівнює нулю, виконується тіло циклу (оператори). Нарешті, обчислюється вираз E3 і знову відбувається повернення до обчислення Е2 з наступним повторенням кроків.

Щоб обчислити суму елементів деякого масиву з n елементів, можна використати наступний оператор:

for (int s=0, i=0; i<n; i++) s+=a[i];

Для переривання повторень оператора циклу будь-якого типу в тілі циклу використовують оператор break. Перехід до наступного повторення циклу з будь-якого місця тіла циклу забезпечує оператор continue.

Лабораторна робота 1. «Арифметичні операції з елементами розгалуження» (2год.)

Мета роботи: Формування уміння складати арифметичні вирази, в яких використовуються умовні оператори.

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

Оператори – це синтаксичні конструкції, що визначають дії, які виконуються програмою (див. розд. «Оператори С++»). До складу операторів зазвичай входять змінні і операції (дів. розд. «Операції в С + + »).

Постановка задачі

Скласти програмина мові С++ для обчисления функції при

– випадковом значенні аргументу;

– значенні аргументу, яке введено користувачем.

Функцію та її область визначення взяти відповідно до свого варіанту.Випадкові числа сгенерувати за домогою функції rand().

Варіанти

Функция

Интервал определения

Функция

Интервал определения

1

14

2

15

3

16

4

17

5

18

6

19

7

20

8

21

9

22

10

23

11

24

12

25

13

26

Методичні вказівки

При складанні програм використати умовні оператори або оператор вибору.

Введення та виведення даних виконати за допомогою cin та cout.

Зміст звіту

Звіт з виконаної роботи включає наступні розділи:титульний лист, постановка задачі, варіант завдання, блок-схема алгоритму, текст програми, скріншот з результатами роботи програми, висновки.

Лабораторна робота 2. «Ітераційні процеси»(2 год.)

Ціль : Формування уміння використовуватиоператорициклу, а також організовувати ітераційні процеси.

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

Поняттяряду. Ітераційний процес

Ряд – це сума елементів виду:

у якій значення кожного елемента однозначно визначається його номером . Ряд називається збіжним, якщо сума має певне скінчене значення.Звичайно ряд описується за допомогою формули для загального члена ряду. Наприклад, сума спадної геометричної прогресії описується загальним членом і сума членів прогресії дорівнює .

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

Ітераційний процес реалізується за допомогою циклу, а саме: при кожному проході циклу обчислюється окремий член ряду й додається до значення суми. У деяких випадках, щоб скоротити об'єм обчислень при знаходженні члена ряду , можна використати результат попереднього проходу циклу . Тоді наступний член ряду визначається за допомогою рекурентного співвідношення виду:

У наближених обчисленнях спадного ряду враховується скінчене число членів ряду. Їх кількість визначається на основі одного з наступних критеріїв:

  1. При обчисленні суми спадного ряду враховується рівно стільки членів, скільки необхідно для досягнення заданої точності обчислення . Цей підхід звичайно застосовують, якщо відомо точне значення суми.

  2. При обчисленні суми спадного ряду враховуються члени, що перевищують задане значення , наступні члени, які менше , відкидаються.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]