Проектування програми на мові рівня С++ при рішенні на ЕОМ прикладної інженерної задачі
Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 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
Подобные документы
Розробка, налагоджування, тестування і документування програми на мові високого рівня С++ при рішенні на комп'ютері прикладної інженерної задачі. Використання принципів модульного і структурного програмування, зображення алгоритму у вигляді блок-схеми.
курсовая работа [1,1 M], добавлен 07.08.2013Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Розробка програми на мові програмування С++ з використанням об'єктно-орієнтованого програмування. Робота з файлами, графікою, класами, обробка числової інформації. Графічні засоби мови програмування. Алгоритм задачі та допоміжні програмні засоби.
курсовая работа [102,5 K], добавлен 14.03.2013Програма на мові програмування С++. Аналіз стану технологій програмування та обґрунтування теми. Розробка програми виконання завдання, методу вирішення задачі. Робота з файлами, обробка числової інформації і робота з графікою. Розробка програми меню.
курсовая работа [41,0 K], добавлен 17.02.2009Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.
курсовая работа [710,7 K], добавлен 04.12.2014Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.
курсовая работа [1,1 M], добавлен 14.09.2012Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.
курсовая работа [460,9 K], добавлен 04.03.2014Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013Принципи роботи команд мікросхеми 24LC08: читання, запису даних. Опис і блок-схеми програми і підпрограм, що обслуговує пристрій. Вибір середовища програмування і розробка програми, яка забезпечує можливість демонстрації команд. Проведення тестування.
курсовая работа [114,2 K], добавлен 08.12.2011Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.
курсовая работа [1,8 M], добавлен 24.02.2014