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