Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_OT-1.doc
Скачиваний:
14
Добавлен:
17.03.2016
Размер:
1.15 Mб
Скачать

Оператори організації переходів на мові "сі"

Мета практикуму – розробка програмного забезпечення на мові програмування "СІ" із використанням операторів умовного переходу.

  1. ТЕОРЕТИЧНІ ВІДОМОСТІ

1.1. Для реалізації умовних переходів у мові "Сі" використовується оператор if. Структура оператора має вигляд

if (<умова>) <оператор1>; else <оператор2>;

Якщо <умова>, що знаходиться в дужках після оператора if, істинна, то виконується <оператор 1>, в іншому разі – <оператор 2>. Else та <оператор 2> можуть бути відсутніми. Якщо в тілі умови необхідно виконати більше одного оператора, то вони беруться у фігурні дужки {}.

Приклад 1. З клавіатури вводяться два цілих числа a і b. Необхідно порівняти їх значення і видати результат порівняння на екран.

#include <stdio.h>

main()

{int a,b;

puts("Input a and b");

/*введіть a і b*/

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

if (a>b) puts ("a>b");

else {if (a==b) puts ("a=b");

else puts("a<b");}

}

Приклад 2. Вирахувати значення функції y={ax2+bx+c, якщо x>2; ax2-bx+c, якщо x<2; a+b+c, якщо x=2;}.

#include <stdio.h>

main()

{int a,b,c,x,y;

printf("\nInput a b c x\n");

/*введіть a b c x*/

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

if (x>2) y=a*x*x+b*x+c;

else {if (x<2) y=a*x*x-b*x+c;

else y=a+b+c;}

printf("y=%d",y);

}

1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:

Switch (вираз)

{

case константи_1: інструкції_1;

case константи_2: інструкції_2;

………………………………………………………………………………

case константи_n: інструкції_n;

default: інструкції

}

У операторі switch перевіряється умова рівності виразу одному із наборів констант константи_1, константи_2,…, константи_n, і виконання відповідного набору інструкцій. У випадку, коли жодна із умов не виконується, відбувається перехід на вітку default.

Приклад 3. Реалізувати найпростіший калькулятор. З клавіатури вводиться значення a, операція (+ або -, або *, або %) у вигляді символу (тип char). За допомогою оператора switch виконати операцію і вивести значення виразу на екран.

#include <stdio.h>

main()

{int a,b,y;

char znak;

printf("\n\tInput a, + or - or * or %, b (without spaces between symbols\n\n");

/*введіть a, + або - або * або %, b (без пропусків між символами)*/

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

switch(znak)

{case '+': y=a+b; break;

case '-': y=a-b; break;

case '*': y=a*b; break;

case '%': y=a%b; break;

default: printf("Error"); break;}

if((znak=='+')||(znak=='')||(znak=='*')||

(znak=='%')) printf("a%cb=%d",znak,y);

}

  1. ЗАВДАННЯ НА РОБОТУ

Розробити та перевірити роботу програми на мові "СІ", яка вирішує задачу відповідно до заданого нижче варіанта.

    1. Визначити, чи має студент стипендію, якщо середній бал більший 4, а кількість предметів, що були здані у додаткову сесію, не більша 2. У разі, якщо студент є сиротою, він має право на стипендію тільки за умови середнього балу, більшого 3.5.

    2. Розрахувати корені квадратного рівняння, AX2+BX+C=0, коефіцієнти якого вводяться з клавітури. Якщо дискримінант менший нуля, вивести відповідне повідомлення, та завершити виконання програми.

    3. Створити програму, яка визначає, чи паралельні дві прямі A1X+B1Y+C1=0 та А2X+B2Y+C2=0.

    4. Створити програму, яка визначає, чи перпендикулярні дві прямі, що задані у вигляді Y1=K1X+B1, Y2=K2X+B2.

    5. Задано прямокутник АBCD із вершинами А (X1;Y1) та С (X2;Y2), що відповідають головній діагоналі пряокутника. Визначити, чи лежить точка K (Xk;Yk) в межах прямокутника.

    6. Задано кільце з центром у точці А (Xa;Ya), та зовнішнім та внутрішнім радіусом R1 та R2 відповідно. Визначити, чи належить точка B (XB;YB) кільцю.

    7. Задано прямокутник АBCD із вершинами А (X1;Y1) та С (X2;Y2), що відповідають головній діагоналі прямокутника. Визначити, чи належить точка K (X3;Y3), сторонам прямокутника.

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

    9. Задано круг з центром С (XC;YC) радіусом R. Визначити, чи належить точка А (XA;YA) сектору круга, який визначається кутами α1, α2.

    10. Задано трикутник ABC, координати вершин якого A (XA;YA), B (XB;YB), C (XC;YC). Визначити, чи належить точка D (XD;YD) площині трикутника.

  1. КОНТРОЛЬНІ ЗАПИТАННЯ

3.1. Який оператор застосовується для реалізації умовного переходу.

3.2. Який оператор застосовується для організації умовного переходу по одному із багатьох варіантів.

3.3. Для чого слугує ключове слово else.

3.4. Для чого слугує ключове слово default.

3.5. З якою метою при застосуванні оператора switch застосовуються оператори break.

Комп’ютерний практикум № 12

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