Կառուցիչներ և փլուզիչներ (Constructors and destructors)

Սովորաբար, օբյեկտի ստեղծման ժամանակ, անհրաժեշտ է լինում
սկզբնարժեքավորել փոփոխականներ կամ էլ հատկացնել դիմանիկ հիշողություն,
որպեսզի կանխել անորոշ արժեքների վերադարձի դեպքը: Օրինակ, ինչ
կկատարվի նախորդ ծրագրում, եթե մենք կանչենք area() ֆունկցիան, առանց
նախորոք կանչելու set_values() ֆունկցիան: Հավանական է, որ կվերադարձվի
անորոշ արժեք, քանի որ x և y անդամներին երբեք չեն վերագրվել որևէ արժեքներ:
Սա կանխելու նպատակով, կլասը կարող է պարունակել հատուկ ֆունկցիա`
կառուցիչ: Կառուցիչ ֆունկցիա հայտարարելու համար, ուղղակի պետք է անվանել
անդամ ֆունկցիան կլասի անունով: Այս ֆունկցիան ավտոմատ կանչվելու է տվյալ
կլասի նոր օբյեկտներ ստեղծելուց:
Օրինակ.

// klaseri orinak
#include
class CRectangle {
int width, height;
public:
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb (5,6);
cout << "rect area: " << rect.area() << endl; cout << "rectb area: " << rectb.area() << endl; } rect area: 12 rectb area: 30 Իչպես տեսնում եք, այս ծրագրի արդյունքը նույնն է, ինչ նախորդինը: Այս օրինակում, մենք միայն փոխարինեցինք set_values ֆունկցիան կլասի կառուցիչով: Ուշադրություն դարձրեք, թե ինչպես են փոխանցվում պարամետրները կառուցիչին` նոր օբյեկտների ստեղծման ժամանակ. CRectangle rect (3,4); CRectangle rectb (5,6); Դուք նաև կարող եք տեսնել, որ ոչ կլասում՝ կառուցիչի նկարագրման մեջ, և ոչ էլ կառուցիչի որոշման մեջ, գրված չէ վերադարձվող արժեքի տիպը (նույնիս void չի գրված): Դա պետք է միշտ այդպես լինի: Կառուցիչը երբեք արժեք չի վերադարձնում, նույնիսկ void տիպի, ինչպես ցույց է տրված նախորդ օրինակում: Փլուզիչը կատարում է հակառակ գործողությունը: Այն ավտոմատ կանչվում է, երբ օբյեկտը ազատվում (ջնջվում) է հիշողությունից: Դա կամ օբյեկտի կյանքի տևողության ավարտի պատճառ է (օրինակ, եթե օբյեկտը հայտարարված էր, որպես լոկալ օբյեկտ ֆունկցիայի մեջ և ֆունկցիան ավարտվեց), կամ էլ, եթե այն դինամիկ վերագրված օբյեկտ էր և այն ազատվում է հիշողությունից` delete օպերատորի միջոցով: Փլուզիչը պետք է ունենա նույն անունը, ինչ կլասը, բայց որը սկսվում է ~ սիմվոլով, և պետք է ոչ մի արժեք չվերադարձնի: Փլուզիչները հաճախ օգտագործվում են այն դեպքերում, երբ օբյեկտը, ծրագրի ընթացքում, պահանջել է դինամիկ հիշողություն և որն էլ այժմ պիտի ազատվի: Օրինակ. // karucichneri ev pluzichneri orinak #include
class CRectangle {
int *width, *height;
public:
CRectangle (int,int);
~CRectangle ();
int area (void) {return (*width * *height);}
};
CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}
CRectangle::~CRectangle () {
delete width;
delete height;
}
int main () {
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
rect area: 12
rectb area: 30

դասեր (class)

դասը աբստրակտ տվյալի տեսակ է, որը հնարավորություն է տալիս սահմանել փոփոխականի տվյալի տիպը։ դասի տարրերը հանդիսանում են ոչ միայն տվյալների տեսակը, այլև տվյալների ղեկավարման ֆունկցիաները։ Դասի սահմանման համար նախատեսված է class առանցքային բառը։ Դասի հայտարարման ընդհանուր ձևը հետևյալն է՝

class դասի անունը
{ private
     դասի փակ անդամ
   public
     դասի բաց անդամ
protected
}
այս գրելաձևում փակագծերի մեջ ընդգրկվածին միասին անվանում ենք դասի մարմին։ Դասում տվյալներին ներկայացնելու համար նախատեսվում են դասի անդամ տվյալները։ Իսկ տվյալների հետ գործողությունների կատարման համար դասի անդամ ֆունկցիաները հայտարարվում են դասի մարմնում։ դասի անդամ տվյալները հայտարարվում են այնպես, ինչպես փոփոխականները, սակայն հայտարարման հրահանգում անդամ տվյալների (բացառությամբբ ստատիկ անդամ տվյալների) նրանց արժեքներ վերագրել չի կարելի։ Դասի անդամ տվյալներին նախնական արժեքներ վերագրելու համար նախատեսվա է դասի կոնստրւկտորը։
Դասի անդամ ֆ-ը հայտարավում են այնպես, ինչպես սովորական ֆ-ը, սակայն նրանցից տարբերվում են հետևյալով՝
1. Դասի անդամ ֆ-ի անունները տեսանելի են միայն իրենց դասի սահմաններում։
2. Դասի անդամ ֆ-ը կարող են ներթափանցել դասի ինչպես բաց, այնպես էլ փակ անդամների մեջ, իսկ սովորական ֆ-ը կարող են ներթափանցել միայն բաց անդամների մեջ։

Գրել դաս, որը տվյալ օբյեկտին արժեքավորում է, և վերադարձնում է արժեքը։

#include <iostream>
using namespace std;
class myclass
{
private:
int a;
public:
void set.a(int number);
int get.a();
};
void myclass::set.a(int number);
{
a=number;
};
int myclass::get.a();
return a;
int main()
{
my class ob1;ob2;
ob1.set.a(15);
ob2.set.a (20);
cout <<ob1get a()<<endl;
cout <<ob2 get a()<<endl;
}

կառավարման համակարգերի հաճախային բնութագրերը


կառավարման համակարգի ժամանակային բնութագրերը

համակարգի ժամանակային բնութագիր ասելով հասկանում ենք նրա վարքը ժ-ի տվյալ պահին։


կառավարման համակարգերի բնութագրերը


Ֆուրյեի ձևափոխման ֆունկցիան


Լապլասի Ձևափոխման հատկությունները


Լապլասի ձևափոխման ֆունկցիա


Գծայնացում2



Գծայնացում

Երբ համակարգը կազմելիս հաշվի են առնվում համակարգի վրա ազդող այն բոլոր գործոնները, որոնք ազդում են համակարգի դինամիկայի վրա, ապա նրա հավասարումը ստացվում է բարդ, հաճախ նաև ոչ գծային։ Ոչ գծային հավասարումի լուծումը բավականին բարդ է հաճախ նաև անլուծելի, այդ պատճառով ոչ գծային հավասարումը որոշ դեպքերում փոխարինվում են մոտավոր գծային հավասարումով։



Ստատիկ և Աստատիկ համակարգեր


Որպես ստատիկ համարգի օրինակ դիտարկենք բաքում հեղուկի մակարդակի կուտակման հետևյալ սխեման՝

Ներկայացված համակարգի աշխ. Սկզբունքը կայանում է հետև. Փ2 փականը բացելու դեպքում տեղի կունենա բաքից որոշակի ՔՅՈՒ2 քանակությամբ հեղուկի արտահոս, որի հետևանքով բաքում կնվազի հեղուկի H մակարդակը հեղուկի մակարդակը իջնելուն զուգահեռ։ Լծակի տեղափոխման շնորհիվ կբացվի Փ1 փականը և տեղի կունենա Ք1քանակությամբ հեղուկի ներհոս դեպի բաք։

Ստատիկ համակարգեր։

Ստատիկ և աստատիկ համակարգերի նմանությունը և տարբերությունը բացահայտելու համար դիտարկենք  նույն համակարգի կառավարման այլ սկզբունքով։






Հետևող համակարգեր


Այսպիսի համակարգերը նախատեսված են այնպիսի պրոցեսների դիտարկման համար, երբ անհայտ է մուտքային ազդանշանի փոփոխականի օրինաչափությունը, կամ ֆունկցիան։ Այսպիսի համակարգի մի պարզագույն օրինակ է հանդիսանում զինվորական գործում օգտագործվող ռադիոլակատորը ։ Դիտարկենք այդ համակարգի աշխատանքի սկզբունք։ Այս համակարգը կարելի է անվանել նաև ինքնակառավարվող համակարգ քանի որ նրա հկառավարումը իրականացվում է նրա իսկ կողմից տրված ազդանշանի հաշվին։

Ա1 անտենան նախատեսված է ստանդարտ ռադիոազդանշանները անընդհատ եթեր հեռարձակելու համար, այն մշտապես գտնվում է մշտապես շարժման մեջ ինչպես հորիզոնական այնպես էլ զուգահեռ հարթություններում։ Այն մեխ. Կապի մեջ է Ա1 ռիոստատի ռիոխոդի հետ, որտեղ անընդհատ փոփոխվում է Ֆի1 անկյունը։

Կառավարման համակարգի գործողության հիմնական ալգորիթմները։


Սրանք այն սկզբունքներն են որոնք բնութագրում են գործողության իրականաման տարատեսակները։Ներկայացված կոնկրետ դեպքերի հարմարանքների և սխեմայի տեսքով։ Այս համակարգին են դասվում ՝
1.    Կայունարարները
2.    Ծրագրավորումը (ա) ըստ ժամանակի, բ) տարածական)
3.    Հետևող համակարգեր
4.    Ստատիկ համակարգեր
5.    Աստատիկ համակարգեր(ոչ ստատիկ)

1.Կայունարարներ
Այս սարքերը նախատեսված են մուտքի ազդանշանները թույլատրելի փոփոխականի տիրությում պահելու համար ։
Այս դեպքում կառավարումը տեղի է ունենում ըստ մուտքի ազդանշանի փոփոխված է այդ փոփոխականը կատոտված է թույլատրելի սահմաններից դուրս։

              2. Ծրագրավորում

Բավականին ընդարձակ հասկացողություն է, տարբերակվում է ծրագրավորման 2 տիպ՝
1.    Ծրագրավորում ըստ ժամանակի
2.    Տարածական ծրագրավորում

     1.Ծրագրավորում ըստ ժ-ի

Ըստ ժ-ի ծրագրավորման աշխատում են ներկայումս կենցաղում կիրառվող շատ էլեկտրոնային սարքերի մոտ։ կիրառվում է նաև ուսումնական հաստատությունում, օրինակ զանգի համակարգը։ 


     2.Տարածական ծրագրավորում 

Տարածական ծրագրավորումը կիրառվում է հիմնականում արդյունաբերության մեջ(թեթը, քիմիական, մեքենաշինության մետաղամշակում և այլն)։ Այս մեթոդը երբեմն կոչվում է ծրագրավորում ըստ բնօրինակի պատրաստվում են բնօրինակը բարձր ճշտությամբ, հիմնականում գերբարձր ճշտությւն ունեցող հաստոցի վրա։
Տվյալ համակարգի համար որպես մուտքի ազդանշան հանդիսանում է Լ լույսի ճառագայթը։ Այն ընկնելով ֆոտոդիոդի վրա ձևափոխվում է էլ. ազդանշանի  ֆոտոդիոտը տվյալ դեպքում հանդիսանում է կառավարող օրգան։ Նրա ելքում ստացված Ի հոսանքի շնորհիվ գործարկվում է Ռ ռելեյի շղթան, որից ստացված ազդանշանի շնորհիվ Ի1-ը սկսում է աշխատել զանգը։







Կառավարման հիմնական սկզբունքը։


Կառավարման համակարգը իրականացվում է որոշակի սկզբունքով։  Սկզբունքի օգտ. Պայմանավորված է առաջադրված նպատակի իրացմամբ։ Կառավաման տեսության մեջ գործում են 3 հիմնական սկզբունքներ ։
1.    Բաց կառավարման սկզբունք
2.    Կոմպեսացման սկզբունք
3.    Հետադարձ կապի սկզբունք։
Դիտարկենք առանձին առանձին։
1.    Բաց կառավարման սկզբունք։
Այս սկզբունքը երբեմն անվանում են կառավարում ըստ մուտքի ազդանշանի։ Այս տիպի համակարգի ֆունկցիոնալ սխեման հետևյալն է՝

        2.    Կոմպեսացման սխեմա։

Այս սկզբունքը երբեմն անվանում ենք կառավարում, ըստ արտաքին ազդումների 

Այս դեպքում կառավարվող օբյեկտի շղթայում մտցվում է 1  լրացուցիչ սարք, կամ տարր, նախատեսված Z արտաքին սարքի կոմպենսացման համար։ Այս համակարգը ունի համեմատաբար ավելի մեծ ճշտություն նախորդի հետ համեմատած։

3.    Հետադարձ կապի սկզբունք
Այս սկզբունքը երբեմն անվանում ենք կառավարում ըստ ելքային ազդանշանի, այս դեպքում համակարգի ֆունկցիոնալ սխեման ունի հետևյալ տեսքը՝

Այս սկզբունքով են աշխատում կառավարման մեծ ճշտություն պահանջող համակարգերը։


Ավտոմատ կառավարման համակարգի ֆունկցիոնալ սխեման։

Ավտոմատ կառավարման համակարգը կարելի է ներկայացնել հետևյալ տեսքով

X-կառավարող ազդանշանն է
Y-կառավարվող ազդանշանն է
Z- արտաքին ազդման ազդանշանն է

Նրա փոփոխությունը իրականացվում է X  կառավարող ազդանշանից ելնելով։ ներկայացված սխեման բացելուց հետո տրվում է նրան համարժեք հետևյալ սխեման։
Որտեղ     Կ.օր- կառավարող օրգանն է
                   Կ. Օբ- կառավարվող օբյեկտն է
                   Գ. Հ.կ – գլխավոր հետադարձ կապն է
                   Ա.Կ -  առաջնային կերպափոխիչն է
Սխեմայում այն կարող է լինել կամ չլինել այն նախատեսված է որևէ ֆիզիկական մեծության մեկ այլ մեծությամբ փոխարինելու համար։
Գ.Հ.Ա – կոչվում է գումարող կամ համեմատող սարք։
Ներկայացվածը ավտոմատ կառավարման Հ.Գ.-ի ֆունկցիոնալ սխեման է ընդհանուր տեսքով։ Այս տիպի  կառավարումը կոչվում է  կառավաում ըստ տարբերակման։

5 ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՍՈՑԻԱԼ-ՊԱՏՄԱԿԱՆ ԲՆՈՒՅԹԸ, ՆՐԱ ԴԵՐԸ ՄԱՐԴՈՒ ԵՎ ՀԱՍԱՐԱԿՈՒԹՅԱՆ ԿՅԱՆՔՈՒՄ

5 ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՍՈՑԻԱԼ-ՊԱՏՄԱԿԱՆ ԲՆՈՒՅԹԸ, ՆՐԱ ԴԵՐԸ ՄԱՐԴՈՒ ԵՎ ՀԱՍԱՐԱԿՈՒԹՅԱՆ ԿՅԱՆՔՈՒՄ
ա) Փիլիսոփայության կապը պատմական դարաշրջանի հետ
Փիլիսոփայական ուսմունքները ոչ թե հասարակությունից անկախ, հանկարծակի երկնքից են ընկնում, այլ իր զարգացման որոշակի փուլում գտնվող հասարակության հոգեւոր արգասիքն են: Փիլիսոփաները ստեղծագործում են որպես իրենց դարաշրջանի զավակներ, հենվելով իրենց անձնական ու հասարակական փորձի վրա, առօրեական ու գիտական գիտելիքների, ինչպես նաեւ մշակույթի ձեռքբերումների վրա: Միաժամանակ նրանք ընդհանրացնում եւ իմաստավորում են հասարակական արժեքները,

4 ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ԱՌԱՐԿԱՆ ԵՎ ԿԱՊԸ ՄԱՍՆԱՎՈՐ ԳԻՏՈՒԹՅՈՒՆՆԵՐԻ ՀԵՏ

4 ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ԱՌԱՐԿԱՆ ԵՎ ԿԱՊԸ ՄԱՍՆԱՎՈՐ ԳԻՏՈՒԹՅՈՒՆՆԵՐԻ ՀԵՏ
Փիլիսոփայությունը իր ծագման հնագույն ժամանակներից մինչեւ մեր օրերը զարգացման չափազանց երկար, բարդ ու խճճված ուղի է անցել: Այդ ընթացքում պարբերաբար վերանայվել ու փոփոխվել, խորացվել ու ճշգրտվել են նրա ուսումնասիրության առարկան, պրոբլեմատիկան, բովանդակությունն ու գործառույթները, տեղն ու դերը հասարակության կյանքում:

3 ՄԵԹՈԴԻ ՀԻՄՆԱԽՆԴԻՐԸ ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՄԵՋ

3 ՄԵԹՈԴԻ ՀԻՄՆԱԽՆԴԻՐԸ ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՄԵՋ
Փիլիսոփայությունը պարզում է ոչ միայն աշխարհի հիմքի, էության ու ճանաչելիության հարցերը, այլեւ մարդկային ճանաչողության ուղիների, միջոցների հարցը, այսինքն՝ ինչպե՞ս է մարդը ճանաչում աշխարհը: Այս հարցը փիլիսոփայության մեջ դրվում է որպես ճանաչողության մեթոդի հարց (հունարեն մեթոդոս-ուղի բառից): Հին հունական փիլիսոփաները գտնում էին, որ ճշմարտությանը հասնելու համար մարդու ճանաչողությունը պետք է ճիշտ ուղիով, մեթոդով ընթանա: Հակառակ դեպքում նա կընկնի մոլորության մեջ: Եվ այդ ժամանակ էլ ձեւավորվեցին 2 հակադիր փիլիսոփայական համընդհանուր մեթոդները՝ դիալեկտիկան եւ մետաֆիզիկան: Սկզբում դիալեկտիկան եղել է բանավեճի արվեստ, որի շնորհիվ միայն մարդկային միտքը, զարգանալով ու ճշգրտվելով, կարող է հասնել ճշմարտության: Ըստ տվյալ տեսակետի, ճշմարտության կայծը կարող է առաջանալ միայն 2 հակադիր կարծիքների բախման միջոցով: Սա ճանաչողության կամ սուբյեկտիվ դիալեկտիկան է, որի մեծագույն ներկայացուցիչները Սոկրատեսն ու Պլատոնն են (մ. թ. ա. V դ.): Իսկ բնության կամ օբյեկտիվ դիալեկտիկան զարգացրել է Հերակլիտը, որն ասել է, որ ամեն ինչ աշխարհում շարժվում ու հոսում է, եւ դրա պատճառը հակադիր կողմերի պայքարն է:
Դիալեկտիկական մեթոդը դիտում է աշխարհի երեւույթները համընդհանուր կապի, շարժման ու զարգացման մեջ, որոնց ներքին պատճառը հակադիր կողմերի միասնությունն ու պայքարն է:

2. ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՀԻՄՆԱԿԱՆ ՀԱՐՑԸ

2. ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՀԻՄՆԱԿԱՆ ՀԱՐՑԸ
Փիլիսոփայությունը՝ որպես տեսական գիտություն, աշխարհայացքի հիմնական հարցը՝ մարդու եւ աշխարհի փոխհարաբերության հարցը դնում է տեսականորեն, ընդհանրացված ձեւով որպես հոգեւորի ու նյութականի կամ գիտակցության ու մատերիայի փոխհարաբերության հարց, որն ընդգրկում է ինչպես հոգեւորի ու բնականի, այնպես էլ մարդու հոգու եւ մարմնի փոխհարաբերության հարցը:
Փիլիսոփայության հիմնական հարցը՝ հոգեւորի եւ նյութականի փոխհարաբերության հարցն ունի 2 կողմ: Առաջին կողմը աշխարհի էության կամ հիմքի հարցն է: Փիլիսոփաները միշտ էլ ձգտել են պարզել, թե որն է աշխարհի էությունը, հիմքը՝ հոգեւորը, թե նյութականը, այսինքն՝ դրանցից որն է առաջնային եւ որը երկրորդային, ածանցյալ: Երկրորդ կողմը աշխարհի ճանաչելիության հարցն է, աշխարհի երեւույթների եւ մարդկային գիտելիքների հարաբերության հարցը:

ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ՆԵՐԱԾՈՒԹՅՈՒՆ

ՓԻԼԻՍՈՓԱՅՈՒԹՅԱՆ ԱՌԱՐԿԱՆ, ՏԵՂՆ ՈՒ ԴԵՐԸ ՄԱՐԴՈՒ ԵՎ ՀԱՍԱՐԱԿՈՒԹՅԱՆ ԿՅԱՆՔՈՒՄ

1 ՓԻԼԻՍՈՓԱՅՈՒԹՅՈՒՆ ԵՎ ԱՇԽԱՐՀԱՅԱՑՔ

ա) Աշխարհայացքի ընդհանուր բնութագիրը
«Փիլիսոփայություն» բառը ծագել է հին հունական «փիլեո»-սիրել եւ «սոփիա»-իմաստություն բառերից եւ նշանակում է իմաստասիրություն: Որպես մարդկային հոգեւոր մշակույթի առանձին ձեւ այն առաջացել է Հին Հունաստանում մ. թ. ա. VI-V դարերում, շնորհիվ ստրկատիրական դեմոկրատիայի, որտեղ հաստատվել էր քաղաքական եւ հոգեւոր կյանքի, այդ թվում մտքի ազատություն: Փիլիսոփայությունը