ნაკადის სქემა არის პროცესის გრაფიკული წარმოდგენა, რომელიც ნათლად აჩვენებს ამოცანის ყველა ეტაპის სისტემურ თანმიმდევრობას, ისევე როგორც ყველა იმ ჯგუფს, რომელიც ჩართულია ამ პროცესში. ასეთი სქემა არის გრაფიკული სიმბოლოების (ბლოკების) და მათ შორის გარდამავალი ხაზების (ისრების) სისტემა. თითოეული ეს ბლოკი შეესაბამება ალგორითმის გარკვეულ საფეხურს. ასეთი სიმბოლოს შიგნით მოცემულია ამ მოქმედების აღწერა.
რისთვის გამოიყენება დიაგრამები?
აღნიშნული სისტემები შექმნილია შემდეგი ფუნქციების შესასრულებლად:
- შეიმუშავეთ ახალი პროცესი;
- აღწერეთ და დააფიქსირეთ მიმდინარე ალგორითმი;
- შეიმუშავეთ ცვლილებები ამ პროცესში ან გამოიკვლიეთ ბმულები შეცდომებისა და წარუმატებლობის სავარაუდო შემთხვევის შესახებ;
- განსაზღვრეთ როდის, სად და როგორ შეიძლება შეიცვალოს მიმდინარე ალგორითმი მთელი სისტემის სტაბილურობის შესამოწმებლად.
სამუშაო ნაკადის განვითარება
ნებისმიერი ბლოკ-სქემა აგებულია მოქმედებების ალგორითმის საფუძველზე, რომელიც აღწერს მოწყობილობის ან პროგრამის მუშაობას. ამიტომ, ის პირველ რიგში თავად აშენებსსისტემა. „ალგორითმი“არის მოცემული პრობლემის გადასაჭრელად მოქმედებების თანმიმდევრობის აღწერა. სინამდვილეში, ეს არის ინფორმაციის დამუშავების აუცილებელი პროცესების შესრულების წესები. ალგორითმის აგების დაწყებამდე საჭიროა მკაფიოდ განისაზღვროს დავალება: რა უნდა იყოს მიღებული შედეგად, რა საწყისი ინფორმაციაა საჭირო და რა არის უკვე ხელმისაწვდომი, არის თუ არა რაიმე შეზღუდვა მის მოპოვებაზე. ამის შემდეგ დგება მოქმედებების სია, რომლებიც უნდა განხორციელდეს სასურველი შედეგის მისაღებად.
ალგორითმების ტიპები
პრაქტიკაში ყველაზე ხშირად გამოიყენება შემდეგი ტიპის დიაგრამები:
- გრაფიკული, ანუ ის დაფუძნებულია გეომეტრიულ სიმბოლოებზე;
- სიტყვიერი: შედგენილია კონკრეტული ენის ჩვეულებრივი სიტყვების გამოყენებით;
- ფსევდოკოდები: ეს არის ნახევრად ფორმალიზებული აღწერა პირობითად ალგორითმულ ენაზე, რომელიც მოიცავს პროგრამირების ენის ელემენტებს და ლიტერატურულ ფრაზებს, ასევე ზოგადად მიღებულ მათემატიკურ სიმბოლოებს;
- პროგრამული: ჩაწერისთვის გამოიყენება მხოლოდ პროგრამირების ენები.
მოწყობილობის ბლოკის დიაგრამის აღწერა
მოქმედებების თანმიმდევრობის გრაფიკული გამოსახულება მოიცავს ალგორითმის გამოსახულებას, რომელიც აღწერს ამ მიკროსქემის ფუნქციური ბლოკების კავშირებს, რომლებიც შეესაბამება ერთი ან რამდენიმე მოქმედების შესრულებას. მასივის ბლოკ-სქემა შედგება ცალკეული ელემენტებისაგან, რომელთა ზომები და კონსტრუქციის წესები განისაზღვრება სახელმწიფო სტანდარტით. თითოეული ტიპის მოქმედებისთვის (მონაცემების შეყვანა, გამოხატვის მნიშვნელობების შეფასება, ვალიდაციაპირობები, მოქმედებების განმეორების კონტროლი, დამუშავების დასრულება და ა.შ.) მოცემულია ცალკე გეომეტრიული ფიგურა, წარმოდგენილი ბლოკის სახით. ეს სიმბოლოები დაკავშირებულია ხაზებით, რომლებიც განსაზღვრავენ მოქმედებების თანმიმდევრობას.
ძირითადი ელემენტები, რომლებიც გამოიყენება დიაგრამების შედგენაში
გრაფიკული სიმბოლოების სრული სია, რომლებიც გამოიყენება ალგორითმის აღსაწერად, შედგება 42 ელემენტისგან. ჩვენ არ მივცემთ ყველაფერს, მაგრამ განვიხილავთ მხოლოდ მთავარს.
დიაგრამის ელემენტები:
1. პროცესი ნიშნავს გამოთვლით მოქმედებას ან ასეთი ქმედებების თანმიმდევრობას, რომელიც ცვლის მნიშვნელობებს, მონაცემთა მოწყობას ან პრეზენტაციის ფორმას. სქემის სიცხადისთვის, ასეთი ელემენტები შეიძლება გაერთიანდეს ერთ ბლოკში. ეს სიმბოლო ჰგავს მართკუთხედს, რომლის შიგნით არის ჩაწერილი კომენტარები, რომლებიც თან ახლავს ოპერაციის (ან ოპერაციების ჯგუფის) შესრულებას.
2. გადაწყვეტილება. ეს ბლოკი გამოიყენება გარკვეულ პირობებში კონტროლის გადასვლის აღსანიშნავად. თითოეული ასეთი ელემენტი განსაზღვრავს კითხვას, შედარებას ან მდგომარეობას, რომელიც განსაზღვრავს მას. სხვა სიტყვებით რომ ვთქვათ, გადაწყვეტილება არის პროგრამის ან ალგორითმის შესრულების მიმართულების არჩევა, რომელიც დამოკიდებულია ზოგიერთ ცვლად მდგომარეობაზე. ამ ელემენტის გრაფიკული ხედი არის რომბი. აღნიშნული სიმბოლო შეიძლება გამოვიყენოთ, როგორც შემდეგი ერთიანი სტრუქტურების გამოსახულება: არჩევანი, სრული და არასრული ჩანგალი, ციკლი „სანამ“და „სანამ“.
3. მოდიფიკაცია. ეს ბლოკი აღნიშნავს მარყუჟის დასაწყისს. იგი გამოიყენება ციკლური სტრუქტურის ორგანიზებისთვის. ასეთი ელემენტის შიგნით იწერება წრის პარამეტრიმოქმედებები, მიუთითეთ მისი საწყისი მნიშვნელობები, სასაზღვრო მდგომარეობა, აგრეთვე პარამეტრის შეცვლის ნაბიჯი შემდგომი განმეორებისთვის. სხვა სიტყვებით რომ ვთქვათ, მოდიფიკაცია არის ბრძანებების ან მათი ჯგუფების შეცვლის შესრულება, ოპერაციები, რომლებიც ცვლის პროგრამას. ამ სიმბოლოს გრაფიკული გამოსახულება არის ექვსკუთხედი.
4. წინასწარ განსაზღვრული პროცესი ნიშნავს გაანგარიშებას წინასწარ განსაზღვრული ან სტანდარტული პროგრამის მიხედვით. იგი გამოიყენება დამხმარე ალგორითმზე ზარის აღსანიშნავად, რომელიც არსებობს ავტონომიურად ცალკეული დამოუკიდებელი მოდულების სახით, ასევე ბიბლიოთეკის რუტინების გამოსაძახებლად. გრაფიკულად, ეს სიმბოლო წარმოდგენილია მართკუთხედით ორი ვერტიკალური ველით კიდეების გასწვრივ. ეს ელემენტი გამოიყენება ფუნქციების, პროცედურების, პროგრამის მოდულების ზარების მითითებისთვის.
5. ზოგადად მონაცემთა შეყვანა-გამოტანა.
6. დაწყება და გაჩერება. ეს ელემენტი ნიშნავს ალგორითმის დასაწყისს და დასასრულს, ასევე პროგრამაში შესვლას და მისგან გამოსვლას. გრაფიკულად, ეს სიმბოლო წააგავს მართკუთხედს, რომელსაც აქვს რკალი გვერდითი სწორი ხაზების ნაცვლად.
7. დოკუმენტი ნიშნავს სამუშაოს შედეგების გამოსავალს დასაბეჭდად. გრაფიკულად, ასეთი ელემენტი წააგავს მართკუთხედს, ქვედა სწორი ხაზის ნაცვლად მხოლოდ ნახევრად ტალღაა დახატული.
8. ხელით შეყვანა ნიშნავს მონაცემების დამუშავებას ოპერატორის მიერ კომპიუტერთან (კლავიატურაზე) მიერთებული მოწყობილობის გამოყენებით. ხელით შეყვანის გრაფიკული სიმბოლო არის ოთხკუთხედი, რომლის გვერდითი ხაზები პარალელურია, ქვედა პერპენდიკულარულია მათზე, ხოლო ზედა არის ირიბი.
9. ეკრანი ნიშნავს ინფორმაციის შეყვანას ან გამომავალს, როდესაც მოწყობილობა პირდაპირ არისდაკავშირებულია პროცესორთან. მონაცემების დაკვრის დაწყების მომენტში, ოპერატორს შეუძლია ცვლილებები შეიტანოს დამუშავების დროს. გრაფიკულად, ეს ელემენტი წარმოადგენს ფიგურას, რომელშიც ქვედა და ზედა ხაზები პარალელურია, მარჯვენა არის რკალი, ხოლო მარცხენა შედგება ორი სწორი ხაზისგან ისრის სახით.
10. ნაკადის ხაზები არის ისრები, რომლებიც მიუთითებენ კავშირების თანმიმდევრობას. სტრუქტურის არცერთ ბლოკ-სქემას არ შეუძლია ამ ელემენტის გარეშე. ამ სიმბოლოების დახატვის გარკვეული წესები არსებობს. მოდით ჩამოვთვალოთ ისინი:
- ეს ელემენტები უნდა იყოს პარალელურად გარე პერიმეტრის ხაზებთან ან იმ გვერდის საზღვრებთან, რომელზეც ნაჩვენებია ეს ბლოკ-სქემა;
- ხაზის მიმართულება ზემოდან ქვემოდან ან მარცხნიდან მარჯვნივ ითვლება მთავარ, ის არ არის მითითებული ისრებით, მათ მიერ მითითებულია მიმართულებების მითითების სხვა შემთხვევები;
- ამ ელემენტის მიმართულების შეცვლა ხდება მხოლოდ 90ო.
კუთხით.
11. კონექტორი. ეს ელემენტი მიზნად ისახავს კომუნიკაციის მითითებას შეწყვეტილ ნაკადის ხაზებზე. ეს სიმბოლოები გამოიყენება იმ შემთხვევაში, თუ პროგრამის დიაგრამა აგებულია რამდენიმე ნაწილისგან. შემდეგ ნაკადის ხაზი ერთი ნაწილიდან უნდა დასრულდეს „შემერთებლით“, ხოლო ახალი ნაწილი უნდა დაიწყოს ამ სიმბოლოთი. ასეთი ელემენტის შიგნით მოთავსებულია იგივე სერიული ნომერი. "შემერთებელი" გრაფიკა არის წრე.
12. ინტერკონექტორი. ამ ელემენტის დანიშნულება წინას მსგავსია, მხოლოდ ის გამოიყენება სხვადასხვა გვერდებზე განთავსებული სქემების დასაკავშირებლად. იმიჯი ასეთიელემენტი წარმოდგენილია ხუთკუთხედით სახლის სახით.
13. კომენტარი არის ბმული დიაგრამის სხვადასხვა ელემენტებს შორის განმარტებებით. აღნიშნული ელემენტი საშუალებას გაძლევთ ჩართოთ ფორმულები და სხვა ინფორმაცია.
შენობების დიაგრამები
ალგორითმის გრაფიკული კონსტრუქცია არის მოწყობილობის ან პროგრამის დოკუმენტაციის ნაწილი, რომელიც ყოველთვის უხვად არის ხელმისაწვდომი. თუმცა, უმეტეს შემთხვევაში, პროგრამულ უზრუნველყოფას საერთოდ არ სჭირდება flowchart. მხოლოდ რამდენიმე მოითხოვს ალგორითმის აგებას, რომელიც რამდენიმე ფურცელს იკავებს, დანარჩენს კი სიმბოლური სქემა სჭირდება. მარტივი დიაგრამა აჩვენებს პროგრამების განშტოების სტრუქტურას მხოლოდ ერთ ასპექტში. თუმცა, ასეთი სტრუქტურაც კი აშკარად ჩანს მხოლოდ იმ შემთხვევაში, თუ ალგორითმი ჯდება ერთ ფურცელზე. წინააღმდეგ შემთხვევაში, როდესაც ფლუსჩარტი მდებარეობს რამდენიმე გვერდზე, რომლებიც დაკავშირებულია გვერდის გადასვლებით, ძალიან რთულია მის შესახებ სწორი წარმოდგენა. თუ ის მოთავსებულია ერთ ფურცელზე, მაშინ დიდი პროგრამისთვის, ალგორითმის ეს სურათი გადაიქცევა მის გენერალურ გეგმაში ძირითადი ბლოკებისა და ეტაპების ჩამონათვალით. რა თქმა უნდა, ასეთი გრაფიკი არ შეესაბამება დიაგრამების მშენებლობის სტანდარტებს, მაგრამ მას არ სჭირდება ისინი, რადგან ეს პროცესი სრულიად ინდივიდუალურია. წესები სიმბოლოების ტიპთან, ისრებთან და ნუმერაციის თანმიმდევრობასთან დაკავშირებით საჭიროა მხოლოდ დეტალური დიაგრამების გასაანალიზებლად.
მასივები და აგების ალგორითმები
მაივი არის იმავე ტიპის ინფორმაციის ერთობლიობა, რომელიც ინახება მეხსიერების თანმიმდევრულ კლასტერებში და აქვს საერთო სახელი. ასეთ უჯრედებს ე.წ"სისტემის ელემენტები". ყველა კლასტერი დანომრილია თანმიმდევრობით. ამ რიცხვს ეწოდება "მასივის ელემენტის ინდექსი". როგორ შევადგინოთ ბლოკ-სქემა ასეთი სისტემისთვის? განვიხილოთ ერთგანზომილებიანი ტიპის ელემენტარული მასივის ალგორითმის შექმნის მაგალითი. უმარტივეს სისტემას აქვს სიმების ჩვეულებრივი ფორმა. მოდით დავაყენოთ ამ მასივის სახელი - "A". ჩვენ ვივარაუდებთ, რომ ჩვენი სისტემა შედგება რვა უჯრედისგან (1-დან 8-მდე). თითოეული აღნიშნული კლასტერი შეიცავს შემთხვევით რიცხვს, რომელსაც ეწოდება "მასივის ელემენტი". კონკრეტული უჯრედის მითითებისთვის, თქვენ უნდა მიუთითოთ სახელი კვადრატულ ფრჩხილებში ([3]). განვიხილოთ მაგალითი, რომელშიც მასივის ბლოკ-სქემა შექმნილია იმისთვის, რომ სისტემა შეავსოს შემთხვევითი რიცხვებით და შემდეგ აჩვენოს ინფორმაცია ეკრანზე. რა არის ასეთი ალგორითმი? ეს ელემენტარული სისტემაა. ფაქტობრივად, მას არ აქვს პრაქტიკული გამოყენება, მაგრამ მოსახერხებელია სასწავლო პროცესისთვის. განსახილველი ბლოკ-სქემა (კონსტრუქციის მაგალითი აღწერილია ქვემოთ) შეიცავს მხოლოდ შვიდ ძირითად ელემენტს, რომლებიც დაკავშირებულია გარდამავალი ხაზებით.
დავალებების თანმიმდევრობის აღწერა
1. სქემის პირველი ელემენტი იქნება სიმბოლო "დაწყება".
2. მეორე ბლოკი არის „პროცესი“, რომლის შიგნით შევდივართ „შემთხვევითი ინიციალიზაცია“.
3. შემდეგი ელემენტია „მოდიფიკაცია“, ბლოკში შევიყვანთ მასივის უჯრედების მნიშვნელობას.
4. გარდა ამისა, მოცემული ფუნქციის მიხედვით, ხდება გადამისამართება „პროცესის“შემდეგ ბლოკზე, რომელშიც მითითებულია სისტემის კონკრეტული კლასტერების მიმართვა, რაც მიუთითებს შემთხვევითი რიცხვების ლიმიტს ნულიდან დიაპაზონში.ასი. ამ ოპერაციის შემდეგ ხდება მესამე ბლოკში დაბრუნება და მისი მეშვეობით მეხუთეზე.
5. ამ "მოდიფიკაციების" ბლოკში, შეყვანილი ფუნქციის მიხედვით, ხდება გადამისამართება შემდეგ ელემენტზე.
6. "გამომავალი" აჩვენებს ინფორმაციას მონიტორზე მასივის ახალი შინაარსის შესახებ, რასაც მოჰყვება წინა ბლოკის მიმართულება. შემდეგი - ბოლო ელემენტამდე.
7. ალგორითმის "დასასრული".
ასეთი flowchart-ზე დაყრდნობით შედგენილია პროგრამა, რომელიც უზრუნველყოფს წარმოდგენილი ალგორითმის მუშაობას.
Flowchart რედაქტორი
თუ გაინტერესებთ როგორ შეადგინოთ დიაგრამა, იცოდეთ, რომ არსებობს სპეციალური პროგრამები, რომლებიც შექმნილია ასეთი სისტემების შესაქმნელად და რედაქტირებისთვის. ალგორითმის გრაფიკული ჩვენების მოხერხებულობა არის ის, რომ მომხმარებელი არ არის მიბმული კონკრეტული პროგრამირების ენის სინტაქსზე. აგებული ბლოკ-სქემა თანაბრად შესაფერისია ყველა ენისთვის (მაგალითად, C, Pascal, BASIC და სხვა). გარდა ამისა, რედაქტორი შეიძლება გამოყენებულ იქნას დიაგრამების შესაქმნელად და სქემების ფუნქციონირების შესამოწმებლად. ასეთი პროგრამა არის სპეციალიზებული პროგრამული უზრუნველყოფა. ის უზრუნველყოფს ინსტრუმენტების მრავალფეროვან კომპლექტს, რომელიც აუცილებელია სქემების შესაქმნელად, რაც მას უფრო მოსახერხებელს ხდის, ვიდრე ჩვეულებრივი გრაფიკული რედაქტორები. დამატებითი ვარიანტები საშუალებას გაძლევთ ოპტიმიზაცია გაუწიოთ სისტემის შედგენის პროცესს მისი შემდგომი გარდაქმნით პროგრამირების ენის ფუნქციებად და პროცედურებად. გარდა ამისა, flowchart რედაქტორი გთავაზობთ შაბლონების კომპლექტს, რომელსაც შეუძლია მნიშვნელოვნად დააჩქაროს დამწყები მომხმარებლის მუშაობა.ყოველივე ამის შემდეგ, ცნობილია, რომ ალგორითმის აგებისას ხშირად გამოიყენება განმეორებითი სტრუქტურები, მაგალითად, ციკლების სხვადასხვა ვარიანტები, ალტერნატივები (სრული და არასრული), მრავალი განშტოება და ა.შ. რედაქტორი საშუალებას გაძლევთ აირჩიოთ ხშირად გამოყენებული ელემენტები flowcharts-ში და დაამატოთ ისინი შექმნილ დიაგრამაში. ეს გამორიცხავს მათი ყოველ ჯერზე გადახაზვის აუცილებლობას. გარდა ამისა, რედაქტორის გამოყენებით შეგიძლიათ შემოიტანოთ ფუნქციები და პროცედურები, რომლებიც განხორციელებულია პროგრამირების ნებისმიერ ცნობილ ენაზე. ეს ვარიანტი სასარგებლოა ალგორითმის სტრუქტურის გასაანალიზებლად, რომელიც დაწერილია უცნობ ენაზე. მოცემული პროგრამის სისტემური მოთხოვნები საკმაოდ მოკრძალებულია, რაც საშუალებას გაძლევთ გამოიყენოთ იგი ნებისმიერ პერსონალურ კომპიუტერზე.
დასკვნა
შეჯამებით, უნდა აღვნიშნო, რომ ალგორითმების აგების დეტალური სქემები უკვე მოძველებულია. როგორც პროცესის აღწერა, ისინი არავის აინტერესებთ. საუკეთესო შემთხვევაში, დიაგრამები შესაფერისია დამწყებთათვის, რომლებმაც არ იციან როგორ იფიქრონ ალგორითმულად. მათი შინაარსით ერთ დროს შემოთავაზებული ელემენტები იყო მაღალი დონის ენა; ისინი აერთიანებდნენ მანქანების ენის ოპერატორებს ცალკეულ ჯგუფებად. ამ დროისთვის, თითოეული გრაფიკული ელემენტი შეესაბამება კონკრეტულ ოპერატორს. ეს ნიშნავს, რომ თავად სიმბოლო გადაიქცა შემთხვევით და, რაც მთავარია, უსარგებლო ნახატად, რომლის მიტოვებაც შესაძლებელია. დღეს გადახტომის ხაზებიც კი ზედმეტი გახდა, რადგან თითოეული ოპერატორი უკვე განსაზღვრულია. ფაქტობრივად, ალგორითმების გრაფიკული კონსტრუქცია უფრო მოწონებულია, ვიდრე პრაქტიკაში გამოიყენება. პროგრამისტი, რომელსაც აქვს დიდი გამოცდილება პროგრამის დაწერამდე,იშვიათად ხატავს ბლოკ დიაგრამას. როდესაც ორგანიზაციის სტანდარტი მოითხოვს გრაფიკულ ალგორითმს, ისინი ხაზავენ მას სამუშაოს დასრულების შემდეგ.