Рис.3 Блок-схема розв’язку задачі варіант №2
Варіант 2 більш універсальні ший тому використаємо його.
В процесі розв’язку поставленої задачі оброблюються дані типу, що наводиться у таблиці 2.1
Таблиця 1.1 – Типи даних, що будуть використовуватись при розробці програми
Тип | Область значень | Фізичний формат |
real | від 2,9×10-39 до 1,7×1038 | Точність 11-12 розрядів, розмір в байтах – 6 |
integer | Від -32 768..32 767 (-2 ..2 -1) | Розмір 2 байта |
1.5 Програмування програми на мові Pascal 7.0
program kyrca4;
{by zaveruha91}
uses crt;
const
Rk=0.335;
Fr0=0;
Fa0=0;
A0=0;
Label M1;
var
U0,U1,U2,U3,U4,U5,
Ncr1,Ncr2,Ncr3,Ncr4,Ncr0,Ncr5,
Ni_1,Ni_2,Ni_3,Ni_4,Ni_5,Ni_0,
B1,B2,B3,B4,B5,B0,
Rni_1,Rni_2,Rni_3,Rni_4,Rni_5,Rni_0,
X,Y,
Rekv,c,Vcer,
Fr1,Fr2,Fr3,Fr4,Fr5,
Fa1,Fa2,Fa3,Fa4,Fa5,
A1,A2,A3,A4,A5,kb,h,
Q1,Q2,Q3,Q4,Q5,Q0 { zry4na zamina } :real;
begin
clrscr;
writeln('vedit 4actoty obertanna kolsa podshipnika abo 0');
writeln('netral pereda4a U0');
readln(U0);
writeln('persha peredas4a U1');
readln(U1);
writeln('dryga pereda4a U2');
readln(U2);
writeln('treta pereda4a U3');
readln(U3);
writeln('4etverta pereda4a U4');
readln(U4);
writeln('5-ta pereda4a U5');
readln(U5);
writeln ('vedit shvidkict rekomendovano 50 ');
readln(Vcer);
writeln('koficient rad i oc navantagena vidpovidno do pidshipnika X,Y');
readln(X,Y);
writeln ('vedit radialne navantagenna ');
writeln('pershoi pereda4i');
readln(Fr1);
writeln('2-go pereda4i');
readln(Fr2);
writeln('3-go pereda4i');
readln(Fr3);
writeln('4-go pereda4i');
readln(Fr4);
writeln('5-go pereda4i');
readln(Fr5);
writeln('ocove navantagenna pereda4');
writeln('pershoi pereda4i');
readln (Fa1);
writeln('drygoi pereda4i');
readln (Fa2);
writeln('tretoi pereda4i');
readln (Fa3);
writeln('4etvertoi pereda4i');
readln (Fa4);
writeln('5-oi pereda4i');
readln (Fa5);
writeln('vedit 4ac trivalocti pereda4i');
writeln('persha');
readln(A1);
writeln('dryga');
readln(A2);
writeln('treta');
readln(A3);
writeln('4etverta');
readln(A4);
writeln('5-ta');
readln(A5);
m1:
writeln('vedit kofisient dla korobki v megax ! 1.1....1.3');
readln(kb);
if 1.1>kb then goto m1 ;
if kb>1.3 then Goto m1 ;
writeln(vediti dovgovi4nicnit pidshipnika km);
readln(h);
{__________ ceredna 4actota________________}
Ncr0:=Vcer*U0/(0.377*Rk);
Ncr1:=Vcer*U1/(0.377*Rk);
Ncr2:=Vcer*U2/(0.377*Rk);
Ncr3:=Vcer*U3/(0.377*Rk);
Ncr4:=Vcer*U4/(0.377*Rk);
Ncr5:=Vcer*U5/(0.377*Rk);
{____________4astota obretana kolca __________}
Ni_1:=Ncr1/1;
Ni_2:=Ncr2/2;
Ni_3:=Ncr3/3;
Ni_4:=Ncr4/4;
Ni_5:=Ncr5/5;
{________ Vidnosna 4actota pidshipnika ________}
B0:=Ni_0/1000;
B1:=Ni_1/1000;
B2:=Ni_2/1000;
B3:=Ni_3/1000;
B4:=Ni_4/1000;
B5:=Ni_5/1000;
{_____________ umovne navantagena _____________}
Rni_0:=(1*X*Fr0+Y*Fa0)*kb*1;
Rni_1:=(1*X*Fr1+Y*Fa1)*kb*1;
Rni_2:=(1*X*Fr2+Y*Fa2)*kb*1;
Rni_3:=(1*X*Fr3+Y*Fa3)*kb*1;
Rni_4:=(1*X*Fr4+Y*Fa4)*kb*1;
Rni_5:=(1*X*Fr5+Y*Fa5)*kb*1;
{_________ ekvivalentne navantagena ___________}
Q0:= a0*B0*(sqr(Rni_0)*Rni_0);
Q1:= a1*B1*(sqr(Rni_1)*Rni_1);
Q2:= a2*B2*(sqr(Rni_2)*Rni_2);
Q3:= a3*B3*(sqr(Rni_3)*Rni_3);
Q4:= a4*B4*(sqr(Rni_4)*Rni_4);
Q5:= a5*B5*(sqr(Rni_5)*Rni_5);
Rekv:=exp(1/3+LN( Q0+Q1+Q2+Q3+Q4+Q5));
C:=Rekv*exp(1/3+Ln(60/1E+6*1000*h));
writeln('DANI');
writeln('4astota seredna__0=',Ncr0);
writeln('4astota seredna__1=',Ncr1);
writeln('4astota seredna__2=',Ncr2);
writeln('4astota seredna__3=',Ncr3);
writeln('4astota seredna__4=',Ncr4);
writeln('4astota seredna__5=',Ncr5);
writeln('4astota obertana kolca__0=',Ni_0);
writeln('4astota obertana kolca__1=',Ni_1);
writeln('4astota obertana kolca__2=',Ni_2);
writeln('4astota obertana kolca__3=',Ni_3);
writeln('4astota obertana kolca__4=',Ni_4);
writeln('4astota obertana kolca__5=',Ni_5);
writeln('Vidnosna 4actota pidshipnika __0=',B0);
writeln('Vidnosna 4actota pidshipnika __1=',B1);
writeln('Vidnosna 4actota pidshipnika __2=',B2);
writeln('Vidnosna 4actota pidshipnika __3=',B3);
writeln('Vidnosna 4actota pidshipnika __4=',B4);
writeln('Vidnosna 4actota pidshipnika __5=',B5);
writeln('umovne navantagena__0=',Rni_0,' H');
writeln('umovne navantagena__1=',Rni_1,' H');
writeln('umovne navantagena__2=',Rni_2,' H');
writeln('umovne navantagena__3=',Rni_3,' H');
writeln('umovne navantagena__4=',Rni_4,' H');
writeln('umovne navantagena__5=',Rni_5,' H');
writeln('ekvivalentne navantagena=',Rekv,' H');
writeln('Dinami4ne navantagenna=',c,'H');
readln;
end.
Перевірка програми показана на рисунку Рис.4
Рис.4 Розрахунок в програмі Pascal 7.0
2 РОЗРОБИТИ ПРОГРАМУ ДЛЯ РОЗВЯЗАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ
2.1 Теоретичні відомості
Рішення систем лінійних рівнянь алгебри методом Гауса
Розглянемо тепер прямокутну матрицю
що має m рядків і n стовпців. Її називають матриця розміром m на n. А(mхn). Виділимо в цій матриці довільні до рядків і до стовпців. Вони утворюють квадратну матрицю B(kхk)
Цей простий процес називається простій підстановкою. Таким чином, процес рішення системи лінійних рівнянь алгебри по методу Гауса складається з двох етапів. Перший етап (прямий хід методу) – система приводиться до трикутного вигляду. Другий етап (зворотний хід) – невідомі визначаються послідовно, починаючи з останнього невідомого і кінчаючи першим. Аналогічно, цю ідею послідовного виключення можна застосувати і у разі матриці А(mxm) розміру більше 3х3.
Без обмеження спільності можна вважати, що в наший системі провідний елемент a110 першого кроку (інакше просто переставимо рівняння). На першому кроці ми просто виключимо х1 зі всіх рівнянь, починаючи з другого, для чого з другого рівняння почленно віднімемо перше, помножене на а21/а11, з третього почленно віднімемо перше, помножене на а31/а11 і т.д.. Тоді система заміниться еквівалентною системою:
Коефіцієнти при невідомих і вільні члени в останніх m-1 рівняннях системи, визначаються формулами:
Таким чином, на першому кроці знищуються всі коефіцієнти, лежачі під першим провідним елементом a110 На другому кроці знищуються елементи, лежачі під другим провідним елементом а22(1) (якщо a22(1) 0)
Продовжуючи цей процес і далі, ми, нарешті, на (m-1) кроці приведемо початкову систему до трикутної системи.
Матриця цієї системи має вигляд
На цьому прямий хід методу Гауса закінчується. Другий етап – зворотний хід, полягає в рішенні трикутної системи. З останнього рівняння знаходимо xm. По знайденому xm з (m-1) рівняння знаходимо xm-1. Потім по xm-1 і xm з (m-2) рівняння знаходимо xm-2. Процес продовжуємо, поки не знайдемо x1 з першого рівняння. Якщо у нас число рівнянь менше числа невідомих, то ми прийдемо не до трикутної системи, а до ступінчастої.
оскільки прямий хід методу Гауса урветься, коли рівняння закінчаться, а невідомі ще залишаться. У такому разі в кожному рівнянні системи перенесемо всі члени з невідомими xk+1..,xm у праву частину. Додаючи невідомим xk+1..,xm (званим вільними) довільні значення, отримаємо трикутну систему з якої послідовно знайдемо все решта невідомих (звані базисними). Оскільки довільні значення можна надавати будь-якими способами, система матиме незліченну безліч значень. У рішенні наступного прикладу не виписуватимемо кожну систему, а обмежимося лише перетвореннями над матрицями:
Матриця системиРозширена матриця системи
2.2 Умова та формалізація задачі Заданна матриця
Задача зводиться до створення масива методом вводу його з клавіватури та обчислення матриці для знаходження коренів рівнянь.
2.3 Складання алгоритму
Рис.5 Складання блок-схеми програми варіант №1
Рис.6 Складання блок-схеми для програми варіант №2
Використаний другий метод ( варіант2) тому що він зручніший в роботі.
В процесі розв’язку поставленої задачі оброблюються дані типу, що наводиться у таблиці 2.1.
Таблиця 2.1 – Типи даних, що будуть використовуватись при розробці програми
Тип | Область значень | Фізичний формат |
Real | від 2,9×10-39 до 1,7×1038 | Точність 11-12 розрядів, розмір в байтах – 6 |
З метою збереження і обробки в пам’яті ЕОМ прийняті системи ідентифікаторів, які подані у таблицях 2.1, 2.2 відповідно до методу розв’язання задачі.