Проектування програми на мові рівня С++ при рішенні на ЕОМ прикладної інженерної задачі

Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 05.12.2012
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

Вступ

1. Завдання на курсову роботу

1.1 Загальна частина

1.2 Індивідуальне завдання

2. Розробка алгоритму рішення задачі

3. Розробка програми на мові С++

3.1 Коротка характеристика мови програмування С++

3.2 Розробка програми на мові С++

4. Тестування і налагодження програми

4.1 План тестування

4.2 Тестовий приклад

5. Документування програми

Висновки

Список використаної літератури

Додаток А. Текст програми на мові С++

Додаток Б. Тестовий приклад (розрахунок на ЕОМ)

Додаток В. Блок-схема алгоритму

Вступ

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

1. Завдання на курсову роботу

Завдання на курсову роботу складається із загальної частини і індивідуального завдання. Загальна частина включає постановку конкретної прикладної задачі і опис методу її рішення. Індивідуальне завдання регламентує обов'язкові елементи, які повинні містити алгоритм і програма, що розробляється.

1.1 Загальна частина

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

Резистори мікросхеми звичайно є смужками резистивної плівки різної форми. В даній роботі розглядаються тонкоплівкові резистори тільки двох видів: у формі прямокутника (мал.1) і у формі меандру (мал.2). Розрахунок резистора полягає у визначенні його розмірів (в мм) - довжини l і ширини b для прямокутного резистора (див. мал.1), ширини смужки b, відстані між смужками a, розмірів X і Y, а також числа ланок n - для резистора у формі меандру (див. мал.2).

Размещено на http://www.allbest.ru/

Необхідні для розрахунку початкові дані зведені в таблицю. Для зручності розробки алгоритму і програми, початкові дані умовно розділені на дві групи - дані із змінними (табл.1) і постійними (табл.2) величинами, а також вказані їх реальні чисельні значення. Це дає можливість проводити контроль початкових даних і отримувати фізично обґрунтовані результати.

Таблиця 1 - Початкові дані для розрахунку (змінні значення)

Позначення і розмірність

R, кОм

с, кОм/кв

Р, мВт

Р0, мВт/мм2

Найменування

Номінальний опір резистора

Опір квадрата резистивної плівки

Потужність розсіювання резистора

Максимальна питома потужність розсіювання резистивної плівки

Значення

0,05…10000

0,01…50

5…50

10…30

Таблиця 2 - Початкові дані для розрахунку (постійні значення)

Позначення і розмірність

bтехн,

мм

lтехн,

мм

Дb,

мм

Дl, мм

гR

amin, мм

h, мм

Найменування

Мінімально допустимі ширина і довжина резистора

Похибка відтворення ширини і довжини резистора

Допустима похибка коефіцієнта форми резистора

Мінімальна відстань між смужками резистора складної форми

Крок координатної сітки

Значення

0,1

0,3

0,01

0,03

0,1

0,3

0,01

Порядок розрахунку резистора

Визначається значення коефіцієнта форми резистора kф

kф = . (1)

В залежності від значення kф обирається форма резистора:

? при 1 ? kф ? 10 - резистор прямокутної форми (мал.1);

? при 0,1 ? kф < 1 - резистор прямокутної форми, у якого довжина менше ширини (мал.1, l<b);

? при kф > 10 - резистор складної форми (використовуються резистори різних конструкцій, в даній роботі - резистор типа “ меандр ”, мал.2);

? при kф < 0,1 - резистор конструювати не рекомендується.

1. Розрахунок резисторів прямокутної форми

Шукані розміри прямокутного резистора зв'язані наступним співвідношенням:

kф = . (2)

Для резистора з kф?1 розрахунок розмірів починають з визначення ширини. Ширину резистора обирають із умови:

b ? max {bтехн b?, bпотужн}, (3)

де b? - мінімальна ширина резистора, при якій забезпечується задана точність:

; (4)

bпотужн - мінімальна ширина резистора, при якій розсіюється задана потужність:

. (5)

Після того, як визначена ширина резистора b, знаходять його довжину l за допомогою формули (2). Отримані розрахункові значення b і l округляють з урахуванням кроку координатної сітки h по формулі:

, (6)

де функція int(X) позначає виділення цілої частини X;

Wокругл, Wрозрах - відповідно округлене і розрахункове значення.

На цьому розрахунок резистора з kф?1 завершують.

Для резистора з kф<1 розрахунок розмірів починають з визначення довжини. Довжину резистора вибирають з умови:

l ? max {техн., l?, lпотужн}, (7)

де l? - мінімальна довжина резистора, при якій забезпечується задана точність:

; (8)

lпотужн - мінімальна довжина резистора, при якій розсіюється задана потужність:

. (9)

Після того, як визначена довжина резистора l, знаходять його ширину b, використовуючи формулу (2). Потім округляють набуті значення b і l по формулі (6), і на цьому розрахунок закінчують.

2. Розрахунок резистора складної форми

Розрахунок резистора типу “ меандр ” проводять в такій послідовності.

Визначають ширину резистора по формулах (3)…(5) і округляють отримане значення по формулі (6).

Знаходять довжину середньої лінії меандру

. (10)

Задають відстань між смужками а (див. мал.2). Рекомендується прийняти a=b. Якщо a<amin, то приймають a=amin.

Знаходять крок однієї ланки меандру

t = a + b. (11)

Визначають число ланок меандру по наближеній формулі

. (12)

Обчислюють довжину меандру

X = n • (a + b). (13)

Визначають ширину меандру

. (14)

Перевіряють умову

. (15)

Якщо ця умова виконується, то розрахунок закінчують. Інакше вимагається змінити конструкцію резистора через технологічні обмеження. Для цього змінюють відстань а і перераховують параметри резистора. В даній роботі при невиконанні умови (15) слід збільшити а на величину amin і повторити обчислення по формулах (11)…(14).

Кінець розрахунку

При необхідності розрахунку декількох резисторів, для кожного з них задаються свої початкові дані (див. табл.1 і табл.2) і виконуються відповідні дії за формулами (1)…(15).

Отже, остаточно загальна частина завдання на курсову роботу формулюється таким чином: розробити алгоритм і програму розрахунку e тонкоплівкових резисторів. Кількість резисторів N задається користувачем разом із іншими початковими даними до розрахунку.

1.2 Індивідуальне завдання

Номер варіанта

Контроль початкових даних

Організація взаємодії з користувачем

Використання масивів

Реалізація фрагмента методики у вигляді підпрограми (функції)

Розрахунок k-ого резистора в діапазоні значень с

Пошук максимального (max) або мінімального (min) розрахункового значення ширини b

Сортування розрахункових значень ширини b за збільшенням (зменшенням)

Введення початкових даних

Розрахункова частина в цілому

Розрахунок коефіцієнта форми kф

Вибір максимального з трьох при розрахунку b і l

Округлення розрахункових значень b і l

Розрахунок резисторів прямокутної форми

Розрахунок резисторів у вигляді меандру

Візуальний на екрані

Перевірка діапазону

“ Запит-відповідь ”

Меню користувача

Задані с1,…, сm

Задані споч, скін, ?с

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

11

+

-

+

-

+

-

max

-

-

+

1

1

-

0

-

2. Розробка алгоритму рішення задачі

Для представлення алгоритму в даній роботі був використаний графічний спосіб (метод блок-схем). Основна його перевага - це наочність. Блок-схеми наочно показують, як діють керуючі структури. Зображувати алгоритм у вигляді блок-схеми дуже зручно. Вона допомагає записати алгоритм структурно, у такому вигляді його легше зрозуміти і аналізувати.

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

Розробка блок-схеми алгоритму

В розробці блок-схеми алгоритму можна виділити наступні етапи:

1) аналіз структури даних:

визначення початкових, проміжних і результуючих даних, типів даних (змінних і масивів; констант і змінні; цілих, дійсних і символьних);

2) розробка блок-схем допоміжних алгоритмів:

а) визначення параметрів (якщо вони є) і значення, що повертається (якщо воно є), їх типів;

б) складання блок-схем, які закінчуються словом “ повернення ” і значенням, що повертається (у блоці “ пуск-зупинка ”);

3) розробка блок-схеми основного алгоритму, який можна умовно розділити на наступні частини:

а) введення вихідних даних;

б) контроль даних;

в) основний розрахунок;

г) виведення результатів основного розрахунку;

ґ) пошук максимального розрахункового значення ширини і його виведення;

д) введення даних для додаткового розрахунку;

е) додатковий розрахунок;

є) виведення результатів додаткового розрахунку.

Блок-схема алгоритму находиться в ДОДАТКУ В.

3. Розробка програми

3.1 Коротка характеристика мови програмування С++

C і C++ відносяться до числа найбільш потужних і найпоширеніших мов високого рівня.

Спочатку ця мова набула популярність як мова розробки операційної системи UNIX. На сьогоднішній день C++ стала домінуючою системно-утворюючою мовою. На неї написана більшість сучасних операційних систем, у тому числі ОС Windows.

Мова C++ з'явилася на початку 80-х років. Створена Б. Страуструпом з початковою метою позбавити себе і своїх друзів від програмування на асемблері, Сі чи різних інших мовах високого рівня.

Очевидно, що найбільше C++ запозичив з мови Сі, а також з безпосереднього його попередника мови BCPL. Ці запозичення забезпечили C++ потужними засобами низького рівня, що дозволяють вирішувати складні задачі системного програмування. Але що в першу чергу відрізняє C++ від Сі - це різна ступінь уваги до типів та структур даних. Це пов'язано з появою понять класу, похідного класу і віртуальної функції, перейнятих у свою чергу з мови Сімула 67. Це дає в C++ більш ефективні можливості для контролю типів і забезпечує модульність програми.

3.2 Розробка програми на мові С++

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

Текст програми наведений в ДОДАТКУ А.

4. Тестування і налагоджування програми

Мета тестування програми - виявлення помилок, що є в програмі.

Мета налагоджування - виявлення і усунення причин помилок.

4.1 План тестування

1) порівняння програми зі схемою алгоритму;

2) візуальний контроль програми на екрані дисплея або по роздруку;

3) трансляція програми;

4) редагування зовнішніх зв'язків (компоновка);

5) виконання програми і розрахунок тестового прикладу.

4.2 Тестовий приклад

Вихідні дані:

N = 4

R1 = 1 кОм P1 = 20 мВт с1 = 20 кОм/кв P01=10 мВт/мм2

R2 = 10 кОм P2 = 5 мВт с1 = 5 кОм/кв P01=10 мВт/мм2

R3 = 40 кОм P3 = 25 мВт с1 = 50 кОм/кв P01=10 мВт/мм2

R4 = 100 кОм P4 = 50 мВт с1 = 5 кОм/кв P01=20 мВт/мм2Вихідні дані для додаткового розрахунку:

k = 2

с = (0,5;10;50) кОм/кв

Розрахунок вручну:

1) kф = 0,05 (-?;0,1)

Резистор №1 конструювати не рекомендується.

2) kф = 2 [1;10]

Резистор №2 має прямокутну форму.

b? = 0,25 (мм)

bпотужн = 0,5 (мм)

bтехн = 0,1 (мм)

b = 0,5 (мм)

l = 1 (мм)

bокругл = 0,51 (мм)

lокругл = 1,01 (мм)

3) kф = 0,8 [0,1;1)

Резистор №3 має прямокутну форму, у нього довжина менше ширини.

l? = 0,38 (мм)

lпотужн = 1,4142 (мм)

lтехн = 0,3 (мм)

l = 1,4142 (мм)

b = 1,76775 (мм)

lокругл = 1,42 (мм)

bокругл = 1,77 (мм)

4) kф = 20 (10;+?)

Резистор №4 типу меандр.

b? = 0,115 (мм)

bпотужн = 0,2886 (мм)

bтехн = 0,1 (мм)

b = 0,2886 (мм)

bокругл = 0,29 (мм)

lсер = 5,8 (мм)

b=0,29мм < amin=0,3мм , a = 0,3 (мм)

t = 0,59 (мм)

n = 3

X = 1,77 (мм)

Y = 1,6333 (мм)

Y / a = 5,4433 < 10

Додатковий розрахунок резистора №2:

1) При с = 0,5 кОм/кв:

kф = 20 (10;+?)

Резистор типу меандр.

b? = 0,115 (мм)

bпотужн = 0,15811 (мм)

bтехн = 0,1 (мм)

b = 0,15811 (мм)

bокругл = 0,16 (мм)

lсер = 3,2 (мм)

b=0,29мм < amin=0,3мм , a = 0,3 (мм)

t = 0,46 (мм)

n = 2

X = 0,92 (мм)

Y = 1,3 (мм)

Y / a = 4,3333 < 10

2) При с = 10 кОм/кв:

kф = 1 [1;10]

Резистор має прямокутну форму

b? = 0,5 (мм)

bпотужн = 0,7 (мм)

bтехн = 0,1 (мм)

b = 0,7 (мм)

l = 0.7 (мм)

bокругл = 0,71 (мм)

lокругл = 0,71 (мм)

3) При с = 50 кОм/кв:

kф = 0,2 [0,1;1)

Резистор має прямокутну форму, у нього довжина менше ширини.

l? = 0,32 (мм)

lпотужн = 0,316 (мм)

lтехн = 0,3 (мм)

l = 0,32(мм)

b = 1,6 (мм)

lокругл = 0,33 (мм)

bокругл = 1,6 (мм)

Розрахунок на ЕОМ: див. ДОДАТОК Б.

Налагодження програми

Налагодження програми заключається в виявленні та усуненні помилок, які з'явилися при її написанні, а саме:

1) недостача таких знаків як: “{“, ”;”;

2) різні синтаксичні помилки;

3) виявлена помилка в розрахунку к-того резистора;

4) неправильно вказана мітка.

Всі вище перечисленні помилки булі успішно виправлені.

5. Документування програми

Призначення програми. Дана програма призначена для рішення на ЕОМ прикладної інженерної задачі - задачі розрахунку резисторів мікросхеми.

Режим роботи. Діалог користувача з ЕОМ організований у режимі “ запит-відповідь ” (видача запиту на екран дисплея - відповідь користувача із клавіатури).

Опис принципу роботи програми. Користувач повинен ввести кількість резисторів для їхнього розрахунку (у змінну N) й інші вихідні дані: по N значень P і R (у масиви P[m] і R[m]), с і P0 (у змінні pO[m] і P0[m]).

Потім проводиться візуальний контроль введених даних - вивід вихідних даних для розрахунку на екран. Користувачу задається питання, чи відповідають ці дані таблиці №1. Якщо відповідь негативна, то провадиться повторне введення всіх вихідних даних, потім візуальний контроль цих нових даних і т.д. - і так доти, поки відповідь не буде позитивною. При позитивній відповіді відбувається розрахунок резисторів.

В основному розрахунку для кожного резистора програма визначає його форму й відповідно до неї знаходить його розміри, а також визначає резистори, конструювання яких не рекомендується. Для прямокутного резистора програма обчислює l[i] і b[i], де i - номер цього резистора (обчислюються значення i-их елементів масивів l[i] і b[i]), для резистора у вигляді меандру обчислюються значення елементів масивів b[i], a[i], X[i], Y[i], n[i]. Результати виводяться на екран.

Потім знаходиться максимальне розрахункове значення ширини в масиві b[m] і виводиться на екран монітора.

Потім відбувається додатковий розрахунок k-ого резистора в діапазоні значень с при фіксації інших вихідних даних.

Спочатку користувач вводить номер резистора для додаткового розрахунку - число k у діапазоні [1;N]. Потім користувач вводить початкове значення с, виконуються додатковий розрахунок k-ого резистора й вивід на екран його результатів аналогічний основному до тих пір поки не введе 0 (0 - кінець розрахунку k-го резистора).

Відомості про перевірку програми. Програма не містить помилок і виконує всі розрахунки правильно, у чому можна переконатися за допомогою тестового приклада (див. додаток Б).

Висновки

мікросхема програмування с++ резистор

Виконавши цю курсову роботу, я отримав навички розробки, налагоджування, тестування і документування програми на мові високого рівня С++ при рішенні на ЕОМ прикладної інженерної задачі.

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

За цим алгоритмом була розроблена програма на мові С++, що містить власні підпрограми, використовує одномірні масиви для зберігання початкових даних і результатів розрахунку, забезпечує взаємодію з користувачем (у формі “ запит-відповідь ”) та виведення результатів розрахунку у зручній формі.

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

Список використаної літератури

1. Інформатика. Комп'ютерна техніка. Комп'ютерні технології / Посібник для ВНЗ. - К.: 2001.

2. Вычислительная техника и программирование: Учебник для техн. вузов / Под ред. А.В. Петрова. - М.: Высш.шк., 1990.

3. Программирование на С++: Учеб. пособие / Под ред. А.Д. Хомоненко. - С-Пб.: 1999.

4. Конспект лекцій з дисципліни: “ Алгоритмічні мови та програмування ”

Додаток А. Текст програми на мові С++

#include <iostream>//Організація введення, виведення (cout, cin)

#include <math.h>//Математична бібліотека (sqrt () ...)

#include <conio.h>//Бібліотека для використання функції getch ()

using namespace std;

//Прототипи функції

double kf(double, double); //Обчислення коеф. форм. к-того резистора

double max_d(double, double, double); //Обчислення максимальної ширини

void Cal_pr_fo_bl(); //Розрахунок резистора прямокутної форми b>l

void Cal_pr_fo_lb(); //Розрахунок резистора прямокутної форми l>b

int i, k, Vv=0, povt=0, stp=0;//Глобальні змінні цілого типу

const double b_tex = 0.1, l_tex = 0.3, Db = 0.01, Dl = 0.03, Yr = 0.1, a_min = 0.3, h = 0.01;//Константи вещ. типу

const int m = 10;//Константа цілого типу

double R[m];//Номінальний опір резистора

double pO[m];//Опір квадрата резистивної плівки

double P[m];//Потужність розсіювання резистора

double Po[m];//Макс. питома потужність розсіювання резистивної плівки

double N;//Кількість резисторів

double kfe[m];//Коф. форм. к-того резистора

double l[m];//Довжина резистора

double b[m];//Ширина резистора

double X[m];//Довжина меандра

double Y[m];//Ширина меандра

double bD;//Мінімальна ширина резистора

double bpot;//Ширина задана потужністю

double lD;//Мінімальна довжина резистора

double lpot;//Довжина задана потужністю

double lser;//Середня лінія меандра

double piz;//Допоміжна змінна для рахунку к-того резистора

double maxb=0;//Максимальна ширина b

char Otv;// [Y/N]

double a[m];//Відстань між смугами

double t[m];//Крок ланки

double n[m];//Число ланок

double max_b(double a, double b, double c)//Обчислення максимальної ширини

{

if (a>b&&a>c)

return a;

if (b>a&&b>c)

return b;

else return c;

}

void Cal_pr_fo_bl()//Розрахунок резистора прямокутної форми b>l

{

bD=(Db+Dl/kfe[i])/Yr;

bpot=sqrt((pO[i]*P[i])/(R[i]*Po[i]));

b[i]=max_b(b_tex, bD, bpot);

l[i]=kfe[i]*b[i];

b[i]=int(b[i]/h)*h+h;

l[i]=int(l[i]/h)*h+h;

cout<<"\n Ширина резистора, b = "<<b[i]<<" мм"<<endl;

cout<<" Довжина резистора, l = "<<l[i]<<" мм"<<endl;

}

void Cal_pr_fo_lb()//Розрахунок резистора прямокутної форми l>b

{

lD=(Dl+kfe[i]*Db)/Yr;

lpot=sqrt((R[i]*P[i])/(pO[i]*Po[i]));

l[i]=max_b(l_tex, lD, lpot);

b[i]=l[i]/kfe[i];

l[i]=int(l[i]/h)*h+h;

b[i]=int(b[i]/h)*h+h;

cout<<"\n Ширина резистора, b = "<<b[i]<<" мм"<<endl;

cout<<" Довжина резистора, l = "<<l[i]<<" мм"<<endl;

}

double kf(double a, double b)//Обчислення коеф. форм. к-того резистора

{

return a/b;

}

void main () //Головна функція

{

setlocale(LC_ALL, "Ukrainian");

cout<<"\t\t\tТабл. №1"<<endl;

cout<<" ______________________________________________"<<endl;

cout<<"| | | | |"<<endl;

cout<<"| R, кОм | p, кОм/кв | P, мВт | Po, мBт/мм2 |"<<endl;

cout<<"|___________|___________|___________|_____________|"<<endl;

cout<<"| | | | |"<<endl;

cout<<"| 0.05...10000 | 0,01...50 | 5...50 | 10...30 |"<<endl;

cout<<"|___________|___________|___________|_____________|"<<endl;

cout<<"\n"<<endl;

while (1)

{

cout<<"Задайте кiлькiсть резисторiв для розрахунку [max 10] = ";

cin>>N;

if (N>=1 && N<=10)

break;

}

for (i=0; i<N; i++)

{

while (1)

{

cout<<"\n\tРезистор №"<<i+1<<endl;

cout<<"Номiнальний опiр резистора, [кОм] R = ";

cin>>R[i];

cout<<"Опiр квадрата резистивної плiвки, [кОм/кв] p = ";

cin>>pO[i];

cout<<"Потужнiсть розсiювання резистора, [мВт] P = ";

cin>>P[i];

cout<<"Макс.питома потужнiсть розсiювання резистивної плiвки, [мBт/мм2] Po = ";

cin>>Po[i];

cout<<endl;

cout<<"Початковi даннi вiдповiдают данним Табл. №1 ? [Y/N] = ";

cin>>Otv;

if (Otv=='Y' || Otv=='y')

break;

}

}

for (i=0; i<N; i++)

{

PS:

kfe[i]=kf(R[i], pO[i]);

if (1<=kfe[i] && kfe[i]<=10)

{

cout<<"\n______________________________________________"<<endl; cout<<"\n\tРезистор №"<<i+1<<" -- прямокутрної форми"<<endl;

Cal_pr_fo_bl();

}

else if (0.1<=kfe[i] && kfe[i]<1)

{

cout<<"\n____________________________________________"<<endl;

cout<<"\n\tРезистор №"<<i+1<<" -- прямокутрної форми в якого ширина меньше довжини (l>d)"<<endl;

Cal_pr_fo_lb();

}

else if (kf(R[i], pO[i])>10)

{

cout<<"\n____________________________________________"<<endl;

cout<<"\n\tРезистор №"<<i+1<<" -- резистор типу (меандр)"<<endl;

bD=(Db+Dl/kfe[i])/Yr;

bpot=sqrt((pO[i]*P[i])/(R[i]*Po[i]));

b[i]=int(max_b(b_tex, bD, bpot)/h)*h+h;

lser=b[i]*kfe[i];

a[i]=b[i];

if (a[i]<a_min)

a[i]=a_min;

while (1)

{

t[i]=a[i]+b[i];

n[i]=int(sqrt(lser/t[i]));

X[i]=n[i]*(a[i]+b[i]);

Y[i]=(lser-a[i]*n[i])/n[i];

if ((Y[i]/a[i])<=10)

break;

else

a[i]=a[i]+a_min;

}

cout<<"\n Ширина меандри, Y = "<<Y[i]<<" мм"<<endl;

cout<<" Довжина меандри, X = "<<X[i]<<" мм"<<endl;

cout<<" Ширина смушки, b = "<<b[i]<<" мм"<<endl;

cout<<" Вiдстань мiж смужками, a = "<<a[i]<<" мм"<<endl;

cout<<" Число ланок, n = "<<n[i]<<endl;

}

else if (kfe[i]<0.1)

{

cout<<"\n_____________________________________________"<<endl;

cout<<"\tРезистор №"<<i+1<<" -- резистор використовувати не рекомендовано"<<endl;

}

if (pO[i]==piz)

break;

}

if(1<N)

{

if(povt==0)

{

for (i=0; i<N; i++)

{

if(maxb<b[i])

maxb=b[i];

}

cout<<"\nМаксiмальная ширина b = "<<maxb<<" мм"<<endl;

povt++;

}

if (Vv==0)

{

while (1)

{

cout<<"\nВведiть номер резистора для додаткових обчислень = ";

cin>>k;

if(1<=k&&k<=N)

break;

else

cout<<"Цього резистора не iснує"<<endl;

}

k=k-1;

Vv++;

}

}

while (1)

{

cout<<"\nОпiр квадрата резистивної плiвки (для закiнчення обчислень введiть 0), [кОм/кв] p = ";

cin>>piz;

if(piz<=50)

break;

else

cout<<"\n\tMAX 50 [кОм/кв] "<<endl;

}

i=k;

pO[i]=piz;

if (piz!=0)

goto PS;

getch();

system("cls");//Функція очищення екрана

cout<<"\tАвтор програми : Жмуд Е.В."<<endl;

cout<<"\t20.09.2012"<<endl;

getch();

}

Додаток Б. Тестовий приклад (розрахунок на ЕОМ)

Мал.1. Введення початкових даних, розрахунок та виведення результату.

Мал.2. Розрахунок k-го резистора.

Додаток В. Блок-схема алгоритму

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.