Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

5.1 Оператор розгалуження if

Приклад 1.Синтаксис оператора розгалуження if

If ( Вираз ) true-оператор;

де «Вираз» – це вираз довільного вигляду, що інтерпретується мовою C як логічне «так» (true), тобто будь-яке відмінне від нуля значення, або «ні» (false) у випадку якщо значення виразу дорівнює нулю.

Виконання оператора if починається з обчислення виразу, якщо значення виразу відмінне від нуля, то виконується true-оператор, а потім наступний за if оператор; якщо значення виразу дорівнює нулю, то true-оператор пропускається і керування передається наступному за if оператору. true-оператор може містити простий чи складений оператор.

Блок-схема оператора if зображена на рисунку 5.1.

Рисунок 5.1 – Блок-схема оператора розгалуження if

Приклад 2. Написати програму обчислення вартості розмови по телефону з врахуванням 20% знижки, яка надається по суботам та неділям.

#include <stdlib.h>

#include <stdio.h>

int main()

{

int time; /*тривалість розмови, хвилин*/

int day; /* день тиждня */

float sum; /*вартість розмови*/

printf("Vveditj tryvalistj rozmovy:\n");

scanf("%i",&time);

printf("Vveditj denj tyznya (1-7):\n");

scanf("%i",&day);

sum = 2.4 * time;

if (day == 6 || day == 7)

{

printf("E znygka 20%\n"); /*Повідомлення про знижку*/

sum = sum * 0.8;

}

printf("Vartistj rozmovy: %3.2f\n", sum);

system("PAUSE");

return 0;

}

5.2 Оператор розгалуження if-else

Розглянутий вище оператор if можна розглядати як окремий випадок оператора if-else.

Приклад 3.Синтаксис оператора if-else .

If ( Вираз ) true-оператор; else false-оператор;

Блок-схема оператора if-elseзображена на рисунку 5.2.

Рисунок 5.2 – Блок-схема оператора розгалуження if-else

Виконання оператора if-else починається з обчислення виразу, якщо значення виразу відмінне від нуля, то виконується true-оператор, а потім наступний за if-else оператор; якщо значення виразу дорівнює нулю, то виконуєтьсяfalse-оператор а потім наступний за if-else оператор. Якtrue-оператор так і false-оператор можуть бути простим чи складеним оператором.

Приклад 4Обчислити площу кільця, радіуси отвору та кільця задати з клавіатури, у випадку якщо введений радіус отвору більший за радіус кільця видати повідомлення про помилку.

#include <stdlib.h>

#include <stdio.h>

int main()

{

float S; // S – площа кільця

float R,r; // R – радіус кільця, r - радіус отвору

printf("Vveditj R, r:\n");

scanf("%f %f",&R,&r); // Введення значень радіусів

if (r > R)

printf("Error!"); //Виведення повідомлення про помилку

else

{

S = 3.14*(R*R - r*r); // Обчислення площі кільця

printf("S = %f", S); // Виведення результату на екран

}

system("PAUSE");

return 0;

}

Оператори if та if-else можуть бути вкладеними. У цьому випадку true-блокчиfalse-блокможуть містити оператори if чи if-else.

Приклад 5.Програма рішення рівняння ax = b.

#include <stdlib.h>

#include <stdio.h>

int main()

{

float a,b,x;

printf("Vveditj a, b:\n");

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

if(a!=0)

printf("x = %f\n", b/a);

else

if(b==0)

printf("x - bydj-yake chislo\n");

else

printf("Rishenj nemae\n");

system("PAUSE");

return 0;

}

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

Соседние файлы в папке Архив WinRAR