Hello, World!
" տեքստն արտծող ծրագիրը։ Մի կողմ թողնենք այն և որպես առաջին ծրագիր դիտարկենք տրված դրական ամբողջ թվի ֆակտորիալը հաշվող և արտածող ծրագիրը։ Այն, կարծում եմ, և՛ ավելի հետաքրքիր է, և՛ ավելի խոսուն։Եվ այսպես. տրված n դրական ամբողջ թվի ֆակտորիալը դա 1-ից
n
ամբողջ թվերի արտադրյալն է։ Այն հաշվելու համար պարզապես պետք է կազմակերպել մի ցիկլ՝ կրկնություն, որն անցնում է 1..n
թվերով և կուտակում է դրանց արտադրյալը։ Փսևդոկոդով գրելու դեպքում, օրինակ 12 թվի ֆակտորիալը հաշվելու համար, կունենանք ահա այսպիսի ծրագիր.n = 12 prod = 1 WHILE n > 0 DO prod = prod * n n = n - 1 END PRINT prodJava ծրագրի կատարումը սկսվում է գլխավոր դասի
main
անունով ստատիկ մեթոդից։ Դասը սահմանվում է class
ծառայողական բառով, որին հետևում է դասի անունը, ապա մեթոդների ու դաշտերի սահմանումները։ Օրինակ, Factorial
անունով դասը կարող ենք սահմանել հետևյալ կերպ.
public class Factorial { ... }Որտեղ public բառն ասում է, որ տվյալ դասը կարող են օգտագորվծել այլ փաթեթներում (փաթեթների մասին քիչ ավելի ուշ)։
Factorial դասի համար սահմանենք
main
ստատիկ մեթոդը.public class Factorial { public static void main(String[] args) { ... } }Նորից
public
ծառայողական բառն ասում է, որ main
մեթոդը տեսանելի է Factorial դասից դուրս։ static
բառն ասում է, որ այս մեթոդն ընդհանուր է Factorial
դասի մոլոր նմուշների համար (սրանք էլ մանրամասնորեն կքննարկենք ավելոի ուշ)։ void
բառն ասում է, որ main մեթոդը որևէ արժեք չի վերադարձում։ main մեթոդի արգումենտների ցուցակում գրված "String[] args
" արտահայտությունը նշում է, որ այս մեթոդը սպասում է (ընդունում է, ակնկալում է) մեկ արգումենտ՝ տողերի միաչափ զանգված (վեկտոր)։ main
մեթոդի կատարման ժամանակ նրա արգումենտն արժեքավորվում է հրամանային տողի պարունակությամբ (այս մասին էլ ավելի ուշ)։
Հիմա սկսենք ֆակտորիալի հաշվարկը։ Ասացինք, որ աշխատելու ենք ամբողջ թվերի հետ։ Հայտարարենք
n
և prod
ամբողջ թվերը՝ առաջինն արժեքավորելով 12 արժեքով, իսկ երկրորդը՝ 1 արժեքով։
int n = 12, prod = 1;Կազմակերպենք ցիկլ, որը կատարվում է քանի դեռ ճշմարիտ է
n > 0
պայմանը։ Իսկ ցիկլի մարմնում հաշվարկվում է prod = prod * n
արտադրյալը, և մեկով նվազեցվում է n
փոփոխականի արձեքը։
Պայմանով ցիկլերը կազմակերպվում են
while
կառուցվածքով։ Այն կատարում է իր մարմնում գրված հրամաններն այնքան ժամանակ, քանի դեռ ճշմարիտ է կրկնման պայմանը։
while( n > 0 ) { prod = prod * n; n = n - 1; }Տվյալ դեպքում ցիկլն անպայման կավարտվի, քանի որ կրկնությունների ընթացքում
n
դրական թվի արժեքը շարունակ նվազում է։ Եվ երբ ավարտվի ցիկլը, prod
փոփոխականում կուտակված կլինի 1..n
թվերի արտադրյալը։Եվ վերջապես, ինչպե՞ս արտածել հաշվարկման արդյուքները։ Java լեզվի ստանդարտ գրադարանի
System
դասի out
դաշտի println
մեթոդը ստանդարտ արտածման հոսքի վրա դուրս է բերում իր արգումենտում տրված արժեքը։ prod
փոփոխականի արժեքը արտածելու համար պետք է գրել.
System.out.println(prod);
Factorial.java
անունով ֆայլ և նրա մեջ գրենք հետևյալը.
/* First program in java */ public class Factorial { public static void main(String[] args) { int n = 12, prod = 1; while( n > 0 ) { prod = prod * n; n = n - 1; } System.out.println(prod); } }Պահպանենք ֆայլը պրոյեկտների համար նախատեսված մի պանակում՝ նախապես այս օրինակի ֆայլերի համար ստեղծելով
factorial
ենթապանակը (այն ինձ մոտ home
-ում ստեղծված Project/java-examples
պանակում է)։
cd
հրամանով փոխենք աշխատանքային պանակն այնտեղ, որտեղ պահպանված է Factorial.java
ֆայլը, և, ենթադրելով, որ համակարգում արդեն տեղադրված է Java լեզվի կոմպիլյատորն (javac) ու վիրտուալ մեքենան (java), թարգմանենք մեր գրած ծրագիրը բայթ-կոդի։
$ javac Factorial.javaԵթե թարգմանության՝ կոմպիլյացիայի պրոցեսում սխալներ չեն հայտնաբերվել, ապա հենց նույն պանակում ստեղծվում է
Factorial.class
անունով ֆայլ։ Սա մեր ծրագիրն է՝ Java ծրագրավորման լեզվից թարգմանած Java վիրտուալ մեքենայի բայթ-կոդերի։ Այն կատարելու համար պետք է կանչել Java վիրտուալ մեքենան՝ նրա արգումենտում տալով այն դասի անունը, որում սահմանված է main
մեթոդը։ Մեր դեպքում դա միակ Factorial
դասն է։
$ java FactorialՏերմինալին արտածվում է 479001600, որը, կարող ենք ստուգել և համոզվել, հենց 12 թվի ֆակտորիալն է։
No comments:
Post a Comment