Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПрактикаC1.doc
Скачиваний:
5
Добавлен:
14.02.2016
Размер:
325.63 Кб
Скачать

Лабораторна робота №5

Тема: Створення та реалізація програм із розгалуженням.

Мета: Набути уміння та навички розробки та описання програм з розгалуженням.

Хід роботи

  1. Постановка задачі .

Варіант 7

Знайти квадрат числа, якщо дане число парне і куб числа, якщо воно непарне.

Дано число х.

Проаналізувати умову.

  1. Побудова математичної моделі.

Використовуємо операції порівняння >,<,<=,=>.

Якщо, X%2==0 то x3 , якщо, X%2!==0 то x2 , якщо х=0, то (4uclo neparne, ni neparne).

  1. Побудова алгоритму.

  1. Складання сценарію діалогу ПК з користувачем.

  • Користувач вводить x;

  • Програма визначає чи число є парне чи непарне;

  • Якщо число парне то х підносимо до квадрату, якщо число не парне х підносимо до кубу.

  • Якщо число = 0 , то виводимо на екран «Число ні парне ні непарне».

  1. Складання програми.

#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;

}

  1. Відлагодження.

Під час компілювання не виникло помилок.

  1. Тестування програми.

BBegitb 4uclo2

4

BBegitb 4uclo3

27

  1. Висновок: Під час виконання лабораторної роботи №5 я набув уміння та навички для роботи з програм з розгалуженням.

Контрольні питання.

  1. if(умова) <Оператор1>.

Else <Оператора2>

  1. У скороченої форми немає else.

  2. ромб.

  3. >,<,<=,=>,&&(логічне і)

  4. Логічний оператор використовується для об’єднання виразів порівняння і відповідності з правилами логічного І, або логічного АБО.

  5. int max (int a, int b, int c) ;

{

Int m=(a>b)?a:b;

Return (m>c)? mc;

  1. math.h

  2. Булівський (Bool) тип даних

Лабораторна робота №6

Тема: Створення та реалізація програм із розгалуженням.

Мета: Набути уміння та навички розробки та описання програм з розгалуженням

Хід роботи

  1. Постановка задачі

Увести довільне значення Х та обчислити значення функції

y=

Проаналізувати умову

  1. Побудова математичної моделі

y=

  1. Побудова алгоритму

Функція Function1 Функція Function2

  1. Сценарій діалогу ПК з користувачем

  1. Користувач вводить змінну Х,a,b,c,d

  1. Програма перевіряє умову, та залежно від умови викликає функцію, функція обраховує за формулою значення Y, повертає значення в точку виклику функцію.

  1. Програма виводить результат на екран

  1. Складання програми

#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;

{

  1. Відлагодження

Під час компіляції виникла помилка в зв’язку з тим що не поставив операторну дужку.

  1. Тестування програми

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

Висновок

Під час цієї лабораторної роботи я вдосконалив свої вміння роботи з розгалуженням та використанням функцій.

Контрольні питання

  1. Коли використається одна умова. 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

  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

  2. Синтаксис :

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. умова ? вираз_1 : вираз_2

Лабораторна робота №7

Тема: Команда вибору та команда без умовного переходу

Мета: Набути уміння та навички розробки та описання програм з командою вибору та командою без умовного переходу

Хід роботи

  1. Постановка задачі

Нехай оплата праці залежить від типу роботи (a,b,c) і визначається за формулою:

Z=

Знайти оплату праці

  1. Побудова математичної моделі

  1. Побудова алгоритмуПрямая со стрелкой 6

  1. Сценарій діалогу ПК з користувачем

  1. Користувач вводить тип роботи a, або b, або c , якщо даны введенно не вирно то видодить на екран «Дани введенно не вирно»

  2. Якщо тип роботи a програма обчислює оплату праці і виводить на екран результат, якщо ні програма йде далі до b обчислює оплату праці і виводить на екран, якщо ні йде до третього випадку c обчислює плату праці і виводить на екран, якщо тип роботи не відповідає жодній з умови програма виводить на екран що дані введені не вірно і далі за допомогою мітки програма повертається до мітки і виводить на екран запит на ввід типу роботи.

  1. Складання програми

#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);

}

  1. Відлагодження

Під час компілювання виводило багатозначне число, тому що я використав не вірний тип даних (int), але потім я змінив на (float), та програма почала виводити нормальне значення.

  1. Тестування програми

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