Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные расчёты - Copy.doc
Скачиваний:
1
Добавлен:
13.07.2019
Размер:
440.32 Кб
Скачать

4. Розробка та описання програми

4.1. Опис блок-схеми

Б

Ksi=-4; Ksi<=4; Ksi=Ksi+0.5

1

2

3

Початок

лок-схема програми (рис. 4.1) має 8 блоків опис кожного з яких наведений нижче.

2

6

2

7

2

8

Обчислення добротності

4

5

1

3

1

5

1

3

Кінець

67

77

Виведення

результатів

8

Рисунок 4.1 – Блок-схема програми «A4X_&_F4X.срр»

Як і будь-яка блок-схема, згідно стандартів, починається блоком «Початок».

В блоці №2 відбувається введення параметрів контуру, за допомогою оператора scanf().

В блоці №3 відбувається ініціалізація циклу, з використанням оператора for. Початкове значення «-4», крок «0.5», умова Ksi (узагальнене розладнання) менше або рівне 4, оскільки останнє розраховане значення становить 4, то умова виконується без помилок. Цикл обчислює значення добротності, АЧХ та ФЧХ контуру та виводить результат у вигляді псевдографіки. В циклі знаходяться блоки №4-7.

Блок №4 представляє собою функцію, за допомогою якої обчислюється добротність зв'язаного контуру. Функція доволі проста, виконує лише одну арифметичну операцію, та повертає значення добротності.

Блок №5 – функція для обчислення АЧХ заданого контуру, яка складається з однії формули і також повертає значення АЧХ в головну функцію.

В блоці №6 функція для обчислення ФЧХ заданого контуру, яка складається з однієї формули і також повертає значення ФЧХ в головну функцію.

Блок №7 виводить результати в основній функції у вигляді таблиці за допомогою псевдографіки.

І, як і будь-яка програма, закінчується блоком №8 «Кінець».

4.2. Опис програмного коду

Программа «A4X_&_F4X.срр» (додаток А) призначена для розрахунку параметрів зв'язаного контуру.

З самого початку програми підключаю бібліотеки stdio.h (для використання операторів printf() та scanf()), conio.h (забезпечує роботу функції clrscr() та getch()), math.h (підключення математичних констант).

Далі об’являємо прототип функції: відступ на вказану кількість позицій.

В головній функції вводяться вихідні дані, обчислюється значення добротності, фактора зв’язку, коефіцієнту зв’язку, АЧХ, ФЧХ та результати виводяться на екран у вигляді таблиці, за допомогою псевдографіки.

Далі я опишу кожен оператор функції у тому порядку, в якому вони знаходяться в функції.

Об'явлення змінних для роботи функції:

int n, Lk, Ls1, C1, R;

float C, L, L1, Ls, Q, K, X, i, a, f;

Очищення екрану:

clrscr();

Введення значень індуктивності, ємності, опору та коефіцієнта зв'язку в одиницях СІ:

printf("Какая индуктивность ваших котушок (мкГн)? ");

scanf("%d", &Lk);

printf("Какая индуктивность связи (мкГн)? ");

scanf("%d", &Ls1);

printf("Какая емкость ваших конденсаторов (нФ)? ");

scanf("%d", &C1);

printf("Какое сопротивление ваших резисторов (Ом)? ");

scanf("%d", &R);

Переведення цілих величин у величини з плаваючою точкою

L1 = Lk * pow(10,-6);

Ls = Ls1 * pow(10,-6);

C = C1 * pow(10,-9);

n = 0;

Обчислення індуктивності контуру:

L = Ls+L1;

Обчислення добротності:

Q = (sqrt(L1/C))/R;

Обчислення коефіцієнту зв’язку

K = Ls/(sqrt(L*L));

Обчислення фактора зв’зку

X = K*Q;

Виведення на екран результатів розрахунків обчислень

printf ("\n‚Вычисления:");

printf (" K = %f\n",K);

printf ("\t X = %f\n",X);

printf ("\t Q = %f\n\n", Q);

Виведення на екран верхньої частини таблиці(«шапки»)

space(22);

printf ("+---+-----+---------+---------+\n");

space(22);

printf ("| N | KSI | A4X | F4X |\n");

space(22);

printf ("+---+-----+---------+---------+\n");

Ініціалізація циклу for, обчислення в тілі циклу порядкового номеру, АЧХ, ФЧХ та виведення результатів на екран у вигляді таблиці:

for (i=-4; i<=4; i=i+0.5)

{

n=n+1;

a=(2*X)/sqrt(pow(1+X*X-i*i,2)+4*i*i);

f=M_PI/2-atan(2*i/(1+X*X-i*i));

space(22);

printf("|%3d|%5.1f| %8.6f| %8.6f|\n",n, i, a, f);

}

Далі оператор printf() закінчує таблицю виведення результатів:

space(22);

printf ("+---+-----+---------+---------+\n");

І закінчується головна функція командою

getch();

Після фукції int main(void), об'являється додаткова функція користувача для відступу на певну кількість позицій

void space(int n)

{

for(;n>0; n=n-1)

{

printf(" ");

}

}

Кіцець програми.

4.3. Результат виконання програми

Далі (рис. 4.2) зображено результат виконання програми при введенні відповідних значень індуктивності, ємності, опору та магнітного зв'язку в одиницях СІ.

Рисунок 4.2 – Результат виконання програми