Архітектура комп'ютера ЗПІ-91-20210115T104819Z-001 / протокол
.pdfМІНІСТЕРСТВО ОСВІТИІ НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ СІКОРСЬКОГО» ФАКУЛЬТЕТ ЕЛЕКТРОНІКИ
КАФЕДРА ЗВУКОТЕХНІКИ І РЕЄСТРАЦІЇ ІНФОРМАЦІЇ
ЗРАЗОК. ВСЕ ЗАМІНИТИ НА ПРАВИЛЬНЕ.
Лабораторна робота №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)
Перевірені на калькуляторі значення збігаються зі значеннями, отриманими при розрахунку другої програми. Це означає, що дві програми працюють правильно.