«Դ Պ Ի Ր» ամսագիր "Mkhitar Sebastatsi" Educational Complex
«Մխիթար Սեբաստացի» կրթահամալիր "D P I R" Magazine
 

ԴՊԻՐ 26

ՄԱՍՆԱԳԻՏԱԿԱՆ ԶԱՐԳԱՑՈՒՄ

Ուսումնական բնագավառներ

Ա. Խինչին
«Մաթեմատիկայի դասերի դաստիարակչական ազդեցության մասին»

Հակոբ Հակոբյան
Էջեր ֆիզիկայի ապագա դասագրքից (Շփման ուժ)

Դավիթ Մինասյան
«Ենթածրագրեր և պրոցեդուրաներ»

Մեթոդական մշակումներ

Հասմիկ Ղազարյան
«Նորից Աբովյանի մասին»

Անահիտ Ավագյան
«Մի նախագծի մասին»

Նաիրա Դալուզյան
«Ուսումնական նյութի ընտրության մասին»

Արմինե Աբրահամյան
«Ի՞նչն է ավելի կարևոր»

Մարգարիտ Հարությունյան
«Դասի արդյունավետությունն ապահովելու լավագույն միջոցը համագործակցությունն է»

Մարգարիտ Սարգսյան
«ՏՀՏ-ն` պոեզիայի ուսումնասիրման գրավիչ և արդյունավետ միջոց»

Աշոտ Տիգրանյան,
Դավիթ Մինասյան
«Համակցված առաջադրանքներ»

Ուսումնական նյութեր

Վոլտեր
«Բաբելոնի արքայադուստրը»

Խնդիրներ Գևորգ Հակոբյանից

ՏԱՐԲԵՐ ԵՐԿՐՆԵՐԻ ԴՊՐՈՑՆԵՐԸ

ՀԱՅԱՍՏԱՆԻ ԴՊՐՈՑՆԵՐԸ

ՄԱՆԿԱՎԱՐԺԱԿԱՆ ՄՈՏԵՑՈՒՄՆԵՐ

Սելեստեն Ֆրենե
«Մանկավարժական ինվարիանտներ»

Մարիա Մոնտեսորի
«Երեխայի տունը»

Հեգել
«Գիմնազիայի տնօրենի ճառեր»

ՓՈՔՐԵՐՆ ՈՒ ՄԵԾԵՐԸ (մանկավարժական ակումբ)

ԱՐՁԱԳԱՆՔ

Քննարկում են քոլեջի սովորողները

Դավիթ Մինասյան
Դասավանդող, ՏՀՏ մասնագետ

ԵՆԹԱԾՐԱԳՐԵՐ ԵՎ ՊՐՈՑԵԴՈՒՐԱՆԵՐ: ՆՐԱՆՑ ՕԳՏԱԳՈՐԾՈՒՄԸ ՏԱՐԲԵՐ ԱՌԱՋԱԴՐԱՆՔՆԵՐ ԿԱՏԱՐԵԼԻՍ

Ինչպես ֆունկցիաները, այնպես էլ ենթածրագրերը ՊԱՍԿԱԼ լեզվում օգտագործվում են օպերատորների որոշակի հաջորդականությունը ծրագրերի տարբեր մասերում մի քանի անգամ կիրառելու համար: Ծրագրերի նման հատվածները նույնպես ձևակերպվում են որպես ինքնուրույն միավորներով, որոնց ծրագրավորողի կողմից տրվում են որոշակի անուններով (իդենտիֆիկատորներ): Ծրագրերի այսպիսի մասերն անվանում են ենթածրագրեր (պրոցեդուրաներ), որոնք կանչվում են իրենց անունների օգնությամբ:

Ի տարբերություն ֆունկցիաների, որոնք ելքում իրենց անվան համապատասխան վերադարձնում են ֆունկցիայի տիպի արժեք, այստեղ նշվում են պրոցեդուրայի կատարման ընթացքում ծրագրի կողմից օգտագործվող և ծրագրին փոխանցվող փոփոխականները:

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

ՊԱՍԿԱԼ լեզվում գոյություն ունեն մի շարք ստանդարտ պրոցեդուրաներ, որոնց կարելի է դիմել իրենց ստանդարտ անուններով, իսկ անհրաժեշտության դեպքում կարելի է ստեղծել նոր պրոցեդուրաներ: ՊԱՍԿԱԼ ծրագրավորման լեզվում պրոցեդուրան ունի նույն կառուցվածքը, ինչպես հիմնական ծրագրիը` բացառությամբ, որ պրոցեդուրան պարտադիր պետք է ունենա անուն:

Պրոցեդուրան ունի հետևյալ կառուցվածքը`
<Պրոցեդուրայի անունը>;
<նկարագրման բաժին>;
begin
<օպերատորների հաջորդականություն>
end;
որտեղ պրոցեդուրայի անունը ունի այսպիսի կառուցվածք`
Procedure պրոցեդուրայի անուն (պարամետրերի ցուցակ);

Այստեղ Procedure-ն պահեստավորված բառ է, պրոցեդուրայի անունն՝ իդենտիֆիկատոր, իսկ պարամետրերի ցուցակը ծրագրի կողմից օգտագործվող և ծրագրին փոխանցվող փոփոխականներն են:

Պրոցեդուրայի վերնագրում օգտագործվող պարամետրերը բաժանվում են երկու խմբի` մուտքային և ելքային: Մուտքային են կոչվում այն պարամետրերը, որոնք փոխանցվում են պրոցեդուրային իր կանչի մասից, իսկ ելքայինները փոխանցվում են պրոցեդուրայից կանչող մասին: Մուտքային և ելքային պարամետրերը պրոցեդուրայի վերնագրում բաժանվում են var-ի օգնությամբ: Մուտքային պարամետրերը գտնվում են var-ից դուրս, իսկ ելքայինները` var-ի մեջ:
Օրինակ` Procedure qarhavasarum(a,b,c:real; var x1, x2:real; s:string), որտեղ a-ն, b-ն և  c-ն իրական տիպի մուտքային պարամետրեր են, իսկ x1-ը և x2-ը իրական տիպի ելքային պարամետրեր:

Պրոցեդուրայի վերնագրին հաջորդում է նկարագրման բաժինը, որում օգտագործվում են պրոցեդուրայի փոփոխականները: Նրանք կոչվում են լոկալ փոփոխականներ և նրանց կիրառման տիրույթն այդ պրոցեդուրան է: Հիմնական ծրագրում նկարագրված փոփոխականները կոչվում են գլոբալ փոփոխականներ և նրանց կիրառման տիրույթն է ամբողջ ծրագիրը` ներառյալ պրոցեդուրաներն ու ֆունկցիաներն:

Հարկ է նշել, որ պրոցեդուրան կարող է չպարունակել պարամետրերի ցուցակ: Այս դեպքում այն աշխատում է գլոբալ փոփոխականների օգնությամբ:

Բերենք քառակուսի հավասարման լուծման ալգորիթմը նկարագրման (Նկարագրման 1), բլոկ-սխեմայի (ԲՍ – 1) և ՊԱՍԿԱԼ ծրագրավորման լեզվով (Ծրագիր 1): Այստեղ կներկայացնենք նաև քառակուսի հավասարման լուծման ներկայացումը պրոցեդուրայի տեսքով (Պրոցեդուրա 1):

Նկարագրման 1

ա) մուտքագրել a, b, c  գործակիցները,

բ) հաշվել տարբերիչը`,

գ) եթե տարբերիչը ոչբացասական է (D>=0), ապա հաշվել քառակուսի հավասարման արմատները`և ,

դ) ելք` x1 և x2 կամ «Լուծում չունի»:

Մուտքային տվյալների և ելքային արդյունքների օրինակները բերված են աղյուսակում`

a

b

c

D

???

x1

x2

1

-2

-3

16

 

-1

3

1

-2

5

-16

Լուծում չունի

 

 

-2

9

-4

49

 

0.5

4

1

-9

14

25

 

2

7

0.5

3

5

-1

Լուծում չունի

 

 

4

9

-9

225

 

-3

0.75

 

ԲՍ – 1

Ծրագիր 1.
Program qarakusi_havasarum;
uses crt;
var a,b,c,D,x1,x2:real;
begin
 clrscr;
writeln('');
writeln('  Qarakusi havasarman lucum` ');
writeln('');
write('  a= ');
readln(a);
write('  b= ');
readln(b);
write('  c= ');
readln(c);
D:=sqr(b)-4*a*c;
writeln('');
if D>=0 then
begin
x1:=(-b-sqrt(D))/(2*a);
x2:=(-b+sqrt(D))/(2*a);
writeln(' D= ',D:6:2,'   Lucum   uni.',' x1= ',x1:6:2,' x2= ', x2:6:2);
end
else
writeln(' D= ',D:6:2,'   Lucum chuni.');
readln;
end.

Ծրագիրը որպես առանձին պրոցեդուրա ունի այսպիսի տեսք`
Պրոցեդուրա 1.

Procedure qh(x,y,z:real; var q1, q2:real; var t:string);
var D:real;
begin
t:='';
D:=sqr(y)-4*x*z;
if D>=0 then
begin
q1:=(-y-sqrt(D))/(2*x);
q2:=(-y+sqrt(D))/(2*x);
t:='  Lucum   uni`';
writeln('');
writeln(' D= ',D:6:2,t,' x1= ',q1:6:2,' x2= ', q2:6:2);
end
else
begin
t:='  Lucum chuni.';
writeln('');
writeln(' D= ',D:6:2,t);
end;
end;

Այժմ կատարենք առաջադրանք, որում պրոցեդուրան ընդգրկված է հիմնական ծրագրի մեջ:

Առաջադրանք: Կազմել ծրագիր, որը հնարավորություն կտա կամայական թվով անգամ կատարել քառակուսի հավասարման լուծում: Որպես մուտքային տվյալներ ընդունել քառակուսի հավասարման a, b, c գործակիցները, իսկ ելքային տվյալներ` հավասարման x1 և x2 արմատները կամ <Լուծում չունի> հաղորդագրությունը: Ծրագիրն ավարտել <yes> տեքսատային ինֆորմացիան մուտքագրելու ժամանակ:

Առաջադրանքի կատարման համար տանք նկարագրությունը, բլոկ-սխեման և ծրագիրը:

Նկարագրման 2
ա) կազմակերպել ցիկլ հերթական մուտքագրման համար,
բ) մուտքագրել քառակուսի հավասարման a, b, c գործակիցներ,
գ) ցիկլի մարմնում կատարել Պրոցեդուրա 1-ում բերված ծրագրային մասը,
դ) ավարտել ցիկլը, եթե մուտքագրվել է <yes> հաղորդագրությունը:

ԲՍ – 2

Ծրագիր 2.
Program qarakusi_havasarum;
uses crt;
var a,b,c,x1,x2:real; t:string;
Procedure qh(x,y,z:real; var q1, q2:real; var t:string);
var D:real;
begin
t:='';
D:=sqr(y)-4*x*z;
if D>=0 then
begin
q1:=(-y-sqrt(D))/(2*x);
q2:=(-y+sqrt(D))/(2*x);
t:='  Lucum   uni`';
writeln('');
writeln(' D= ',D:6:2,t,' x1= ',q1:6:2,' x2= ', q2:6:2);
end
else
begin
t:='  Lucum chuni.';
writeln('');
writeln(' D= ',D:6:2,t);
end;
end;
begin
repeat
clrscr;
writeln('');
writeln('  Qarakusi havasarman lucum` ');
writeln('');
s:=’’;
write('  a= ');
readln(a);
write('  b= ');
readln(b);
write('  c= ');
readln(c);
qh(a,b,c,x1,x2,s);
writeln('');
writeln('  Avartel ashxatanqn (yes/no)` ');
readln(s);
until s=’yes’;
end.

Կազմել ծրագրեր՝ կիրառելով առանձին պրոցեդուրաներ հետևյալ առաջադրանքներն կատարելու համար:

1. Խառը կոտորակը դարձնել անկանոն կոտորակ (պրոցեդուրայի մուտքային պարամետրերը` 3 - խառը կոտորակի ամբողջ մաս, համարիչ և հայտարար, ելքային` 2 - անկանոն կոտորակի համարիչ և հայտարար);

2. Գտնել երկու սովորական կոտորակների գումարը (պրոցեդուրայի մուտքային պարամետրերը` 4-առաջին կոտորակի համարիչ և հայտարար ու երկրորդ կոտորակի համարիչ և հայտարար, ելքային` 2-գումարի արդյունքում ստացված կոտորակի համարիչ և հայտարար);

3. Հաշվել ուղղանկյան մակերեսը և պարագիծը (պրոցեդուրայի մուտքային պարամետրերը` 2 - ուղղանկյան կողմեր, ելքային` 2 - մակերես և պարագիծ):

4. Հաշվել խորանարդի անկյունագծի երկարությունը, կողմնային մակերևույթի մակերեսը և ծավալը (պրոցեդուրայի մուտքային պարամետրերը` 1 - խորանարդի կողմը, ելքային` 3 - անկյունագծի երկարությունը, կողմնային մակերևույթի մակերեսը և ծավալը):

???????@Mail.ru © «ՄԽԻԹԱՐ ՍԵԲԱՍՏԱՑԻ» ԿՐԹԱՀԱՄԱԼԻՐ, 2007թ.