Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




y=

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

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

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

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

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

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

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

#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

Висновок

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

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

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

2.

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

3.

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

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;

}

5. умова ? вираз_1 : вираз_2

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

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

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

Хід роботи

 

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

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

Z=

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

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

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

 

 

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

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

2. Якщо тип роботи 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

Висновок

Під час цієї лабораторної роботи я навчився працювати з командою вибору та командою без умовного переходу, та вдосконалив вміння роботи з ними

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

1.

switch(<вираз цілого типу>) {

case <значення_1>:

<послідовність_операторів_1 >;

break; case <значення_2>:

<посл довн сть_оператор в_2>;

break;

case <значення_п>:

<послідовність_операторів_п>;

break; [default:

<послідовність_операторів_п+1>;]

}

2. Case означає варіант(випадок)

3. Цей оператор застосовують для негайного припинення виконання операторів while, do, for, switch

4. Вітка default (може опускатися, про що свідчить наявність квадратних дужок) означає, що якщо жодна з вищенаведених умов не задовольнятиметься (тобто вираз цілого типу не дорівнює жодному із значень, що позначені у сase-фрагментах), керування передається по замовчуванню в це місце програми

if (<умова>)

5. <оператор1>; [else <оператор2;>]

6. goto <мітка>;

<мітка> : <оператор>;

7. У скороченій формі нема else.

8. Ромб

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

10. Складений if

 if (умова) [оператор1];

If (умова) [оператор2];

}

 

11. int max (int a,int b,int c)

{

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

return (m > c) ? m : c;

}

 

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

Тема: Цикли. Таблиця мір.

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

Хід роботи

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

Побудувати таблицю відповідностей між мірами.

Варіант 7

1кабельт Брит.=0.183км=680футів










Последнее изменение этой страницы: 2018-04-12; просмотров: 507.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...