ალგორითმის ბლოკ-სქემების მაგალითები. დიაგრამის ძირითადი ელემენტები

31.01.2019 17.09.2019 Learnpascal

ასე რომ, პასკალის გრძელი და დამღლელი ქება-დიდება გამოტოვეთ, რომლის გამოქვეყნებაც ბევრი საიტის რედაქტორებს უყვართ თავიანთ სტატიებში, მოდით პირდაპირ გადავიდეთ ყველაზე ძირითადზე - პროგრამირებაზე.

სკოლებში, როგორც წესი, პასკალის შესწავლა იწყება უმარტივესი ამოცანების გადაჭრით სხვადასხვა ალგორითმების ან სქემების შედგენით, რომლებსაც ბევრი ისე ხშირად უგულებელყოფს და მას უსარგებლო სისულელედ თვლის. მაგრამ ამაოდ. მე, ისევე როგორც ნებისმიერმა ადამიანმა, რომელმაც ცოტათი მაინც იცის პროგრამირების შესახებ (არ აქვს მნიშვნელობა სად - Pascal, C, Delphi), შემიძლია დაგარწმუნოთ - დიაგრამების სწორად და სწრაფად შედგენის შესაძლებლობა არის პროგრამირების საფუძველი, საფუძველი.

ნაკადის სქემა არის ალგორითმის გრაფიკული წარმოდგენა. იგი შედგება ფუნქციური ბლოკებისგან, რომლებიც ასრულებენ სხვადასხვა მიზნებს (შეყვანა/გამომავალი, დაწყება/დასრულება, ფუნქციის გამოძახება და ა.შ.).

არსებობს ბლოკების რამდენიმე ძირითადი ტიპი, რომლებიც ადვილად დასამახსოვრებელია:

გადავწყვიტე დღევანდელი გაკვეთილი მიმეძღვნა არა მხოლოდ სქემების შესწავლას, არამედ ხაზოვანი ალგორითმების შესწავლას. როგორც გახსოვთ, წრფივი ალგორითმი არის უმარტივესი ტიპის ალგორითმი. მისი მთავარი მახასიათებელია ის, რომ არ შეიცავს რაიმე მახასიათებელს. სწორედ ეს ხდის მასთან მუშაობას მარტივს და სასიამოვნოს.

ეს ამოცანა არ უნდა წარმოადგენდეს რაიმე განსაკუთრებულ სირთულეს, რადგან ის ემყარება მართკუთხედის ფართობისა და პერიმეტრის გამოსათვლელ ფორმულებს, რომლებიც კარგად არის ცნობილი ყველა ჩვენგანისთვის, ამიტომ ამ ფორმულების გამოყვანას არ დავკიდებთ.

მოდით შევქმნათ ალგორითმი ასეთი პრობლემების გადასაჭრელად:

1) წაიკითხეთ პრობლემა.
2) ჩვენთვის ცნობილი და უცნობი ცვლადები ჩაწერეთ „მოცემული“. (No1 ამოცანაში ცნობილი ცვლადები მოიცავს გვერდებს: a, b; უცნობი ცვლადები არის ფართობი S და პერიმეტრი P)
3) დაიმახსოვრეთ ან შექმენით საჭირო ფორმულები. (გვაქვს: S=a*b; P=2*(a+b))
4) გააკეთეთ ბლოკ-სქემა.
5) დაწერეთ გამოსავალი პასკალის პროგრამირების ენაზე.

მოდით დავწეროთ პირობა უფრო მოკლე ფორმით.

იპოვეთ: S, P

პრობლემის გადაწყვეტა No1

პროგრამის სტრუქტურა, რომელიც წყვეტს ამ პრობლემას, ასევე მარტივია:

  • 1) ცვლადების აღწერა;
  • 2) მართკუთხედის გვერდების მნიშვნელობების შეყვანა;
  • 3) მართკუთხედის ფართობის გამოთვლა;
  • 4) მართკუთხედის პერიმეტრის გამოთვლა;
  • 5) ფართობისა და პერიმეტრის მნიშვნელობების ჩვენება;
  • 6) დასასრული.

და აი გამოსავალი:

პროგრამის მართკუთხედი; Var a, b, S, P: მთელი რიცხვი; დაიწყეთ წერა ("შეიყვანეთ მართკუთხედის გვერდები!"); readln(a, b); S:=a*b; P:=2*(a+b); writeln ("მართკუთხედის ფართობი: ", S); write("მართკუთხედის პერიმეტრი: ", P); Დასასრული.

დავალება #2: პირველი მანქანის სიჩქარეა V1 კმ/სთ, მეორის – V2 კმ/სთ, მათ შორის მანძილი S კმ. რა მანძილი იქნება მათ შორის T საათის შემდეგ, თუ მანქანები მოძრაობენ სხვადასხვა მიმართულებით? V1, V2, T და S მნიშვნელობები დაყენებულია კლავიატურაზე.

ჩვენ ვასრულებთ გამოსავალს, ისევ ალგორითმის მიხედვით. ტექსტის წაკითხვის შემდეგ გადავდივართ შემდეგ პუნქტზე. როგორც ყველა ფიზიკური ან მათემატიკური ამოცანის შემთხვევაში, ეს არის პრობლემის პირობების აღნიშვნა:

მოცემული: V1, V2, S, T
იპოვეთ: S1

შემდეგი მოდის ჩვენი გადაწყვეტის ყველაზე მნიშვნელოვანი და ამავე დროს ყველაზე საინტერესო ნაწილი - ჩვენთვის საჭირო ფორმულების შედგენა. როგორც წესი, ვარჯიშის საწყის ეტაპზე ყველა საჭირო ფორმულა ჩვენთვის კარგად არის ცნობილი და აღებულია სხვა ტექნიკური დისციპლინებიდან (მაგალითად, სხვადასხვა ფიგურების ფართობის საპოვნელად, სიჩქარის, მანძილის საპოვნელად და ა.შ. .).

ჩვენი პრობლემის გადასაჭრელად გამოყენებული ფორმულა შემდეგია:

ალგორითმის შემდეგი წერტილი არის ბლოკ-სქემა:

პრობლემის გადაწყვეტა No2.

და ასევე პასკალში დაწერილი გამოსავალი:

პროგრამის დისტრიბუცია; Var V1, V2, S, T, S1: მთელი რიცხვი; (Enter ) start write ("შეიყვანეთ პირველი მანქანის სიჩქარე: "); readln(V1); write ("შეიყვანეთ მეორე მანქანის სიჩქარე: "); readln(V2); write ("შეიყვანეთ დრო: "); readln(T); write ("შეიყვანეთ მანძილი მანქანებს შორის: "); readln(S); S1:=(V1+V2)*T+S; writeln("Through ", t,"h. მანძილი ", S1," კმ."); Დასასრული.

შეიძლება ფიქრობთ, რომ ეს ორი პროგრამა სწორია, მაგრამ ეს ასე არ არის. ბოლოს და ბოლოს, სამკუთხედის გვერდი შეიძლება იყოს 4,5 და არა 4 და მანქანის სიჩქარე სულაც არ არის მრგვალი რიცხვი! და მთელი რიცხვი არის მხოლოდ მთელი რიცხვები. ამიტომ, როცა მეორე პროგრამაში სხვა ნომრების ჩაწერას ვცდილობ, ჩნდება შეცდომა:


გთხოვთ გაითვალისწინოთ, რომ პასკალში, ისევე როგორც სხვა პროგრამირების ენაში, ათობითი წილადი შეიყვანება წერტილით და არა მძიმით!

ამ პრობლემის გადასაჭრელად, თქვენ უნდა გახსოვდეთ პასკალის რომელი ტიპია პასუხისმგებელი არა მთელი რიცხვებისთვის. ჩვენ განვიხილეთ ძირითადი ტიპები. ასე რომ, ეს არის რეალური ტიპი - რეალური. აი, როგორ გამოიყურება შესწორებული პროგრამა:

როგორც ხედავთ, ეს სტატია სასარგებლოა როგორც დამწყებთათვის, ასევე უფრო გამოცდილი პასკალის მომხმარებლებისთვის, რადგან სქემების შედგენა არა მხოლოდ ძალიან მარტივი და სწრაფია, არამედ ძალიან საინტერესოც.

ალგორითმი- გარკვეულ ენაზე აღწერილი წესების ზუსტი საბოლოო სისტემა, რომელიც განსაზღვრავს გარკვეულ ობიექტებზე მოქმედებების შინაარსს და რიგითობას, რომლის მკაცრი განხორციელება იძლევა პრობლემის გადაწყვეტას.ალგორითმის კონცეფცია, რომელიც ფუნდამენტურია მათემატიკასა და კომპიუტერულ მეცნიერებაში. , წარმოიშვა კომპიუტერული ტექნოლოგიების გამოჩენამდე დიდი ხნით ადრე. სიტყვა "ალგორითმი" გაჩნდა შუა საუკუნეებში, როდესაც ევროპელები გაეცნენ არითმეტიკული მოქმედებების შესრულების მეთოდებს ათობითი რიცხვების სისტემაში, რომელიც აღწერილია უზბეკი მათემატიკოსის მუჰამედ ბინ ალ-ხვარიზმის მიერ. სიტყვა ალგორითმი არის ევროპული გამოთქმის შედეგი. ალ-ხვარეზმის სიტყვები.თავდაპირველად ალგორითმი გაგებული იყო, როგორც ათობითი რიცხვებზე არითმეტიკული მოქმედებების შესრულების მეთოდი. მოგვიანებით ამ კონცეფციის გამოყენება დაიწყო მოქმედებების ნებისმიერი თანმიმდევრობის აღსანიშნავად, რომელიც მიგვიყვანს მოცემული პრობლემის გადაწყვეტამდე.ნებისმიერი ალგორითმი თავისთავად არ არსებობს, მაგრამ განკუთვნილია კონკრეტული შემსრულებლისთვის (ადამიანი, რობოტი, კომპიუტერი, პროგრამირების ენა და ა.შ. .) სიტყვა „ალგორითმის“ მნიშვნელობა ძალიან ჰგავს სიტყვების „რეცეპტი“, „მეთოდი“, „პროცესი“ მნიშვნელობებს. თუმცა, რეცეპტისა და პროცესისგან განსხვავებით, ალგორითმი ხასიათდება შემდეგი თვისებებით:

დისკრეტულობა, მასობრივი ხასიათი, დარწმუნებულობა, ეფექტურობა, ფორმალობა.

დისკრეტულობა(შეწყვეტა) არის ალგორითმის თვისება, რომელიც ახასიათებს მის სტრუქტურას: თითოეული ალგორითმი შედგება ინდივიდუალური დასრულებული მოქმედებებისგან, ისინი ამბობენ "დაყოფილია ნაბიჯებად".

მასობრივი ხასიათი- ალგორითმის გამოყენებადობა განსახილველი ტიპის ყველა პრობლემაზე, ნებისმიერი საწყისი მონაცემებისთვის. მაგალითად, კვადრატული განტოლების ამოხსნის ალგორითმი რეალური რიცხვების დომენში უნდა შეიცავდეს ამოხსნის ყველა შესაძლო შედეგს, ანუ დისკრიმინანტის მნიშვნელობების გათვალისწინებით, ალგორითმი აღმოაჩენს განტოლების ორ განსხვავებულ ფესვს, ან ორს. თანაბარი, ან ასკვნის, რომ არ არსებობს რეალური ფესვები.

გარკვეულობა(დეტერმინიზმი, სიზუსტე) - ალგორითმის თვისება, რომელიც მიუთითებს იმაზე, რომ ალგორითმის თითოეული ნაბიჯი მკაცრად უნდა იყოს განსაზღვრული და არ დაუშვას განსხვავებული ინტერპრეტაციები. ასევე მკაცრად უნდა იყოს განსაზღვრული ცალკეული ნაბიჯების შესრულების თანმიმდევრობა.

ეფექტურობა- თვისება, რომელიც შედგება იმაში, რომ ნებისმიერი ალგორითმი უნდა დასრულდეს სასრული (შესაძლოა ძალიან დიდი) ნაბიჯებით. ფორმალობა - ეს თვისება მიუთითებს იმაზე, რომ ნებისმიერი შემსრულებელი, რომელსაც შეუძლია ალგორითმის ინსტრუქციების აღქმა და შესრულება, მოქმედებს ფორმალურად, ე.ი. განშორებულია ამოცანის შინაარსისგან და მხოლოდ მკაცრად ასრულებს მითითებებს. მსჯელობა "რა, როგორ და რატომ?" ალგორითმის შემქმნელმა უნდა გააკეთოს ეს და შემსრულებელი ფორმალურად (დაფიქრების გარეშე) სათითაოდ ასრულებს შემოთავაზებულ ბრძანებებს და იღებს საჭირო შედეგს.

1.2.ალგორითმების (ტიპების) აღწერის მეთოდები.

განვიხილოთ ალგორითმის აღწერის შემდეგი გზები: სიტყვიერი აღწერა, ფსევდოკოდი, ბლოკ-სქემა, პროგრამა.

სიტყვიერი აღწერაწარმოადგენს ალგორითმის სტრუქტურას ბუნებრივ ენაზე. მაგალითად, ნებისმიერ საყოფაცხოვრებო ტექნიკას (რკინა, ელექტრო ხერხი, საბურღი და ა.შ.) აქვს ინსტრუქციის სახელმძღვანელო, ანუ ალგორითმის სიტყვიერი აღწერა, რომლის მიხედვითაც ეს მოწყობილობა უნდა იყოს გამოყენებული. სიტყვიერი აღწერილობის შედგენის წესები არ არსებობს. ალგორითმი იწერება ნებისმიერი ფორმით ბუნებრივ ენაზე, მაგალითად, რუსულ ენაზე. აღწერის ეს მეთოდი არ არის გავრცელებული, ვინაიდან არ არის მკაცრად ფორმალიზებული („ფორმალური“-ში ვგულისხმობთ, რომ აღწერა არის აბსოლუტურად სრული და ითვალისწინებს ყველა შესაძლო სიტუაციას, რომელიც შეიძლება წარმოიშვას ამოხსნის დროს); იძლევა ინტერპრეტაციის გაურკვევლობას გარკვეული მოქმედებების აღწერისას; განიცდის სიტყვიერებას.

ფსევდოკოდი- ალგორითმის სტრუქტურის აღწერა ბუნებრივ, ნაწილობრივ ფორმალიზებულ ენაზე, რაც საშუალებას გაძლევთ ამოიცნოთ პრობლემის გადაჭრის ძირითადი ეტაპები, სანამ ზუსტად დაწერთ მას პროგრამირების ენაზე. ფსევდოკოდი იყენებს ზოგიერთ ფორმალურ კონსტრუქტს და საერთო მათემატიკურ სიმბოლოებს. არ არსებობს მკაცრი სინტაქსის წესები ფსევდოკოდის დასაწერად. ეს აადვილებს ალგორითმის დაწერას დიზაინის დროს და საშუალებას გაძლევთ აღწეროთ ალგორითმი ბრძანებების ნებისმიერი ნაკრების გამოყენებით. თუმცა, ფსევდოკოდი ჩვეულებრივ იყენებს ფორმალური ენების თანდაყოლილ ზოგიერთ კონსტრუქტს, რაც აადვილებს ფსევდოკოდიდან პროგრამირების ენაზე ალგორითმის დაწერაზე გადასვლას. არ არსებობს ფსევდოკოდის ერთი ან ფორმალური განმარტება, ამიტომ შესაძლებელია სხვადასხვა ფსევდოკოდი, რომლებიც განსხვავდება გამოყენებული სიტყვებისა და სტრუქტურების მიხედვით.

ბლოკის დიაგრამა- ალგორითმის სტრუქტურის აღწერა გეომეტრიული ფიგურების გამოყენებით კავშირის ხაზებით, რომლებიც გვიჩვენებს ინდივიდუალური ინსტრუქციების შესრულების თანმიმდევრობას. ამ მეთოდს აქვს მთელი რიგი უპირატესობები. მისი სიცხადის წყალობით, ის უზრუნველყოფს ალგორითმის „წაკითხულობას“ და ნათლად აჩვენებს ინდივიდუალური ბრძანებების შესრულების თანმიმდევრობას. ბლოკ დიაგრამაში, თითოეული ფორმალური დიზაინი შეესაბამება კონკრეტულ გეომეტრიულ ფიგურას ან ხაზებით დაკავშირებულ ფიგურების ერთობლიობას.

ალგორითმის აღწერილობები ვერბალური ფორმით, ფსევდოკოდით ან სქემის სახით, იძლევა გარკვეულ თვითნებობას ბრძანებების ასახვისას. ამავდროულად, ისინი იმდენად საკმარისია, რომ საშუალებას აძლევს ადამიანს გაიგოს საკითხის არსი და განახორციელოს ალგორითმი. პრაქტიკაში კომპიუტერები მოქმედებენ როგორც ალგორითმების შემსრულებელი. მაშასადამე, კომპიუტერზე შესასრულებლად განკუთვნილი ალგორითმი უნდა დაიწეროს მისთვის „გასაგებ“ ენაზე; ასეთ ფორმალიზებულ ენას ე.წ. პროგრამირების ენა.

პროგრამა- ალგორითმის სტრუქტურის აღწერა ალგორითმულ პროგრამირების ენაში.

ალგორითმების დაზუსტება დიაგრამების გამოყენებით დადასტურდა, რომ ალგორითმების გამოსახვის ძალიან მოსახერხებელი საშუალებაა და ფართოდ გავრცელდა.

ბლოკის დიაგრამა ალგორითმი - ალგორითმის გრაფიკული წარმოდგენა ურთიერთდაკავშირებულის სახით ისრებით (გარდამავალი ხაზები) და ბლოკები- გრაფიკული სიმბოლოები, რომელთაგან თითოეული შეესაბამება ალგორითმის ერთ საფეხურს. ბლოკის შიგნით მოცემულია შესაბამისი მოქმედების აღწერა.

ცხრილში მოცემულია ყველაზე ხშირად გამოყენებული სიმბოლოები.

სიმბოლოს სახელი

აღნიშვნა და შევსების მაგალითი

ახსნა

გამოთვლითი მოქმედება ან მოქმედებების თანმიმდევრობა

პირობების შემოწმება

მოდიფიკაცია

ციკლის დასაწყისი

წინასწარ განსაზღვრული პროცესი

გამოთვლები ქვეპროგრამით, სტანდარტული ქვეპროგრამით

შეყვანის გამომავალი

I/O ზოგადად

Დაიწყე შეჩერდი

ალგორითმის დასაწყისი, დასასრული, შესვლა და გასვლა ქვეპროგრამაში

დოკუმენტი

შედეგების გამოტანა

ნაკადის სიმბოლოები

დაბლოკვა" პროცესი"გამოიყენება მოქმედების ან მოქმედებების თანმიმდევრობის აღსანიშნავად, რომელიც ცვლის მნიშვნელობას, პრეზენტაციის ფორმას ან მონაცემთა განლაგებას. დიაგრამის სიცხადის გასაუმჯობესებლად, რამდენიმე ინდივიდუალური დამუშავების ბლოკი შეიძლება გაერთიანდეს ერთ ბლოკად. ინდივიდუალური ოპერაციების პრეზენტაცია საკმაოდ უფასოა.

დაბლოკვა" გამოსავალი" გამოიყენება პირობითი კონტროლის გადასვლების აღსანიშნავად. თითოეულმა "გადაწყვეტის" ბლოკმა უნდა განსაზღვროს მის მიერ განსაზღვრული კითხვა, მდგომარეობა ან შედარება.

დაბლოკვა" მოდიფიკაცია» გამოიყენება ციკლური სტრუქტურების მოსაწყობად. (სიტყვა "მოდიფიკაცია" ნიშნავს "მოდიფიკაციას, ტრანსფორმაციას"). ბლოკის შიგნით იწერება ციკლის პარამეტრი, რისთვისაც ყოველი გამეორებისთვის მითითებულია მისი საწყისი მნიშვნელობა, სასაზღვრო მდგომარეობა და პარამეტრის მნიშვნელობის შეცვლის ნაბიჯი.

დაბლოკვა" წინასწარ განსაზღვრული პროცესი" გამოიყენება დამხმარე ალგორითმებზე ზარების აღსანიშნავად, რომლებიც ავტონომიურად არსებობენ ზოგიერთი დამოუკიდებელი მოდულის სახით და ბიბლიოთეკის რუტინებზე ზარებისთვის.

მაგალითად, აქ არის ალგორითმის ბლოკ-სქემა ორი მნიშვნელობის მაქსიმალური საპოვნელად:

ალგორითმების დაზუსტება დიაგრამების გამოყენებით დადასტურდა, რომ ალგორითმების გამოსახვის ძალიან მოსახერხებელი საშუალებაა და ფართოდ გავრცელდა.

ალგორითმის დიაგრამა - ალგორითმის გრაფიკული წარმოდგენა ერთმანეთთან დაკავშირებული ისრებით (გარდამავალი ხაზები) და ბლოკები- გრაფიკული სიმბოლოები, რომელთაგან თითოეული შეესაბამება ალგორითმის ერთ საფეხურს. ბლოკის შიგნით მოცემულია შესაბამისი მოქმედების აღწერა.

ცხრილში მოცემულია ყველაზე ხშირად გამოყენებული სიმბოლოები.

ნაკადის სიმბოლოები
სიმბოლოს სახელი აღნიშვნა და შევსების მაგალითი ახსნა
პროცესი გამოთვლითი მოქმედება ან მოქმედებების თანმიმდევრობა
გამოსავალი პირობების შემოწმება
მოდიფიკაცია ციკლის დასაწყისი
წინასწარ განსაზღვრული პროცესი გამოთვლები ქვეპროგრამით, სტანდარტული ქვეპროგრამით
შეყვანის გამომავალი I/O ზოგადად
Დაიწყე შეჩერდი ალგორითმის დასაწყისი, დასასრული, შესვლა და გასვლა ქვეპროგრამაში
დოკუმენტი შედეგების გამომავალი

დაბლოკვა" "გამოიყენება მოქმედების ან მოქმედებების თანმიმდევრობის აღსანიშნავად, რომელიც ცვლის მნიშვნელობას, პრეზენტაციის ფორმას ან მონაცემთა განლაგებას. დიაგრამის სიცხადის გასაუმჯობესებლად, რამდენიმე ინდივიდუალური დამუშავების ბლოკი შეიძლება გაერთიანდეს ერთ ბლოკად. ინდივიდუალური ოპერაციების პრეზენტაცია საკმაოდ უფასოა.

დაბლოკვა" " გამოიყენება პირობითი კონტროლის გადასვლების აღსანიშნავად. თითოეულმა "გადაწყვეტის" ბლოკმა უნდა განსაზღვროს მის მიერ განსაზღვრული კითხვა, მდგომარეობა ან შედარება.

დაბლოკვა" » გამოიყენება ციკლური სტრუქტურების მოსაწყობად. (სიტყვა "მოდიფიკაცია" ნიშნავს "მოდიფიკაციას, ტრანსფორმაციას"). ბლოკის შიგნით იწერება ციკლის პარამეტრი, რისთვისაც ყოველი გამეორებისთვის მითითებულია მისი საწყისი მნიშვნელობა, სასაზღვრო მდგომარეობა და პარამეტრის მნიშვნელობის შეცვლის ნაბიჯი.

დაბლოკვა" " გამოიყენება დამხმარე ალგორითმებზე ზარების აღსანიშნავად, რომლებიც ავტონომიურად არსებობენ ზოგიერთი დამოუკიდებელი მოდულის სახით და ბიბლიოთეკის რუტინებზე ზარებისთვის.

მაგალითად, აქ არის ალგორითმის ბლოკ-სქემა ორი მნიშვნელობის მაქსიმალური საპოვნელად:

ცხოვრებაში ხშირად ვხვდებით სხვადასხვა სიტუაციებს, როდესაც ვასრულებთ ერთსა და იმავე კონკრეტულ ქმედებებს. იმისათვის, რომ დროულად გავიღვიძოთ, უნდა გვახსოვდეს მაღვიძარას ჩართვა. იმისათვის, რომ შიმშილი დავიკმაყოფილოთ, იგივე ნაბიჯები უნდა მივყვეთ უგემრიელესი საჭმლის მოსამზადებლად. ჩვენთვის ნაცნობი სამუშაოს შესასრულებლად, ჩვენც ხშირად ვაკეთებთ იგივეს.

ამ ქცევას შეიძლება სხვაგვარად ვუწოდოთ, იმისდა მიხედვით, თუ რა კონტექსტში განიხილება. თუ ამას ოპერაციული ეფექტურობის პერსპექტივიდან შევხედავთ, ამ ქმედებებს შეიძლება ვუწოდოთ ჩვევები ან უნარები. თუ განვიხილავთ მას პროცესის ჩვენების თვალსაზრისით, მაშინ მოქმედებების თანმიმდევრობის აღწერას, რომლის მკაცრი შესრულებაც იწვევს დავალებული ამოცანების გადაჭრას გარკვეული რაოდენობის ნაბიჯებით, ეწოდება მოქმედების ალგორითმი.

როგორ იქმნება მოქმედების ალგორითმები?

ამას მუდმივად ვხვდებით ყოველდღიურ ცხოვრებაში. რა ქმედებებს ვაკეთებთ მობილური ტელეფონის ანგარიშის შევსების მიზნით? თითოეული ჩვენგანი განსხვავებულია. ვინაიდან ანგარიშის შევსების რამდენიმე გზა არსებობს, ჩვენ ყველა ამას განსხვავებულად ვაკეთებთ. შედეგი კი ყოველთვის ერთი და იგივეა - ტელეფონზე თანხების გამოჩენა.

ან კიდევ ერთი მაგალითი: სურათის ან ტექსტის დასაკოპირებლად დააწკაპუნეთ სურათზე მარჯვენა ღილაკით, შემდეგ აირჩიეთ “Copy”, განათავსეთ იგი სასურველ ადგილას, დააწკაპუნეთ მარჯვენა ღილაკით “Paste” და შედეგი მიიღწევა.

ეს ყველაფერი არის მოქმედებების გარკვეული თანმიმდევრობა, რის შედეგადაც ამოცანა წყდება სხვადასხვა საშუალებებით. მაგრამ ჯერ-ჯერობით ეს მხოლოდ ჩვენი ცოდნაა, რომელიც უნარებსა და შესაძლებლობებში ვითარდება და თუ ეს პროცესი იქნება აღწერილი, მაშინ ჩვენ შევძლებთ ნათლად დავინახოთ ჩვენი ქმედებების ალგორითმი და გადავცეთ იგი სხვა ადამიანებს. ყველაფერი არ არის ნათელი სიტყვებით და ყოველთვის არ არის ნათელი.

აღწერეთ მოქმედებების თანმიმდევრობა - ის დაიმახსოვრდება

Შექმნა მოქმედებების ალგორითმიშესაძლებელია მისი თანმიმდევრობის აღწერით ან გამოსახვით. ყველამ იცის რა უნდა გაკეთდეს ხის დასარგავად? შესაძლოა, ძირითადი ნაბიჯები ყველასთვის გასაგებია, მაგრამ ყველას არ ახსოვს, როდის უნდა მორწყოს ხე, დარგვამდე თუ მის შემდეგ. შექმნილი ალგორითმი საშუალებას მისცემს ყველა მოქმედება შესრულდეს სწორი თანმიმდევრობით.

მოქმედებების უფრო რთული თანმიმდევრობის აღსაწერად, თქვენ უნდა სცადოთ და დეტალურად ჩამოწეროთ ისინი. მაგალითის მოყვანა შეიძლება ყველა სახის წესებიდან და ინსტრუქციებიდან - ისინი ძალიან ნათლად წერენ ნაბიჯებს, რომლებიც უნდა გადავდგათ. მაგრამ არის სიტუაციები, როდესაც გარკვეულ მოქმედებას მოჰყვება არა ერთი ნაბიჯი, არამედ რამდენიმე, წინა შედეგიდან გამომდინარე. ამ შემთხვევაში, შემოთავაზებული ქმედებები ასევე იწერება, რათა ადამიანმა ადვილად შეძლოს ნავიგაცია სხვადასხვა სიტუაციებში და იცოდეს რა უნდა გააკეთოს.

მოქმედებების ალგორითმი გრაფიკაში არის დიაგრამა

თუ მოქმედების ალგორითმებს გრაფიკულად გამოვსახავთ, გეომეტრიული ფიგურების გამოყენებით კავშირის ხაზებით, რომლებიც გვიჩვენებს მოქმედების შესრულების თანმიმდევრობას, მივიღებთ ნაკადის სქემას. ნაკადის სქემა ბევრად აღემატება წესებს, ინსტრუქციებს და მოქმედებების თანმიმდევრულ ალგორითმებს მისი სიცხადისა და წაკითხვის თვალსაზრისით.

წარმოიდგინეთ, რომ თქვენ უნდა ასწავლოთ რაღაც სხვა ადამიანს. თქვენ მშვენივრად იცით ყველა მოქმედება გარკვეული თანმიმდევრობით. თქვენი ამოცანაა აჩვენოთ როგორ უნდა გაკეთდეს ეს და გადმოსცეთ თქვენი ცოდნა ისე, რომ სხვა ადამიანმა დაიმახსოვროს და იცოდეს ის ისევე, როგორც თქვენ. ცოდნის ზეპირი გადმოცემა იმპროვიზაციისა და გარკვეული თვითნებობის საშუალებას იძლევა. საუკეთესო გზაა სქემის გამოყენება, რომელიც განმარტავს თანმიმდევრობას და შესაძლო ვარიანტებს. მაგალითად, აქ მოცემულია ბლოგის სქემების სწავლის სახალისო სახელმძღვანელო:

შედეგის მიღების საუკეთესო პირობა მოქმედებების გამეორებაა. ეს აუცილებლად აისახება მომავალში შედეგების მიღწევის სიჩქარეზე. რაც უფრო ხშირად მოგიწევთ იგივე მოქმედებების გამეორება, მით უფრო სწრაფად ისწავლით მოქმედებების თანმიმდევრობის შესრულებას, რაც ნიშნავს, რომ ყოველი მომდევნო ჯერზე ნაკლები დრო დაგჭირდებათ შესასრულებლად.

ნაკადის დიაგრამები გამოიყენება გაყიდვებში

გაყიდვებში ფართოდ არის გავრცელებული ასეთი ტრენინგი ალგორითმების შემუშავებით და მათი სქემების სახით გამოსახვით. ყველაზე ხშირად ისინი გამოიყენება სატელეფონო საუბრის სცენარებში ქოლ ცენტრებში და "ცივი" ზარებისთვის. კორპორატიული კულტურა სულ უფრო და უფრო მატულობს, ამიტომ ბევრი კომპანია თანამშრომლებს აღარ აძლევს უფლებას გააკეთონ „გაგიჟები“, თუნდაც ნიჭიერი, არამედ სთავაზობენ მათ იმოქმედონ წინასწარ შემუშავებული სცენარის მიხედვით, რომლებიც წარმოადგენენ „კომპანიის სახეს“ სხვადასხვა ეტაპზე. ეფექტი ჩნდება ფაქტიურად რამდენიმე დღის შემდეგ, რაც აკეთებთ საქმეს "ქაღალდზე". დროთა განმავლობაში, ბევრი აღწერილი ალგორითმი ახსოვს თანამშრომელს და მომავალში მას შეუძლია თავისუფლად დაუკავშირდეს შიშის გარეშე, თუ რომელი მიმართულებით შეიძლება წავიდეს საუბარი.

მოქმედების ალგორითმები და ბლოგის სქემები შემუშავებულია არა მხოლოდ გაყიდვებში. ისინი ფართოდ გამოიყენება ექიმების, პროგრამისტების, კომპიუტერული მეცნიერების და მრავალი ტექნიკური სპეციალობის ტრენინგსა და პრაქტიკაში.

ღირს სცადოთ ისწავლოთ როგორ იმოქმედოთ მსგავსი დიაგრამების გამოყენებით. ბოლოს და ბოლოს, როდესაც პირველად შეხვდებით მოქმედებების და ამოცანების სიმრავლეს, რომლებიც თავიდან გაუგებარია, ფიქრობთ იმაზე, თუ რამდენად აკლიათ განვითარებული სქემები. დიდი ტანჯვის შემდეგ ვერ იტანს და დამოუკიდებლად იწყებ განვითარებას და შექმნას. ეფექტურ ადამიანებს არ მოსწონთ დასვენების დრო. და დიაგრამები მნიშვნელოვნად ამარტივებს ცხოვრებას და საშუალებას გაძლევთ გაიგოთ რთული პრობლემების გადაჭრა.

სერვისები დიაგრამების შემუშავებისთვის

ინტერნეტში არის სერვისები, რომლებიც დაგეხმარებათ შექმნათ ასეთი დიაგრამები. ერთ-ერთი მათგანია Сacoo. მისი დახმარებით თქვენ შეგიძლიათ მარტივად გადააქციოთ თქვენი ალგორითმები სხვადასხვა დიაგრამებად, დიაგრამებად და გრაფიკებად. თქვენ აღმოაჩენთ, რომ ძალიან სასიამოვნო და ხალისიანი აქტივობაა იმის გადაკეთება, რაც იცით სხვა ადამიანებისთვის მეცნიერებად.

- კარგი განწყობა გარანტირებულია. საწყის ეტაპზე შეგიძლიათ გამოიყენოთ უფასო ანგარიშის ფუნქციები, მაგრამ მომავალში მოგიწევთ წვდომისთვის გადახდა. ბუნებრივია, უფასო წვდომას აქვს შეზღუდვები ფასიანთან შედარებით. მაგრამ სწავლისთვის და პირველი ნაბიჯებისთვის, ფუნქციონირება საკმაოდ საკმარისია.

მოქმედების ალგორითმების შემუშავება და მათი გარდაქმნა ბლოკის დიაგრამები Cacoo-ს დახმარებით თქვენ შეგიძლიათ დიდხანს შეუქმნათ კარგი განწყობა არა მხოლოდ საკუთარ თავს, არამედ სხვა ადამიანებსაც, რომლებიც სწავლობენ საფუძვლებს.

შექმენით სათამაშო ბლოკ-სქემები თქვენი ბავშვებისთვის

ზემოაღნიშნულის შესაჯამებლად, მე აღვნიშნავ, რომ ახლა თქვენ შეგიძლიათ გამოიყენოთ მოქმედების ალგორითმები და სქემები სხვადასხვა ცხოვრებისეულ სიტუაციებში. თქვენს შვილებსაც კი დიდი სიამოვნებით შეასრულებენ არა ყველაზე საინტერესო ამოცანებს, მკაფიო მითითებების შესაბამისად. თუ გაქვთ რაიმე იდეა სად და როგორ გამოიყენოთ მოქმედებების ალგორითმიგააზიარეთ კომენტარებში, ძვირფასო მკითხველებო. ძალიან მინდა ვიცოდე თქვენი ალგორითმების შესახებ.

ჩემი დიაგრამა

ეს არის დიაგრამა, რომელიც პირველად მომივიდა. სურათის გასადიდებლად დააწკაპუნეთ მასზე. Cacoo-ში წასვლის შემდეგ, "ნახვის ფიგურის" ჩანაწერის ქვეშ დააწკაპუნეთ სურათზე. ის გაიხსნება დიდ ფანჯარაში. Წარმატებები!

შეასრულეთ მეტი, ნაკლებ დროში

flowchart არის ალგორითმის გრაფიკული წარმოდგენა პრობლემის გადასაჭრელად. დიაგრამა არანაირად არ ასოცირდება პროგრამირების ენასთან. ამგვარად, ნაკადის ბლოკებში ყველა გამონათქვამი იწერება ჩვეულებრივი მათემატიკის წესების მიხედვით.

ბლოკ-სქემებში ვერ გამოიყენებს პროგრამირების ენის ელემენტები.

ბლოკების დანიშნულება

სახელი Დანიშნულება ფუნქცია
ტერმინატორი ელემენტი აჩვენებს გარე გარემოში გასასვლელს და შეყვანას გარე გარემოდან (ყველაზე გავრცელებული გამოყენება არის პროგრამის დასაწყისი და დასასრული). შესაბამისი მოქმედება იწერება ფიგურის შიგნით.
პროცესი ერთი ან მეტი ოპერაციის შესრულება, ნებისმიერი სახის მონაცემების დამუშავება (მონაცემების მნიშვნელობის შეცვლა, პრეზენტაციის ფორმა, მდებარეობა). ფიგურის შიგნით უშუალოდ იწერება თავად ოპერაციები, მაგალითად, ოპერაცია: a:= 10 b + c
გამოსავალი
(ბლოკის მდგომარეობა)
აჩვენებს გადამრთველის ტიპის გადაწყვეტილებას ან ფუნქციას ერთი შეყვანით და ორი ან მეტი ალტერნატიული გამომავალით, რომელთაგან მხოლოდ ერთი შეიძლება შეირჩეს ელემენტში განსაზღვრული პირობების შეფასების შემდეგ. ელემენტის შესასვლელი მითითებულია ხაზით, რომელიც ჩვეულებრივ შედის ელემენტის ზედა წვეროზე. თუ არსებობს ორი ან სამი გასასვლელი, მაშინ, როგორც წესი, თითოეული გასასვლელი მითითებულია დარჩენილი წვეროებიდან (გვერდიდან და ქვედადან) გამომავალი ხაზით. თუ სამზე მეტი გასასვლელია, მაშინ ისინი უნდა იყოს ნაჩვენები, როგორც ერთი ხაზი, რომელიც გამოდის ელემენტის ზემოდან (ჩვეულებრივ ქვემოდან), რომელიც შემდეგ განშტოდება. შესაბამისი გამოთვლის შედეგები შეიძლება დაიწეროს ამ ბილიკების გამოსახულ ხაზებთან.
წინასწარ განსაზღვრული პროცესი სიმბოლო აჩვენებს პროცესის შესრულებას, რომელიც შედგება ერთი ან მეტი ოპერაციისგან, რომელიც განსაზღვრულია პროგრამის სხვაგან (ქვერუტინაში, მოდულში). პროცესის სახელი და მასზე გადაცემული მონაცემები იწერება სიმბოლოში. მაგალითად, პროგრამირებაში - პროცედურის ან ფუნქციის გამოძახება.
მონაცემები
(შეყვანის გამომავალი)
მონაცემების გადაქცევა დამუშავებისთვის (შეყვანისთვის) შესაფერის ფორმად ან დამუშავების (გამომავალი) შედეგების ჩვენებისთვის. ეს სიმბოლო არ განსაზღვრავს შენახვის საშუალების იდენტიფიკაციას (სპეციფიკური სიმბოლოები გამოიყენება შენახვის საშუალების ტიპის აღსანიშნავად).
მარყუჟის საზღვარი სიმბოლო შედგება ორი ნაწილისაგან - შესაბამისად, ციკლის დასაწყისი და დასასრული - მათ შორის მოთავსებულია ციკლის ფარგლებში შესრულებული ოპერაციები. მარყუჟის და ზრდის პირობები იწერება მარყუჟის დაწყების ან დასრულების სიმბოლოში, ეს დამოკიდებულია მარყუჟის ორგანიზაციის ტიპზე. ხშირად, ბლოკ დიაგრამაზე ციკლის გამოსასახავად, ამ სიმბოლოს ნაცვლად, გამოიყენება მდგომარეობის სიმბოლო, რომელიც მიუთითებს მასში გამოსავალზე და ერთ-ერთი გამომავალი ხაზი იხურება ბლოკ დიაგრამაზე უფრო მაღლა (ციკლის ოპერაციებამდე).
კონექტორი სიმბოლო წარმოადგენს მიკროსქემის ნაწილის შესასვლელს და წრედის სხვა ნაწილიდან გასასვლელს. გამოიყენება ხაზის გასაწყვეტად და სხვა ადგილას გასაგრძელებლად (არასაჭირო გადაკვეთების ან ძალიან გრძელი ხაზების თავიდან ასაცილებლად, ასევე, თუ დიაგრამა რამდენიმე გვერდისგან შედგება). შესაბამის დამაკავშირებელ სიმბოლოებს უნდა ჰქონდეს იგივე (და უნიკალური) აღნიშვნა.
კომენტარი გამოიყენება ნაბიჯის, პროცესის ან პროცესის ჯგუფის უფრო დეტალურად აღსაწერად. აღწერა მოთავსებულია კვადრატული ფრჩხილის მხარეს და დაფარულია მთელ სიმაღლეზე. წერტილოვანი ხაზი მიდის აღწერილ ელემენტზე, ან ელემენტების ჯგუფზე (ჯგუფი მონიშნულია დახურული წერტილოვანი ხაზით). ასევე, კომენტარის სიმბოლო უნდა იქნას გამოყენებული იმ შემთხვევებში, როდესაც გარკვეული სიმბოლოს შიგნით მოთავსებული ტექსტის რაოდენობა (მაგალითად, პროცესის სიმბოლო, მონაცემთა სიმბოლო და ა.შ.) აღემატება თავად ამ სიმბოლოს ზომას.

მიკროსქემის სხვა ელემენტების აღწერა შეგიძლიათ იხილოთ GOST 19.701-ში (სრული ტექსტის ბმული მითითებულია მენიუში მარცხნივ).

ბლოკ-სქემის მაგალითი

დავუშვათ, უნდა გამოვთვალოთ შემდეგი სერიის ჯამი

პროგრამაში სერიის ჯამის გამოსათვლელად, თქვენ უნდა შეასრულოთ შემდეგი ნაბიჯები:

  1. აღწერეთ ცვლადები, რომლებიც გამოყენებული იქნება ჯამის მიმდინარე მნიშვნელობის შესანახად, მარყუჟის ელემენტის მრიცხველის მიმდინარე მნიშვნელობისა და ელემენტების ჯამური რაოდენობის შესანახად.
    შენიშვნა: ეს ქმედება აუცილებელია მხოლოდ იმ ცვლადების რაოდენობის დასადგენად, რომლებსაც ალგორითმი დასჭირდება და, შესაბამისად, ეს მოქმედებები არანაირად არ არის გათვალისწინებული სქემაში.
  2. მიიღეთ მომხმარებლისგან სერიის ელემენტების რაოდენობა, რომელიც უნდა შეჯამდეს, ანუ შეიყვანოთ მონაცემები პროგრამაში.
  3. ნულოვანი ცვლადი, რომელიც შეინახავს სერიის ჯამს.
  4. მარყუჟის მრიცხველის ინიცირება საწყისი მნიშვნელობით.
  5. გამოთვალეთ რიგის ელემენტის მნიშვნელობა მიმდინარე მრიცხველის ტოლი რიცხვით და მიღებული მნიშვნელობა დაამატეთ ჯამის ცვლადის მნიშვნელობას.
  6. გაზარდეთ მრიცხველის მნიშვნელობა ერთით.
  7. თუ მრიცხველის მნიშვნელობა ნაკლებია მომხმარებლის მიერ მითითებულ შეჯამებული ელემენტების რაოდენობაზე, გადადით მე-5 საფეხურზე.
  8. ამობეჭდეთ თანხის ღირებულება.

ეს არის ალგორითმის ტექსტის ჩანაწერი. ახლა განვახორციელოთ იგი გრაფიკული დიაგრამის (ბლოკ-სქემის) სახით.

თუ არ იცით როგორ შექმნათ დიაგრამები, გირჩევთ წაიკითხოთ შემდეგი სტატია: