Міністерство освіти і науки України
Лабораторна робота №
Тема: розгалужені програми
Мета роботи: оволодіння прийомами складання розгалужених алгоритмів i програм, освоєння операторів: переходу ,умовного , перемикача.
Завдання:
При складанні програм з розгалуженням необхідно:
- скласти графічний алгоритм;
- ідентифікувати змінні;
- скласти однією або двома мовами програму, в якій передбачити введення аргументу і виведення значення обчисленої функції в кожній вітці алгоритму;
- розв’язати задачу на ЕОМ в діалоговому режимі.
варіант | завдання | аргумент | значення | a | b
12 |
r ? a
a/2>2?a/3 |
r |
8.269
2.892 |
6.324
|
21.4
Короткі теоретичні відомості:
Розгалуженою називається програма, яка має переходи. Порядок
виконання її операторів визначається поставленими умовами.
Для органiзацiї розгалужень в програмах мовою Сі використовуються такі оператори:
- умовний оператор: IF (вираз) оператор1; ELSE оператор2;
Він працює так: якщо значення виразу не дорівнює нулю, то далі виконується оператор1, інакше - оператор2, якщо ж оператора2 немає, то - наступний оператор програми;
- оператор переходу: GOTO мітка;
При його виконанні відбувається безумовний перехід на оператор з вiдповiдною міткою. Мітка представляє собою iдентифiкатор;
- оператор-перемикач: SWITCH(вираз)
{оголошення;
CASE константа: оператори1;
CASE константа: оператори2;
... ...
DEFAULT: оператори х;}
Тіло перемикача представляє собою блок, в ньому можуть міститися власні оголошення даних. Його виконання починається з обчислення виразу, який може бути тільки типу int. (Нагадаємо, що лiтернi константи типу char можуть сприйматися як коди літер i мати тип int). Подальше виконання операторів починається від того місця, де константа співпадає зі значенням виразу, до слова default або, якщо його немає, - до кінця блока, незважаючи на те, що нижче трапляться оператори з іншими константами -мітками. ОператориХ виконуються, якщо значення виразу не співпадає ні з однією константою;
- оператор припинення BREAK;
Дія цього оператора приводить до виходу за межі блока.
Блок-схема:
Ідентифікації змінних
змінна | t | r | a | b
ідентифікатор | T | R | A | B
Програма матиме такий вигляд:
#include <math.h>
#include <stdio.h>
#define A 6.347
#define B 21.4
main()
{
float R,T;
scanf (“%f”,&R);
if (R>=A)
T=(A*A+pow(R,(1/3))/(log(R+B)*log(R+B)); else
If (R<(A/2)&&R>=(A/3))
T=sqrt(A*exp(R))/R; else
{printf(“не існує”); goto mmm;}
printf (“R=%f T=%f”,R,T);
mmm:;
}
Результати:
R=8.269000 T=40.371422
R=2.892000 T=3.698927
#include <math.h>
#include <stdio.h>
#define A 6.347
#define B 21.4
main()
{
Float R,T;
Siclrser();
Scanf(“%f”,&R);
Switch((R>=A)&(R<A/2)&&(R>=A/3));
{
case1: T=(A*A+pow(R,(1/3))/log(R+B)*log(R+B));break;
case2: T=(sqrt(A*exp(R))/R);break;
default:printf(“”);goto g;
}
Printf(“R=%f T=%f”,R,T);
g:getch();
}
Висновок: на даній лабораторній роботі я оволоділа прийомами складання розгалужених алгоритмів і програм, освоїла оператори: переходу, умовного, перемикача.