კომპიუტერულ მეცნიერებათა შესწავლისას დიდი ყურადღება ეთმობა ალგორითმების და მათი ტიპების შესწავლას. მათ შესახებ ძირითადი ინფორმაციის ცოდნის გარეშე, თქვენ არ შეგიძლიათ დაწეროთ პროგრამა ან გააანალიზოთ მისი მუშაობა. ალგორითმების შესწავლა იწყება სასკოლო კომპიუტერული მეცნიერების კურსში. დღეს განვიხილავთ ალგორითმის კონცეფციას, ალგორითმის თვისებებს, ტიპებს.
კონცეფცია
ალგორითმი არის მოქმედებების გარკვეული თანმიმდევრობა, რომელიც იწვევს კონკრეტული შედეგის მიღწევას. ალგორითმის შედგენისას შემსრულებლის ყოველი ქმედება დეტალურად არის გაწერილი, რაც მოგვიანებით მიიყვანს მას პრობლემის გადაჭრამდე.
საკმაოდ ხშირად, ალგორითმები გამოიყენება მათემატიკაში გარკვეული ამოცანების გადასაჭრელად. ასე რომ, ბევრმა იცის კვადრატული განტოლებების ამოხსნის ალგორითმი დისკრიმინანტის ძიებით.
თვისებები
კომპიუტერულ მეცნიერებაში ალგორითმების ტიპების განხილვამდე აუცილებელია მათი ძირითადი თვისებების გარკვევა.
ალგორითმების ძირითად თვისებებს შორის უნდა აღინიშნოს შემდეგი:
- დეტერმინიზმი, ე.ი.დარწმუნებულობა. ის მდგომარეობს იმაში, რომ ნებისმიერი ალგორითმი გულისხმობს გარკვეული შედეგის მიღებას მოცემული საწყისისთვის.
- პროდუქტიულობა. ეს ნიშნავს, რომ თუ არსებობს საწყისი მონაცემების სერია, ნაბიჯების სერიის შესრულების შემდეგ მიიღწევა გარკვეული, მოსალოდნელი შედეგი.
- მასობრივი ხასიათი. ერთხელ დაწერილი ალგორითმი შეიძლება გამოყენებულ იქნას მოცემული ტიპის ყველა ამოცანის გადასაჭრელად.
- დისკრეტულობა. ეს გულისხმობს, რომ ნებისმიერი ალგორითმი შეიძლება დაიყოს რამდენიმე ეტაპად, რომელთაგან თითოეულს აქვს თავისი მიზანი.
წერის მეთოდები
არ აქვს მნიშვნელობა რა სახის კომპიუტერული მეცნიერების ალგორითმები განიხილება, მათი ჩაწერის რამდენიმე გზა არსებობს.
- ვერბალური.
- ფორმულაციური-ვერბალური.
- გრაფიკა.
- ალგორითმის ენა.
ალგორითმი ყველაზე ხშირად გამოსახულია ბლოკ-სქემის სახით, GOST-ების მიერ დაფიქსირებული სპეციალური აღნიშვნების გამოყენებით.
მთავარი სახეობა
არსებობს სამი ძირითადი სქემა:
- წრფივი ალგორითმი.
- განშტოების ალგორითმი, ან განშტოება.
- ციკლური.
შემდეგ, ჩვენ განვიხილავთ კომპიუტერულ მეცნიერებაში ალგორითმების ტიპებს, მაგალითებს, რომლებიც დაგეხმარებათ გაიგოთ, როგორ მუშაობენ ისინი უფრო დეტალურად.
წრფივი
კომპიუტერულ მეცნიერებაში ყველაზე მარტივი წრფივი ალგორითმია. იგი ითვალისწინებს მოქმედებების თანმიმდევრობას. მოდით მოვიყვანოთ ამ ტიპის ალგორითმის უმარტივესი მაგალითი. მოდით დავარქვათ მას "სასკოლო კოლექცია".
1. ჩვენ ვდგებით, როცა მაღვიძარა დარეკავს.
2. ირეცხება.
3. კბილების გახეხვა.
4.ჩვენ ვაკეთებთ ვარჯიშებს.
5. ჩაცმა.
6. ჭამა.
7. ჩაიცვი ფეხსაცმელი და წადი სკოლაში.
8. ალგორითმის დასასრული.
განშტოების ალგორითმი
კომპიუტერულ მეცნიერებაში ალგორითმების ტიპების განხილვისას არ შეიძლება არ გავიხსენოთ განშტოების სტრუქტურა. ეს ტიპი ითვალისწინებს ისეთი პირობის არსებობას, რომლის დროსაც მისი შესრულების შემთხვევაში მოქმედებები შესრულებულია ერთი თანმიმდევრობით, ხოლო წარუმატებლობის შემთხვევაში მეორეში.
მაგალითად, აიღეთ შემდეგი სიტუაცია - ფეხით მოსიარულეთა გადაკვეთა გზაზე.
1. შუქნიშანს უახლოვდება.
2. ჩვენ ვუყურებთ შუქნიშანს.
3. ის უნდა იყოს მწვანე (ეს პირობაა).
4. პირობის დაკმაყოფილების შემთხვევაში გზას გადავკვეთთ.
4.1 თუ არა, დაელოდეთ სანამ მწვანე შუქი აინთება.
4.2 გზის გადაკვეთა.
5. ალგორითმის დასასრული.
ციკლური ალგორითმი
კომპიუტერულ მეცნიერებაში ალგორითმების ტიპების შესწავლისას დეტალურად უნდა შევჩერდეთ ციკლურ ალგორითმზე. ეს ალგორითმი ითვალისწინებს გამოთვლების ან მოქმედებების მონაკვეთს, რომელიც შესრულდება მანამ, სანამ გარკვეული პირობა არ დაკმაყოფილდება.
აიღეთ მარტივი მაგალითი. თუ რიცხვების სერია არის 1-დან 100-მდე. ჩვენ უნდა ვიპოვოთ ყველა მარტივი რიცხვი, ანუ ისინი, რომლებიც იყოფა ერთზე და საკუთარ თავზე. მოდით ვუწოდოთ ალგორითმს "პირველი რიცხვები".
1. ვიღებთ რიცხვს 1.
2. შეამოწმეთ არის თუ არა 100-ზე ნაკლები.
3. თუ კი, შეამოწმეთ არის თუ არა ეს რიცხვი მარტივი.
4. თუ პირობა დაკმაყოფილებულია, ჩაწერეთ.
5. ვიღებთ რიცხვს 2.
6. შეამოწმეთ არის თუ არა 100-ზე ნაკლები.
7. შეამოწმეთ მარტივია თუ არა.
…. აიღეთ ნომერი 8.
შეამოწმეთ არის თუ არა 100-ზე ნაკლები.
შემოწმება არის თუ არა რიცხვი მარტივი.
არა, გამოტოვეთ.
აიღეთ ნომერი 9.
ამგვარად, გაიმეორეთ ყველა რიცხვზე 100-მდე.
როგორც ხედავთ, ნაბიჯები 1-4 რამდენჯერმე განმეორდება.
ციკლურ ალგორითმებს შორის არის ალგორითმები წინაპირობით, როდესაც მდგომარეობა შემოწმებულია ციკლის დასაწყისში, ან პოსტპირობითი, როდესაც შემოწმება ციკლის ბოლოსაა.
სხვა ვარიანტები
ალგორითმი შეიძლება იყოს შერეული. ასე რომ, ის შეიძლება იყოს ციკლური და განშტოებული ამავე დროს. ამ შემთხვევაში, სხვადასხვა პირობები გამოიყენება ალგორითმის სხვადასხვა სეგმენტზე. ასეთი რთული სტრუქტურები გამოიყენება რთული პროგრამებისა და თამაშების წერისას.
აღნიშვნა ბლოკ დიაგრამაში
ჩვენ განვიხილეთ რა ტიპის ალგორითმებია კომპიუტერულ მეცნიერებაში. მაგრამ ჩვენ არ ვისაუბრეთ იმაზე, თუ რა სიმბოლოებია გამოყენებული მათ გრაფიკულ ჩანაწერში.
- ალგორითმის დასაწყისი და დასასრული იწერება ოვალურ ჩარჩოში.
- თითოეული გუნდი ფიქსირდება მართკუთხედში.
- პირობა იწერება რომბში.
- ალგორითმის ყველა ნაწილი დაკავშირებულია ისრებით.
დასკვნა
განვიხილეთ თემა "ალგორითმები, ტიპები, თვისებები". კომპიუტერული მეცნიერება დიდ დროს უთმობს ალგორითმების შესწავლას. ისინი გამოიყენება სხვადასხვა პროგრამის დაწერისას, როგორც მათემატიკური ამოცანების გადასაჭრელად, ასევე თამაშებისა და სხვადასხვა სახის აპლიკაციების შესაქმნელად.