Лабораторна робота №5
Тема: Створення та реалізація програм із розгалуженням.
Мета: Набути уміння та навички розробки та описання програм з розгалуженням.
Хід роботи
Постановка задачі .
Варіант 7
Знайти квадрат числа, якщо дане число парне і куб числа, якщо воно непарне.
Дано число х.
Проаналізувати умову.
Побудова математичної моделі.
Використовуємо операції порівняння >,<,<=,=>.
Якщо, X%2==0 то x3 , якщо, X%2!==0 то x2 , якщо х=0, то (4uclo neparne, ni neparne).
Побудова алгоритму.
Складання сценарію діалогу ПК з користувачем.
Користувач вводить x;
Програма визначає чи число є парне чи непарне;
Якщо число парне то х підносимо до квадрату, якщо число не парне х підносимо до кубу.
Якщо число = 0 , то виводимо на екран «Число ні парне ні непарне».
Складання програми.
#include<stdio.h>
#include<math.h>
int main()
{
int x,a=0,b=0;
printf("BBegitb 4uclo",x);
scanf("%d",&x);
if(x%2==0){
a=(x*x);
printf("%d\n",a);}
if(x%2!=0){
b=(x*x*x);
printf("%d\n",b);}
if(x==0)
printf("4uclo ni naphe, ni henaphe");
return 0;
}
Відлагодження.
Під час компілювання не виникло помилок.
Тестування програми.
BBegitb 4uclo2
4
BBegitb 4uclo3
27
Висновок: Під час виконання лабораторної роботи №5 я набув уміння та навички для роботи з програм з розгалуженням.
Контрольні питання.
if(умова) <Оператор1>.
Else <Оператора2>
У скороченої форми немає else.
ромб.
>,<,<=,=>,&&(логічне і)
Логічний оператор використовується для об’єднання виразів порівняння і відповідності з правилами логічного І, або логічного АБО.
int max (int a, int b, int c) ;
{
Int m=(a>b)?a:b;
Return (m>c)? mc;
math.h
Булівський (Bool) тип даних
Лабораторна робота №6
Тема: Створення та реалізація програм із розгалуженням.
Мета: Набути уміння та навички розробки та описання програм з розгалуженням
Хід роботи
Постановка задачі
Увести довільне значення Х та обчислити значення функції
y=
Проаналізувати умову
Побудова математичної моделі
y=
Побудова алгоритму
Функція Function1 Функція Function2
Сценарій діалогу ПК з користувачем
Користувач вводить змінну Х,a,b,c,d
Програма перевіряє умову, та залежно від умови викликає функцію, функція обраховує за формулою значення Y, повертає значення в точку виклику функцію.
Програма виводить результат на екран
Складання програми
#include <stdio.h>
#include <math.h>
float function1(float y,float a, float x, float b);
float function2(float y, float x, float c,float d);
int main ( )
{
float t=0,x,y,a,b,c,d;
printf("X= ",x);
scanf("%f",&x);
printf("a= ",a);
scanf("%f",&a);
printf("b= ",b);
scanf("%f",&b);
printf("c= ",c);
scanf("%f",&c);
printf("d= ",d);
scanf("%f",&d);
t=fabs(x);
if (t<5.2)
y=function1(y,x,a,b);
if (t>=5.2)
y=function2(y,x,c,d);
printf("y=%f\n",y);
return 0;
}
float function1(float y,float a, float x, float b)
{
float k; k=tan(x+a)*log(fabs(b+3))/log(7); x=k;
y=fabs(sin(2*x-1.5)+3*sin(4*x))+2.38;
return y;
}
float f2(float y,float x,float c,float d)
{
float k; k=c*pow((x*x+d*(exp(1.25))),1.0/3); x=k;
y=cos(pow(x,2.4)+1)-fabs(sin(2*x)-5.76);
return y;
{
Відлагодження
Під час компіляції виникла помилка в зв’язку з тим що не поставив операторну дужку.
Тестування програми
X= 1
a= 2
b= 4
c= 6
d= 4
y=4.976492
X= 5
a= 7
b= 4
c= 6
d= 5
y=4.430848
X= 2
a= 3
b= 4
c= 5
d= 3
y=5.748429
X= 0
a= 0
b= 0
c= 0
d= 0
Висновок
Під час цієї лабораторної роботи я вдосконалив свої вміння роботи з розгалуженням та використанням функцій.
Контрольні питання
Коли використається одна умова. If (<умова>) {
If (<умова>) }
E1 |
E2 |
E1&E2 |
E^E2 |
E1|E2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
E1
E2
E1&&E2
E1||E2
!E1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
Синтаксис :
switch(<вираз цілого типу>) {
case <значення_1>:
<послідовність_операторів_1 >;
break; case <значення_2>:
<посл довн сть_оператор в_2>;
break;
case <значення_п>:
<послідовність_операторів_п>;
break; [default:
<послідовність_операторів_п+1>;]
}
Приклад 1:
switch(І)
{
case -1:
n++;
break; case 0:
z++;
break; case 1:
p++;
break;
}
умова ? вираз_1 : вираз_2
Лабораторна робота №7
Тема: Команда вибору та команда без умовного переходу
Мета: Набути уміння та навички розробки та описання програм з командою вибору та командою без умовного переходу
Хід роботи
Постановка задачі
Нехай оплата праці залежить від типу роботи (a,b,c) і визначається за формулою:
Z=
Знайти оплату праці
Побудова математичної моделі
Побудова алгоритму
Сценарій діалогу ПК з користувачем
Користувач вводить тип роботи a, або b, або c , якщо даны введенно не вирно то видодить на екран «Дани введенно не вирно»
Якщо тип роботи a програма обчислює оплату праці і виводить на екран результат, якщо ні програма йде далі до b обчислює оплату праці і виводить на екран, якщо ні йде до третього випадку c обчислює плату праці і виводить на екран, якщо тип роботи не відповідає жодній з умови програма виводить на екран що дані введені не вірно і далі за допомогою мітки програма повертається до мітки і виводить на екран запит на ввід типу роботи.
Складання програми
#include <stdio.h>
#include <math.h>
void main (){
char x;
int z;
vb:printf("\nBBeDiTb a a6o b a6o c \n",x);
scanf("%c",&x);
fflush(stdin);
switch(x){
case 'a':
z=199*fabs(cos(pow(14,2.4)+1)-fabs(sin(2*14)-5.76)+135);
break;
case 'b':
z=299*fabs(sin(21)-cos(21*21*21)*sin(21*21-4.2)+4.27+231);
break;
case 'c':
z=399*fabs(sin(28)-cos(28*28*28)*sin(28*28-4.2)+4.27+235.5);
break;
default:printf("DaHi BBeDeHi He BiPHo\n");
goto vb;
}
printf("z=%f",z);
}
Відлагодження
Під час компілювання виводило багатозначне число, тому що я використав не вірний тип даних (int), але потім я змінив на (float), та програма почала виводити нормальне значення.
Тестування програми
BBeDiTb a a6o b a6o c
c
z=95745.765625
BBeDiTb a a6o b a6o c
a
z=25839.412109
BBeDiTb a a6o b a6o c
b
z=70628.265625
BBeDiTb a a6o b a6o c
o
DaHi BBeDeHi He BiPHo