ჩვენს სამყაროში პრაქტიკულად ყველაფერი ექვემდებარება გარკვეულ კანონებსა და წესებს. თანამედროვე მეცნიერება არ დგას, რის წყალობითაც კაცობრიობამ იცის უამრავი ფორმულა და ალგორითმი, რომლის მიხედვითაც შეგიძლიათ გამოთვალოთ და ხელახლა შექმნათ ბუნების მიერ შექმნილი მრავალი მოქმედება და სტრუქტურა და განახორციელოთ ადამიანის მიერ გამოგონილი იდეები.
ამ სტატიაში ჩვენ გავაანალიზებთ ალგორითმის ძირითად ცნებებს.
ალგორითმების გაჩენის ისტორია
ალგორითმი - კონცეფცია, რომელიც გაჩნდა XII საუკუნეში. თავად სიტყვა "ალგორითმი" მომდინარეობს შუა აღმოსავლელი ცნობილი მათემატიკოსის მუჰამედ ალ-ხორეზმის სახელის ლათინური ინტერპრეტაციიდან, რომელმაც დაწერა წიგნი "ინდოეთის დათვლის შესახებ". ეს წიგნი აღწერს, თუ როგორ სწორად დავწეროთ ნატურალური რიცხვები არაბული ციფრების გამოყენებით და აღწერს მოქმედებების ალგორითმს სვეტით ასეთ რიცხვებზე.
მე-12 საუკუნეში წიგნი "ინდური ანგარიშის შესახებ" ითარგმნა ლათინურად და შემდეგ გაჩნდა ეს განმარტება.
ალგორითმის ურთიერთქმედება ადამიანთან და მანქანასთან
შექმნაალგორითმი მოითხოვს შემოქმედებით მიდგომას, ამიტომ მხოლოდ ცოცხალ არსებას შეუძლია შექმნას თანმიმდევრული მოქმედებების ახალი სია. მაგრამ არსებული ინსტრუქციების შესასრულებლად, არ არის აუცილებელი ფანტაზიის არსებობა, ამას უსულო ტექნოლოგიაც კი შეუძლია.
მოცემული ინსტრუქციის ზუსტად შესრულების შესანიშნავი მაგალითია ცარიელი მიკროტალღური ღუმელი, რომელიც აგრძელებს მუშაობას, მიუხედავად იმისა, რომ მასში საკვები არ არის.
სუბიექტს ან ობიექტს, რომელსაც არ სჭირდება ალგორითმის არსის გაგება, ეწოდება ფორმალური შემსრულებელი. ადამიანი შეიძლება გახდეს ფორმალური შემსრულებელიც, მაგრამ იმ შემთხვევაში, თუ ესა თუ ის მოქმედება წამგებიანია, მოაზროვნე შემსრულებელს შეუძლია ყველაფერი თავისებურად გააკეთოს. აქედან გამომდინარე, მთავარი შემსრულებლები არიან კომპიუტერები, მიკროტალღური ღუმელები, ტელეფონები და სხვა აღჭურვილობა. კომპიუტერულ მეცნიერებაში ალგორითმის კონცეფციას უდიდესი მნიშვნელობა აქვს. თითოეული ალგორითმი შედგენილია კონკრეტული საგნის მოლოდინით, დასაშვები მოქმედებების გათვალისწინებით. ის ობიექტები, რომლებზეც სუბიექტს შეუძლია მიმართოს ინსტრუქციებს, წარმოადგენს შემსრულებლის გარემოს.
ჩვენს სამყაროში პრაქტიკულად ყველაფერი ექვემდებარება გარკვეულ კანონებსა და წესებს. თანამედროვე მეცნიერება არ დგას, რომლის წყალობითაც კაცობრიობამ იცის მრავალი ფორმულა და ალგორითმი, რომლის მიხედვითაც შეგიძლიათ გამოთვალოთ და ხელახლა შექმნათ ბუნების მრავალი მოქმედება და ქმნილება და გააცოცხლოთ ადამიანის მიერ გამოგონილი იდეები. ამ სტატიაში ჩვენ გავაანალიზებთ ალგორითმის ძირითად ცნებებს.
რა არის ალგორითმი?
აქტივობების უმეტესობა, რომელსაც ჩვენ ვასრულებთ ჩვენი ცხოვრების განმავლობაში, მოითხოვს რიგი წესების დაცვას. რამდენად სწორი წარმოდგენა აქვს ადამიანს ამაზერა, როგორ და რა თანმიმდევრობით უნდა გააკეთოს, დამოკიდებულია დაკისრებული ამოცანების ხარისხსა და შედეგზე. ბავშვობიდან მშობლები ცდილობდნენ ბავშვში განუვითარონ ძირითადი მოქმედებების ალგორითმი, მაგალითად: გაიღვიძე, გაასწორე საწოლი, დაიბანე და გაიხეხე კბილები, გააკეთე ვარჯიში, ისაუზმე და ა.შ., სია, რასაც ადამიანი აკეთებს. დილაობით მთელი მისი ცხოვრება ასევე შეიძლება ჩაითვალოს ერთგვარ ალგორითმად.
ალგორითმი არის კონცეფცია, რომელიც ეხება ინსტრუქციების ერთობლიობას, რომელიც ადამიანმა უნდა დაიცვას გარკვეული პრობლემის გადასაჭრელად.
ზოგადად, ალგორითმს ბევრი განმარტება აქვს, რამდენიმე მეცნიერი მას განსხვავებულად ახასიათებს.
თუ ალგორითმი, რომელსაც ადამიანი იყენებს ყოველდღე, განსხვავებულია ყველასთვის და შეიძლება შეიცვალოს ასაკისა და სიტუაციების მიხედვით, რომელშიც იმყოფება შემსრულებელი, მაშინ მოქმედებების ნაკრები, რომელიც უნდა შესრულდეს მათემატიკური პრობლემის გადასაჭრელად. ან ტექნოლოგიის გამოყენება ყველასთვის ერთნაირია და ყოველთვის იგივე რჩება.
არის ალგორითმის განსხვავებული ცნება, ალგორითმის ტიპებიც განსხვავებულია - მაგალითად, ადამიანისთვის, რომელიც მიზნისკენ მიისწრაფვის და ტექნოლოგიებისთვის.
საინფორმაციო ტექნოლოგიების ჩვენს ეპოქაში, ადამიანები ყოველდღიურად მიჰყვებიან ინსტრუქციების ერთობლიობას, რომელიც მათ წინაშე ქმნიან სხვა ადამიანების მიერ, რადგან ტექნოლოგია მოითხოვს მოქმედებების ზუსტ შესრულებას გამოყენებისას. ამიტომ, სკოლებში მასწავლებლების მთავარი ამოცანაა ასწავლონ ბავშვებს ალგორითმების გამოყენება, არსებული წესების სწრაფად აღქმა და შეცვლა არსებული სიტუაციის შესაბამისად. ალგორითმის სტრუქტურა ერთ-ერთი მათგანიაცნებები, რომელსაც ყველა სკოლაში სწავლობენ მათემატიკისა და კომპიუტერული მეცნიერების გაკვეთილზე.
ალგორითმის ძირითადი თვისებები
1. დისკრეტულობა (ინდივიდუალური მოქმედებების თანმიმდევრობა) - ნებისმიერი ალგორითმი უნდა იყოს წარმოდგენილი მარტივი მოქმედებების სერიით, რომელთაგან თითოეული უნდა დაიწყოს წინას დასრულების შემდეგ.
2. სიზუსტე - ალგორითმის თითოეული მოქმედება უნდა იყოს ისეთი მარტივი და გასაგები, რომ შემსრულებელს არ ჰქონდეს კითხვები და არ ჰქონდეს მოქმედების თავისუფლება.
3. ეფექტურობა - ალგორითმის აღწერა უნდა იყოს მკაფიო და სრული, რათა ყველა ინსტრუქციის შესრულების შემდეგ დავალება მიაღწიოს ლოგიკურ დასასრულს.
4. მასობრივი ხასიათი - ალგორითმი გამოსაყენებელი უნდა იყოს ამოცანების მთელ კლასზე, რომელთა გადაჭრა შესაძლებელია მხოლოდ ალგორითმში რიცხვების შეცვლით. თუმცა არსებობს მოსაზრება, რომ ბოლო პუნქტი ეხება არა ალგორითმებს, არამედ ზოგადად ყველა მათემატიკურ მეთოდს.
ხშირად სკოლებში, ბავშვებისთვის ალგორითმების უკეთ გასაგებად, მასწავლებლები იყენებენ კულინარიული წიგნიდან საჭმლის მომზადების მაგალითს, რეცეპტით წამლის დამზადებას ან მასტერკლასზე საპნის დამზადების პროცესს. თუმცა, თუ გავითვალისწინებთ ალგორითმის მეორე თვისებას, რომელიც ამბობს, რომ ალგორითმის თითოეული ელემენტი უნდა იყოს იმდენად მკაფიო, რომ მისი შესრულება შეუძლია აბსოლუტურად ნებისმიერ ადამიანს და მანქანასაც კი, შეგვიძლია დავასკვნათ, რომ ნებისმიერი პროცესი, რომელიც მოითხოვს მინიმუმ რაიმე სახის წარმოსახვის, ალგორითმის დასახელება შეუძლებელია. სამზარეულო და ხელსაქმის გაკეთება მოითხოვს გარკვეულ უნარებს და კარგად განვითარებულ ფანტაზიას.
არსებობს სხვადასხვა ტიპის ალგორითმები,მაგრამ არის სამი ძირითადი.
ციკლური ალგორითმი
ამ ტიპში, ზოგიერთი ელემენტი რამდენჯერმე მეორდება. მოქმედებების ჩამონათვალს, რომლებიც უნდა განმეორდეს მიზნის მისაღწევად, ეწოდება ალგორითმის სხეული.
ციკლის გამეორება არის ციკლის სხეულში შემავალი ყველა ელემენტის შესრულება. გამეორებების.
ციკლის იმ ნაწილებს, რომელთა სიხშირე დამოკიდებულია რიგ პირობებზე, ეწოდება განუსაზღვრელი.
უმარტივესი სახის ციკლი დაფიქსირებულია.
არსებობს ორი სახის ციკლური ალგორითმები:
- ციკლი წინაპირობით. ამ შემთხვევაში, მარყუჟის სხეული ამოწმებს მის მდგომარეობას მის შესრულებამდე.
- მარყუჟი პოსტკონდიციით. პოსტკონდიციის მქონე ციკლში მდგომარეობა მოწმდება ციკლის დასრულების შემდეგ.
ალგორითმების ხაზოვანი ტიპები
ასეთი სქემების ინსტრუქციები შესრულებულია ერთხელ მათი წარმოდგენის თანმიმდევრობით. მაგალითად, საწოლის გაკეთების ან კბილების გახეხვის პროცესი შეიძლება ჩაითვალოს ხაზოვან ალგორითმად. ეს ტიპი ასევე მოიცავს მათემატიკურ მაგალითებს, სადაც არის მხოლოდ შეკრება და გამოკლების მოქმედებები.
განშტოების ალგორითმი
არსებობს რამდენიმე ვარიანტი განშტოების ტიპში, რომელთა გამოყენებაც დამოკიდებულია მდგომარეობაზე.
მაგალითი. კითხვა: წვიმს? პასუხის ვარიანტები: "დიახ" ან "არა". Თუ"დიახ" - გახსენით ქოლგა, თუ "არა" - ჩადეთ ქოლგა ჩანთაში.
დამხმარე ალგორითმი
დამხმარე ალგორითმი შეიძლება გამოყენებულ იქნას სხვა ალგორითმებში მხოლოდ მისი სახელის მითითებით.
ტერმინები ნაპოვნია ალგორითმებში
პირობა არის სიტყვებს "თუ" და "მაშინ" შორის.
მაგალითად: თუ ინგლისური იცით, დააჭირეთ ერთს. ამ წინადადებაში ფრაზის ნაწილი "იცი ინგლისური" იქნება პირობა.
მონაცემები არის ინფორმაცია, რომელიც ატარებს გარკვეულ სემანტიკურ დატვირთვას და წარმოდგენილია ისე, რომ მისი გადაცემა და გამოყენება შესაძლებელია ამ ალგორითმისთვის.
ალგორითმული პროცესი - პრობლემის გადაჭრა ალგორითმის მიხედვით გარკვეული მონაცემების გამოყენებით.
ალგორითმის სტრუქტურა
ალგორითმს შეიძლება ჰქონდეს განსხვავებული სტრუქტურა. ალგორითმის აღწერისთვის, რომლის კონცეფცია ასევე დამოკიდებულია მის სტრუქტურაზე, შეგიძლიათ გამოიყენოთ მრავალი განსხვავებული გზა, მაგალითად: ვერბალური, გრაფიკული, სპეციალურად შემუშავებული ალგორითმული ენის გამოყენებით.
რომელი მეთოდი იქნება გამოყენებული, დამოკიდებულია რამდენიმე ფაქტორზე: დავალების სირთულეზე, რამდენად დეტალური უნდა იყოს პრობლემის გადაჭრის პროცესი და ა.შ.
ალგორითმის გრაფიკული ვერსია
გრაფიკული ალგორითმი - კონცეფცია, რომელიც გულისხმობს მოქმედებების დაშლას, რომლებიც უნდა განხორციელდეს კონკრეტული პრობლემის გადასაჭრელად, გარკვეული გეომეტრიული ფიგურების მიხედვით.
გრაფიკული დიაგრამები არ არის ნაჩვენები შემთხვევით. რათა მათ შეძლონნებისმიერი პიროვნების გასაგებად, ყველაზე ხშირად გამოიყენება სქემები და ნასი-შნეიდერმანის სტრუქტუროგრამები.
ასევე, ბლოკ-სქემები შედგენილია GOST-19701-90 და GOST-19.003-80 შესაბამისად.ალგორითმში გამოყენებული გრაფიკული ფიგურები იყოფა:
- ძირითადი. ძირითადი სურათები გამოიყენება პრობლემის გადაჭრისას მონაცემთა დამუშავებისთვის საჭირო ოპერაციების მითითებისთვის.
- დამხმარე. დამხმარე სურათები საჭიროა პრობლემის გადაჭრის ინდივიდუალური და არა ყველაზე მნიშვნელოვანი ელემენტების აღსანიშნავად.
გრაფიკულ ალგორითმში, გეომეტრიულ ფორმებს, რომლებიც გამოიყენება მონაცემების წარმოსაჩენად, ეწოდება ბლოკები.
ყველა ბლოკი მიდის თანმიმდევრობით "ზემოდან ქვემოდან" და "მარცხნიდან მარჯვნივ" - ეს არის დინების სწორი მიმართულება. სწორი თანმიმდევრობით, ბლოკების ერთმანეთთან დამაკავშირებელი ხაზები არ აჩვენებს მიმართულებას. სხვა შემთხვევებში, ხაზების მიმართულება მითითებულია ისრებით.
სწორ ალგორითმის სქემას არ უნდა ჰქონდეს ერთზე მეტი გასასვლელი დამუშავების ბლოკებიდან და ორზე ნაკლები გასასვლელი ბლოკებიდან, რომლებიც პასუხისმგებელნი არიან ლოგიკურ ოპერაციებსა და მდგომარეობის შემოწმებაზე.
როგორ ავაშენოთ ალგორითმი სწორად?
ალგორითმის სტრუქტურა, როგორც ზემოთ აღინიშნა, უნდა იყოს აგებული GOST-ის მიხედვით, წინააღმდეგ შემთხვევაში ის არ იქნება გასაგები და ხელმისაწვდომი სხვებისთვის.
ჩაწერის ზოგადი მეთოდოლოგია მოიცავს შემდეგ პუნქტებს:
სახელი, რომლითაც გაირკვევა, თუ რა პრობლემის გადაჭრა შეიძლება ამ სქემის გამოყენებით.
თითოეულ ალგორითმს უნდა ჰქონდეს მკაფიოდ მონიშნული დასაწყისი და დასასრული.
ალგორითმებიყველა მონაცემი, როგორც შემავალი, ასევე გამომავალი, ნათლად და ნათლად უნდა იყოს აღწერილი.
ალგორითმის შედგენისას უნდა აღინიშნოს ის მოქმედებები, რომლებიც საშუალებას მოგცემთ შეასრულოთ პრობლემის გადასაჭრელად საჭირო მოქმედებები შერჩეულ მონაცემებზე. ალგორითმის სავარაუდო ხედვა:
- ჩემას სახელი.
- მონაცემები.
- დაწყება.
- გუნდები.
- დასრულება.
სქემის სწორი აგება მნიშვნელოვნად გააადვილებს ალგორითმების გამოთვლას.
გეომეტრიული ფიგურები, რომლებიც პასუხისმგებელნი არიან სხვადასხვა მოქმედებებზე ალგორითმში
ჰორიზონტალური ოვალური - დასაწყისი და დასასრული (დასრულების ნიშანი).
ჰორიზონტალური მართკუთხედი - გამოთვლა ან სხვა მოქმედებები (პროცესის ნიშანი).
ჰორიზონტალური პარალელოგრამი - შეყვანა ან გამომავალი (მონაცემთა ნიშანი).
ჰორიზონტალური რომბი - მდგომარეობის შემოწმება (გადაწყვეტის ნიშანი).
მოგრძო, ჰორიზონტალური ექვსკუთხედი - მოდიფიკაცია (მომზადების ნიშანი).
ალგორითმის მოდელები ნაჩვენებია ქვემოთ.
ალგორითმის კონსტრუქციის ფორმულა-ვერბალური ვერსია.
ფორმულა-ვერბალური ალგორითმები იწერება თვითნებური ფორმით, იმ სფეროს პროფესიულ ენაზე, რომელსაც ეკუთვნის დავალება. მოქმედებების ამ გზით აღწერა ხორციელდება სიტყვებისა და ფორმულების გამოყენებით.
ალგორითმის კონცეფცია კომპიუტერულ მეცნიერებაში
კომპიუტერულ სფეროში ყველაფერი დაფუძნებულია ალგორითმებზე. სპეციალური კოდის სახით შეყვანილი მკაფიო ინსტრუქციების გარეშე, არცერთი ტექნიკა არ იმუშავებს ანპროგრამა. კომპიუტერული მეცნიერების გაკვეთილებზე მოსწავლეები ცდილობენ მიაწოდონ ალგორითმების ძირითადი ცნებები, ასწავლონ მათი გამოყენება და შექმნან ისინი დამოუკიდებლად.
კომპიუტერულ მეცნიერებაში ალგორითმების შექმნა და გამოყენება უფრო კრეატიული პროცესია, ვიდრე, მაგალითად, მათემატიკაში ამოცანის ამოხსნის ინსტრუქციების დაცვა.
ასევე არსებობს სპეციალური პროგრამა "ალგორითმი", რომელიც ეხმარება პროგრამირების სფეროში უცოდინარ ადამიანებს შექმნან საკუთარი პროგრამები. ასეთი რესურსი შეიძლება გახდეს შეუცვლელი ასისტენტი მათთვის, ვინც დგამს პირველ ნაბიჯებს კომპიუტერულ მეცნიერებაში და სურს შექმნას საკუთარი თამაშები ან სხვა პროგრამები.
მეორეს მხრივ, ნებისმიერი პროგრამა არის ალგორითმი. მაგრამ თუ ალგორითმი ახორციელებს მხოლოდ იმ მოქმედებებს, რომლებიც უნდა შესრულდეს მისი მონაცემების ჩასმით, მაშინ პროგრამა უკვე ატარებს დასრულებულ მონაცემებს. კიდევ ერთი განსხვავება ისაა, რომ პროგრამა შეიძლება იყოს დაპატენტებული და კერძო საკუთრება, მაგრამ ალგორითმი არ არის. ალგორითმი უფრო ფართო კონცეფციაა, ვიდრე პროგრამა.
დასკვნა
ამ სტატიაში გავაანალიზეთ ალგორითმის კონცეფცია და მისი ტიპები, ვისწავლეთ გრაფიკული სქემების სწორად დაწერა.