Умовні та безумовні оператори у мові програмування Сі

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Лабораторна робота "Умовні та безумовні оператори у мові програмування Сі + +"

Мета роботи: познайомитись з роботою умовного оператора й оператора перехо l а. Вивчити оператор вибору варіанта. Навчитися застосовувати їх при складанні програм.

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

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

Розглянута група операторів дозволяє організувати розгалуження в програмі. Часто, наприклад, необхідно в залежності від того чи іншого результату реалізувати одну або іншу групу операторів (інструкцій). У мові СІ для цих цілей використовуються оператори if (якщо) - else (інакше), switch (перемикач) і goto (йти к).

Оператор if має вигляд:

if (перевірка умови) інструкція1; else інструкція2;

Якщо умова в дужках приймає істинне значення, виконується інструкція1, а якщо хибне - інструкція2 (див. рис. 1).

Наприклад:

if (a> b)

z = a;

else

z = b;

Необхідно звернути увагу на крапку з комою після z = a. Тут вона обов'язкова, оскільки за if повинна слідувати інструкція, яка завжди закінчується крапкою з комою.

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

Наприклад:

if (num> 10) num = 2 * num;

printf ("% d \ n", num);

Оператор виводу буде виконуватися завжди, а оператор присвоювання тільки в тому випадку, якщо умова буде істинним.

Операції відносини, що використовуються для порівняння, наведені в таблиці 1.

Таблиця 1

Операція

Сенс

<

менше

<=

менше або дорівнює

= =

одно

> =

більше або дорівнює

>

більше

! =

не дорівнює

Не слід плутати операцію відносини "==" з операцією присвоювання "=".

Розглянемо найпростішу програму:

# Include <stdio.h>

main ()

{

int a, b;

puts ("Введіть значення a і b ");

scanf ("% d% d", & a, & b);

if (a> b) puts ("a більше b");

else puts (""); / * демонстрація оператора if - else * /

if (a == b) puts (""); / * демонстрація оператора if без слова else * /

}

Якщо для виконання програми ввести числа 5 і 3, то на екрані з'явиться рядок:

а більше b

При введенні чисел 5 і 5, на екрані з'явиться два рядки:

a менше або дорівнює b

a одно b

Іноді в умовному операторі після ключових слів if або else слід інструкція if, її називають вкладеною. Слово else завжди відноситься до ближнього попередньому йому if. Також після ключових слів if і else замість однієї інструкції може бути записано кілька інструкцій, які повинні полягати у фігурні дужки.

Наприклад, в

if (n> 0)

if (a> b)

z = a;

else

z = b;

else відноситься до внутрішнього if, що і показано з допомогою відступів. Якщо потрібна інша інтерпретація, необхідно належним чином розставити фігурні дужки:

if (n> 0)

{

if (a> b)

z = a;

}

else

z = b;

У даному прикладі else відноситься до зовнішнього if.

У складних конструкціях, що містять багато if і else, доречно вкладені if обрамляти фігурними дужками.

Замість вкладених конструкцій if-else часто доцільно використовувати складні вирази для перевірки умови. Складні висловлювання виходять шляхом об'єднання кількох простих відносин за допомогою логічних операцій. У мові СІ є три логічні операції, наведені в таблиці 2.

Таблиця 2

Операція

Сенс

& &

і

| |

або

!

НЕ

Операція! має дуже високий пріоритет, він вищий, ніж множення, і тільки круглі дужки мають більш високий пріоритет. Пріоритет операції & & вище, ніж операції | |, а обидві вони мають більш низький пріоритет, ніж операції відношення. Тому вираз

a> b & & b> c | | b> d

буде інтерпретовано так:

((A> b) & & (b> c ))||( b> d),

тобто b знаходиться в проміжку між c і a або b більше d.

Приклад

main ()

{Float x, y;

scanf ("% f", & x);

if (x> 0)

y = x * x + 1;

else

y = x + 4;

printf ("% f% f", x, y);

}

Оператор безумовного переходу

Його можна представити в такій формі: goto мітка;

Мітка - це будь-який ідентифікатор.

Наприклад: goto a2;

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

Наприклад: a2: k = 5;

Мітки у програмі описувати не потрібно. Застосування оператора безумовного переходу в мові СІ є небажаним, оскільки він порушує структурну наочність програми.

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

Оператор switch дозволяє вибрати одну з декількох альтернатив. Він записується в наступному вигляді:

switch (вираз)

{Case константа1, варіант 1; break;

. . .

case константа n, варіант n; break;

default: варіант n +1; break;}

На рис.2 представлена ​​відповідна ілюстрація.

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

Наприклад:

# Include <stdio.h>

main ()

{

char y;

scanf ("% c", & y);

switch (y)

{

case '1 ':

printf ("Гілка 1 \ n");

break;

case '2 ':

case '3 ':

printf ("Гілка 2 або 3 \ n");

break;

default:

printf ("Гілки 1,2,3 не працюють \ n");

}

}

Оператор scanf вводить змінну y. Її значення в операторі switch порівнюється з усіма константами операторів case. Якщо ввести символ "1", то на екрані з'явиться рядок:

Гілка 1

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

Гілка 2 або 3

При введенні будь-якого іншого символу управління перейде до ключового слова default і на екрані з'явиться рядок:

Гілки 1,2,3 не працюють.

2. Завдання

З таблиці 3 взяти завдання за варіантом і написати програму, використовуючи оператор умовного переходу.

З таблиці 4 взяти завдання за варіантом і написати програму, використовуючи оператор вибору. Для вибору четвертої гілки використовувати варіант з ключовим словом default.

Таблиця 3

варіанту

Зміст

Вихідні дані

a = 2

b = 1,5

c = 1

d = 3

e = 0,5

c =- 2

a = 1,5

d = 2

x = 3

a = 5

b = 1,2

y = 0,6

d = 2

a = 3,5

x = 3

i = 2,3

w = 1

x = 2,5

a = 4

b = 0,4

a = 0,5

b = 2

h = 4

R = 1,4

p = 0,6

l = 2

h = 5

R = 4

x = 0,63

c = 1,5

d = 2

a = 0,37

y = 2,6

x = 1,6

a = 0,4

a = 1,5

b = 2

x = 0,5

x = 0,5

a = 4,3

y = 2,6

d = 0,3

a = 3

y = 2,7

i = 2

x = 1

x = 0,73

y = 0,4

t = 2,6

a = 2

x = 0,54

c = 2,3

b = 1,8

R = 3

x = 0,4

a = 0,88

c = 3,6

a = -1

b = 0,8

x = 1

c = -0,7

x = 2

y = 3,5

a = 0,1

b = 4

x = 0,8

y = 0,2

a = 4

b = 5

t = 1

y = 2

a = 0,5

x = 1,8

b = 0,6

x = 1,8

y = 2

t = 4

a = 1,5

R = 4,6

b = 0,3

Таблиця 4

варіанту

Зміст

Вихідні дані

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Література

  1. Подбельський В.В. Мова Cu + +: Навчальний посібник. - М.: Фінанси і статистика, 1995, -560 с.

  2. Страуструп Б. Мова програмування Сг + +. - М.: Радіо і зв'язок, 1991. - 352 стор

  3. Собоцінскій В.В. Практичний курс Turbo Cu + +. Основи об'ктно-орієнтованого програмування. - М.: Світ, 1993. - 236 с.

  4. Романов В.Ю. Програмування на мові Cu + +. Практичний підхід. - М.: компьтер, 1993. - 160 с.

  5. Уінер Р. Мова турбо Cu. - М.: Світ, 1991. - 384 с.

  6. Юлін В.А., Булатова І.Р. Запрошення до Cu. - Мн.: Вищ. Шк., 1990, - 224 с.

  7. Котлинського Г.П., Галиновський О.І. Програмування на мові Cu. -Мн.: Вищ. Шк., 1991. - 156 с.


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
46.5кб. | скачати


Схожі роботи:
Умовні та безумовні рефлекси
Оператори циклу у мові програмування Сі
Оператори введення і виведення в мові програмування Сі
Програмування лінійних алгоритмів Опис синтаксису мови основні оператори
Оператори алгоритмічної мови Паскаль Стандартні функції і оператори роботи з рядками
Програмування на мові С
Програмування на мові Сі
Програмування на мові Асемблер
Масиви та покажчики в мові програмування Сі
© Усі права захищені
написати до нас