Оператори
Будь-яка програма складається з послідовності операторів. Ознакою закінчення оператора є крапка з комою “;”. Так запис S=5 не є оператором, це просто вираз, а S=5; це вже оператор присвоювання. Аналогічно Паскалю у мові C розрізняють прості оператори і блоки.
Блок - це група операторів, що міститься у фігурних дужках, вони використовуються:
1) щоб згрупувати кілька логічно зв’язаних операторів в один;
2) як тіло функції;
3) для локалізації дії описів.
Оператор if
Оператор if-else використовується для вибору одного з двох варіантів рішення. Синтаксичний опис оператора if-else:
if(вираз)
оператор 1;
else
оператор 2;
Обчислюється “вираз”, якщо його значення “істина” (тобто не нуль) виконується “оператор 1”, якщо “не істина” (тобто нуль) виконується оператор 2. Частина else може бути відсутня. При вкладених if-else необхідно пам’ятати, що else відноситься до внутрішнього if.
if(x>0)
if(a>b) z=a;
else z=b;
Якщо треба змінити порядок необхідно використати фігурні дужки, тобто виділити блок.
if(x>0)
{ if(a>b) z=a; }
else z=b;
Щоб розгалузити програму в кількох напрямках можна використати конструкцію: else if
if(вираз 1) оператор 1;
else if (вираз 2) оператор 2;
else if (вираз 3) оператор 3;
else оператор 4;
Якщо <вираз 1> - “істина” виконується оператор1, якщо “не істина” перевіряється вираз 2. Якщо <вираз 2> - “істина”, виконується оператор 2 і так далі.
Оператор switch
Оператор switch (перемикач) використовується для вибору одного з багатьох варіантів. Він подібний до оператора case у Паскалі.
Синтаксис оператора switch:
switch (вираз) {
case <константа вибору 1>:оператор 1;
case <константа вибору 2>:оператор 2;
…
default: оператор n }
Якщо “вираз” співпадає з одною із констант вибору, то виконується відповідний оператор або блок операторів. Якщо “вираз” не співпадає ні з однією з констант вибору - виконується оператор після слова “default”.
Для прикладу промоделюємо роботу світлофора.
#include<stdio.h>
main()
{
char ch;
printf(“введи першу літеру кольору”);
scanf(“%с\n”,ch);
switch (ch)& {
case `ч`: printf(“Зачекайте\n”); break;
case `ж`: printf(“Увага\n”); break;
case `з`: printf(“Ідіть\n”); break;
default: printf(“такого кольору у світлофора немає”); break;
} }
“Вираз” і константи вибору повинні бути цілого типу, або типу char. Заборонено використовувати в якості константи вибору змінну. Оператор break здійснює негайний вихід з оператора switch. Якщо цього оператора немає, то будуть виконані оператори всіх варіантів після вибраного.
Лабораторне завдання
Скласти програму знаходження функції для різних значень аргументу . Вивести на друк значення аргументу, функції і проміжних змінних. Передбачити у програмі обхід алгебраїчних операцій, які можуть при певних значеннях аргумента та інших змінних мати невизначений результат, тобто ділення на нуль, добування кореня парного степеня з від”ємного числа, логарифма від”ємного числа і тому подібне.
,
,
,
, , .
Текст програми
# include<stdio.h>
# include<math.h>
main () /* Example of program for Lab. No 1 */
{
float t1,t2,x1,x2,x3,y;
int ioz;
/* Inputting the data */
printf("\n");
printf("Input the datas\n");
/* ioz - Indication for repeating the program */
mm: printf("Index of repeating ioz\n");
scanf("%d",&ioz);
if(ioz>0)
{
printf("x1 value\n");
scanf("%f",&x1);
printf("x2 value\n");
scanf("%f",&x2);
printf("x3 value\n");
scanf("%f",&x3);
/* Determination of parameters */
t1=0.75*sqrt(x1);t2=100.0*log(x2);
/* Calculation of Y value */
if(t1<t2)
y=sqrt(10.0*t2-15.0*t1);
else
y=sqrt(10.0*t1+15.0*t2);
/* Outputting the Y value */
printf("Y value\n");
printf("%e\n",y);
goto mm;
};
return 0;
}
Результат
Input the datas
Index of repeating ioz
1
x1 value
0.237
x2 value
1.2
x3 value
5.0
Y value
1.329830e+01
Index of repeating ioz