Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
15.01.2021
Размер:
510.39 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИІ НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ СІКОРСЬКОГО» ФАКУЛЬТЕТ ЕЛЕКТРОНІКИ

КАФЕДРА ЗВУКОТЕХНІКИ І РЕЄСТРАЦІЇ ІНФОРМАЦІЇ

ЗРАЗОК. ВСЕ ЗАМІНИТИ НА ПРАВИЛЬНЕ.

Лабораторна робота №1 Тема: «Використання лінійних та розгалужених структур»

Варіант №15

Виконав:

Перевірили:

ст. Павлюк Б.В

ст. викладач Булигіна Л.В.

гр. ДВ-81

ст. викладач Тітков Д.В.

Київ – 2018

1. ЗАВДАННЯ Тема: Використання лінійних та розгалужених структур.

Мета: Оволодіти практичними навичками розробки, програмування обчислювального процесу лінійної та розгалуженої структури. Отримання подальших навиків по тестування програми.

Робоче завдання: А. Знайти значення змінних, вказаних у таблиці, по заданим формулам для обчислення і набором вихідних даних. На друк вивести значення вхідних початкових даних і результати обчислень, супроводжуючи вивід вихідних змінних.

z

 

 

sin x

 

cmlnmx

 

 

 

 

 

 

 

 

 

 

 

 

1 m2 sin2 x

Знайти:

 

 

 

 

s e ax

 

 

e bx

 

 

 

x 1

x 1,5

m=0,7; x=1,7 a=0,5; b=1; c=2,1

Б. Знайти значення функції. Вивести значення ввідних початкових даних і результат обчислення значення функції, супроводжуючи найменування змінних.

at2 bsint 1

Знайти: w at b

at2 bsint 1

t 0,1

a=2,5

t 0,1

b=0,4

t 0,1

2. ТЕОРЕТИЧНІ ВІДОМОСТІ

Змінні та константи можна задавати буквами та числами, першою літерою повинна бути буква. Великі (прописні) та малі (рядкові) букви відрізняються, так буква «х» та «Х» - два різних імені. Зазвичай в програмах на Сі малими буквами позначають змінні, а великими – константи.

В Сі існує лише декілька базових типів:

Char – одиничний байт, який може містити одну літеру з допустимого набора літер;

Int – ціле, зазвичай відображається на природній уяві цілих в

машині;

Float – число з плаваючою крапкою одинарної точності;

Double – число з плаваючою крапкою подвійної точності. Бінарними арифметичними операторами є +, -, *, /, а також оператор

взяття модуля %. Операторами відношення є >, >=, <, <=. Функція pow(х,а) підносить число х в степінь а. Функція exp(x) підносить число е в степінь х.

Функція printf() виводить на екран те, що знаходиться у дужках. При записі printf("rozvjazok 1 %f \n",y”), функція виведе на екран rozvjazok 1 і те число y, яке ми отримаємо у розрахунках самої програми. «\n» означає, що результат буде виводитись з нового рядка.

Знак «=» - присвоєння. Наприклад, запис «а=5» означає, що ми присвоїли змінній а значення 5.

Алгоритм – деяка конкретна послідовність правил, однозначно визначаючих процес перетворення попередніх та проміжних даних в результат вирішення завдання. Для виконання першого завдання нам доведеться використати лінійний алгоритм, для вирішення другої задачі – розгалужений, для третього завдання – циклічний.

Лінійним алгоритмом називають такий алгоритм, дії якого виконуються у заданому програмістом порядку одна за одною.

Приклад

початок

a = 3 b = 5

S = a*b

S

кінець

#include <stdio.h> int main()

{

float a = 3, b = 5, S; S = a * b;

printf("s = %f", S); return 0; }

Алгоритм зветься розгалуженим, якщо послідовність виконання кроків алгоритму змінюється в залежності від деяких умов.

Умова – целогічний вираз, який може приймати два значення: "так" – якщо умова вірна або "ні" – якщо умова не вірна.

Конструкцію if-else використовують, щоб направити программу тим чи іншим шляхом виконання. В загальному вигляді її можна записати так:

if (вираз-умова) інструкція

else

інструкція-else

Зрозуміло, що інструкція може бути як проста так і складна, представлена блоком.

Програма піде шляхом інструкція тоді, й тільки тоді, коли вираз-умова є істинним висловом. Інакше программа попаде в секцію else, якщо вона присутня. Секція else не є обов'язковою.

Будь-яка умова складається з трьох частин: ліва частина, знак порівняння, права частина.

Приклад Як приклад використання розгалужених алгоритмів створимо програму

для перевірки корректності введення даних при розрахунку квадратного кореня. Блок-схема цього алгоритму матиме наступний вигляд:

початок

t = 2,2

х>=0

Так

y

кінець

Код програми:

#include <stdio.h> #include <math.h> int main()

{

float x = 9, y; if (x >= 0)

{

y = sqrt(x); printf("y = %f", y);

}

else printf("x < 0"); return 0;

}

3.БЛОК-СХЕМИ ПРОГРАМ Блок-схема програми А

Початок

m, x, a, b, c;

m=0,7; x=1,7 a=0,5; b=1; c=2,1

z

 

 

sin x

cmlnmx

 

 

 

 

 

 

1

m2 sin2 x

 

s e ax x 1 e bx x 1,5

z ,s;

Кінець

Блок схема програми Б

Початок

a, b, t, w;

a=2,5 ;b=0,4;

t <0,1

Ні

 

Так

 

W=

sqrt(a*t*t+b*sin(t)+1)

w

Кінець

Ні

t == 0,1

Так

W=a*t+b W=sqrt(a*t*t+b*sin(t)

+1)

4. ЛІСТИНГИ ПРОГРАМ

Лістинг лінійної програми

#include <stdio.h> #include <stdlib.h> #include<math.h>

int main()

{

double m, x, a, b, c, Z, S;

m = 0.7; x = 1.7; a = 0.5; b = 1; c = 2.1;

Z = (sin(x) / (sqrt(1 + m*m*sin(x)*sin(x))) - c*m*log((float)10)*m*x); S = exp(-a*x)*sqrt(x + 1) + exp(-b*x)*sqrt(x + 1.5);

printf("S=%f Z=%f \n", S, Z); system("pause");

return 0;

}

Лістинг програми з розгалуженням

#include <stdio.h> #include <stdlib.h> #include<math.h> int main() {

double a, b, t, w; a = 2, 5; b = 0, 4; printf("t="); scanf_s("%lf", &t);

if (t < 0.1) w = sqrt(a*t*t + b*sin(t) + 1); else {

if (t == 0.1) w = a*t + b;

else w = sqrt(a*t*t + b*sin(t) + 1);

}

printf("%f \n", w); system("pause"); return 0;

}

5. РЕЗУЛЬТАТИ РОБОТИ ТА ЇХ АНАЛІЗ

Після запуску лінійної програми отримано результат, відображений на рисунку 5.1:

Рисунок 5.1 – Результат роботи лінійної програми

Після запуску другої програми, ми отримоємо результат, зображений на рисунку 5.2:

Рисунок 5.2 – Результат роботи програми з розгалуженням

Після введення значення для змінної «t» з'являється три варіанти розвитку нашої системи (рисунок 5.3 для t< 0.1, рисунок 5.4 для t=0.1, рисунок

5.4 для t >0.1):

Рисунок 5.3 - другий результат результат роботи програми з розгалуженням

W= sqrt(a*t*t+b*sin(t)+1)=1.0009 при t=0.03(t<0.1)

Рисунок 5.4 третій результат роботи програми з розгалуженням

W=a*t+b=0.2 при t=0.1 (t=0.1)

Рисунок 5.5 - четвертий результат роботи програми з розгалуженням

W=sqrt(a*t*t+b*sin(t)+1)= при t=3 (t>0.1)

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