Лабораторна робота
Оволодiння прийомами складання розгалужених алго-
ритмiв i програм, освоїння операторiв: переходу, умовного, перемикача.
Мета роботи: оволодiння прийомами складання розгалужених алго-
ритмiв i програм, освоїння операторiв: переходу, умовного, перемикача.
Завдання: знайти при у1 = 0.375 та у2 = 0.506 якщо відомо що ; а = 0.265; b = -0.883.
Короткі теоретичні відомості:
Розгалуженою називаїться програма, яка маї переходи. Порядок
виконання єє операторiв визначаїться поставленими умовами.
Для органiзацiє розгалужень в програмах мовою Сi використовую-
ться такi оператори:
- умовний оператор: IF (вираз) оператор1; ELSE оператор2;
Вiн працюї так: якщо значення виразу не дорiвнюї нулю, то далi
виконуїться оператор1, iнакше - оператор2, якщо ж оператора2 не-
маї, то - наступний оператор програми;
- оператор переходу: GOTO мiтка;
При його виконаннi вiдбуваїться безумовний перехiд на оператор
з вiдповiдною мiткою. Мiтка представляї собою iдентифiкатор;
- оператор-перемикач: SWITCH(вираз)
{оголошення;
CASE константа: оператори1;
CASE константа: оператори2;
... ...
DEFAULT: операториХ;}
Тiло перемикача представляї собою блок, в ньому можуть мiсти-
тися власнi оголошення даних. Його виконання починаїться з обчис-
лення виразу, який може бути тiльки типу int. (Нагадаїмо, що лi-
тернi константи типу char можуть сприйматися як коди лiтер i мати
тип int). Подальше виконання операторiв починаїться вiд того мiс-
ця, де константа спiвпадаї зi значенням виразу, до слова default
або, якщо його немаї, - до кiнця блока, незважаючи на те, що ниж-
че трапляться оператори з iншими константами - мiтками. Операто-
риХ виконуються, якщо значення виразу не спiвпадаї нi з однiїю
константою;
- оператор припинення BREAK;
Дiя цього оператора приводить до виходу за межi блока.
Блок-схема матиме такий вигляд
Початок
а = 0.265; b = -0.883.
ввід у
так
ні
так
ні
друк друк
“не існує” l
Кінець
Ідентифікація змінних:
Змінна | Ідентифікатор
a | a
b | b
y | y
l | l
Програма:
Варіант №1
if |
Варіант №2
switch
#include <math.h>
main()
{
float a=0.265,b=-0.883,y,l;
clrscr();
printf("Введіть аргумен y=");
scanf("%f",&y);
if((y<abs(b)/2)&&(y>a))
{
l=a*y+y*(pow(sin(y+b),2));
}
else
if(y>=abs(b))
{
l=pow(y,2)*a/(2.5+y)+b*y/a;
}
else
{
printf("Не існує");
}
printf("При y=%.3f: l=%f\n",y,l);
getch();
} | include <math.h>
main()
{
float a=0.265,b=-0.883,y,l;
int c;
clrscr();
printf("Введіть аргумент y=");
scanf("%f",&y);
c=y;
if((y<abs(b)/2)&&(y>a)) c=1;
if(y>abs(b)) c=2;
switch(c)
{
case 1: l=a*y+y*(pow(sin(y+b),2)); break;
case 2: l=pow(y,2)*a/(2.5+y)+b*y/a; break;
default: printf("Не існує");
exit();
}
printf("При y=%.3f: l=%f\n",y,l);
getch();
}
Результати:
Pru y = 0.375 l = -1.236566
Pru y = 0.506 l = -1.663459
Висновок: Я оволодiв прийомами складання розгалужених алгоритмiв i програм, освоїв оператори: переходу, умовного перемикача.